React Native知識2-Text組件

来源:http://www.cnblogs.com/wujy/archive/2016/09/05/5843992.html
-Advertisement-
Play Games

Text用於顯示文本的React組件,並且它也支持嵌套、樣式,以及觸摸處理。在下麵的例子里,嵌套的標題和正文文字會繼承來自styles.baseText的fontFamily字體樣式,不過標題上還附加了它自己額外的樣式。標題和文本會在頂部依次堆疊,並且被代碼中內嵌的換行符分隔開。 一:屬性 1:al ...


Text用於顯示文本的React組件,並且它也支持嵌套、樣式,以及觸摸處理。在下麵的例子里,嵌套的標題和正文文字會繼承來自styles.baseText的fontFamily字體樣式,不過標題上還附加了它自己額外的樣式。標題和文本會在頂部依次堆疊,並且被代碼中內嵌的換行符分隔開。

一:屬性

1:allowFontScaling bool(iOS特有):控制字體是否要根據iOS的“文本大小”輔助選項來進行縮放。

2:numberOfLines number :用來當文本過長的時候裁剪文本。包括摺疊產生的換行在內,總的行數不會超過這個屬性的限制;

3:onLayout function:當掛載或者佈局變化以後調用,參數為如下的內容:{nativeEvent: {layout: {x, y, width, height}}}

4:onPress function:當文本被點擊以後調用此回調函數

5:testID string:用來在端到端測試中標記這個視圖。

6:suppressHighlighting bool(iOS特有):當為true時,如果文本被按下,則沒有任何視覺效果。預設情況下,文本被按下時會有一個灰色的、橢圓形的高光

二:樣式style

1:color string

2:fontFamily string

3:fontSize number

4:fontStyle enum('normal', 'italic')

5:fontWeight enum("normal", 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900')

指定字體的粗細。大多數字體都支持'normal'和'bold'值。並非所有字體都支持所有的數字值。如果某個值不支持,則會自動選擇最接近的值。

6:letterSpacing number 字元間距

7:lineHeight number 行高

8:textAlign enum("auto", 'left', 'right', 'center', 'justify')

指定文本的對齊方式。其中'justify'值僅iOS支持。

9:(android) textAlignVertical enum('auto', 'top', 'bottom', 'center')

10:(ios)textDecorationColor string  線的顏色

11:textDecorationLine enum("none", 'underline', 'line-through', 'underline line-through') 橫線位置

12:(ios)textDecorationStyle enum("solid", 'double', 'dotted', 'dashed')  線的樣式

13:(ios)writingDirection enum("auto", 'ltr', 'rtl')  文字方向

三:實例代碼:

1:Text屬性的運用

import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  AlertIOS,
  Text,
  View
} from 'react-native';

class ReactNativeProject extends Component {

  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.textTopStyle}>
            我開始學習react native內容,此實例是關於如何運用Text的運用,包含相關屬性跟事件;
        </Text>

         <Text style={styles.textCenterStyle} numberOfLines={2}>
            numberOfLines:該屬性的值是一個數字,用於規定最多顯示多少行,如果超過該數值,則以省略號(...)表示,跟原生類似效果
         </Text>

         <Text style={styles.textBottomStyle} onPress={() => AlertIOS.prompt('Secure Text', null, null, 'secure-text')}>
            點擊事件的運用
         </Text>

         <Text style={{fontWeight: 'bold',marginTop:40}}>
              我是關於
              <Text style={{color: 'red'}}>
              嵌套文本
              </Text>
              的運用;
        </Text>

      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    height:300,
    justifyContent:'center'
  },
  textTopStyle:
  {
    fontSize:20,
    fontWeight:'bold',
    textAlign:'center',
    color:'red'
  },
  textCenterStyle:
  {
    fontSize:14,
    textAlign:'center',
    color:'blue'
  },
  textBottomStyle:
  {
    fontSize:17,
    textAlign:'right',
    color:'red',
    marginTop:50,
    marginRight:20,
    borderWidth:1,
    borderColor:'red'
  }
});

AppRegistry.registerComponent('ReactNativeProject', () => ReactNativeProject);

效果圖:

2:常見文本樣式

<Text style={{textDecorationLine: 'underline', textDecorationStyle: 'solid'}}>
Solid underline
</Text>
<Text style={{textDecorationLine: 'underline', textDecorationStyle: 'double', textDecorationColor: '#ff0000'}}>
Double underline with custom color
</Text>
<Text style={{textDecorationLine: 'underline', textDecorationStyle: 'dashed', textDecorationColor: '#9CDC40'}}>
Dashed underline with custom color
</Text>
<Text style={{textDecorationLine: 'underline', textDecorationStyle: 'dotted', textDecorationColor: 'blue'}}>
Dotted underline with custom color
</Text>
<Text style={{textDecorationLine: 'none'}}>
None textDecoration
</Text>
<Text style={{textDecorationLine: 'line-through', textDecorationStyle: 'solid'}}>
Solid line-through
</Text>
<Text style={{textDecorationLine: 'line-through', textDecorationStyle: 'double', textDecorationColor: '#ff0000'}}>
Double line-through with custom color
</Text>
<Text style={{textDecorationLine: 'line-through', textDecorationStyle: 'dashed', textDecorationColor: '#9CDC40'}}>
Dashed line-through with custom color
</Text>
<Text style={{textDecorationLine: 'line-through', textDecorationStyle: 'dotted', textDecorationColor: 'blue'}}>
Dotted line-through with custom color
</Text>
<Text style={{textDecorationLine: 'underline line-through'}}>
Both underline and line-through
</Text>

效果圖:

四:知識點

1:Text可以當容器,<Text>元素在佈局上不同於其它組件:在Text內部的元素不再使用flexbox佈局,而是採用文本佈局。這意味著<Text>內部的元素不再是一個個矩形,而可能會在行末進行摺疊。

2:<View>下不能直接放一段文本,而是要在<View></View>裡面包含一個<Text></Text>,然後把文字內容放在Textj裡面;


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在HTML頁面中的body載入進來的時候,外部引用的js文件存放的位置 1.js文件放在body裡面,則是按照body的載入順序(按先後順序)進行載入 2.js文件放在<head>標簽裡面的文件,則是在body載入完之後,才載入頭部的js文件 註:js文件和body載入的順序是: body > js ...
  • 一.簡介 對於WEB應用程式:用戶瀏覽器發送請求,伺服器接收並處理請求,然後返回結果,往往返回就是字元串(HTML),瀏覽器將字元串(HTML)渲染並顯示瀏覽器上 通過在後臺與伺服器進行少量數據交換,AJAX 可以使網頁實現非同步更新。這意味著可以在不重新載入整個網頁的情況下,對網頁的某部分進行更新 ...
  • 一、函數作用域 1.函數作用域 就是作用域在一個“Function”里,屬於這個函數的全部變數都可以在整個函數的範圍內使用及復用。 上面的“foo”函數內的幾個標識符,放到函數外面訪問就都會報錯。 2.立即執行函數表達式 在任意代碼片段外部添加包裝函數,可以將內部的變數和函數定義“隱藏”起來,外部作 ...
  • Object對象詳細參考 JavaScript原生提供一個Object對象(註意起首的O是大寫),所有其他對象都繼承自這個對象。 構造函數: Object 構造函數為給定的值創建一個對象包裝。 如果給定值是 null or undefined,將會創建並返回一個空對象 否則,將返回一個與給定值對應類 ...
  • 如果說XHTML已經開始尋求取代HTML,那麼HTML5的實用性在於,它將兩種語法整合在一起,採用同樣有效的方式來表達HTML的抽象DOM表示。HTML5規範結合了HTML4,XHTML1以及DOM級別2HTML,併進行了相應的更新。 HTML5取代XHTML 1成為HTML規範的XML序列化格式。 ...
  • 通過案例演示開關控制項Switch、滑塊控制項Slider和分段控制項Segmented Control的使用。 ...
  • 本文主要講述了Android 實現圖片畫畫板 設計項目佈局: 首先實現畫圖功能: 接下來完成保存圖片的功能: ...
  • 1:Assertion failure in dequeueReusableCellWithIdentifier:forIndexPath: 上面是在IOS9以下一直報閃退;後來改成下麵解決: 2:CoreTelephony框架不是私有庫 私有框架的目錄為:/Applications/Xcode.a ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...