React Native元件篇(一) — Text元件
1、什麼是Text
在iOS中很多元件都有顯示文字的功能,一般文字都是寫在Label上。在ReactNative中類似Label顯示文字的元件叫什麼呢,也就是我們今天要學的這個Text元件。Text可以巢狀,設定事件處理等等
2、Text元件常用的屬性方法
Attributes.style = {
color string
containerBackgroundColor string
fontFamily string
fontSize number
fontStyle enum('normal', 'italic')
fontWeight enum("normal", 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900')
lineHeight number
textAlign enum("auto", 'left', 'right', 'center')
writingDirection enum("auto", 'ltr', 'rtl')
numberOfLines number
textAlign ("auto", 'left', 'right', 'center', 'justify')
fontWeight ("normal", 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900')
onPress fcuntion
}
color string
containerBackgroundColor string
fontFamily string
fontSize number
fontStyle enum('normal', 'italic')
fontWeight enum("normal", 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900')
lineHeight number
textAlign enum("auto", 'left', 'right', 'center')
writingDirection enum("auto", 'ltr', 'rtl')
numberOfLines number
textAlign ("auto", 'left', 'right', 'center', 'justify')
fontWeight ("normal", 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900')
onPress fcuntion
}
屬性解釋對應意思:
color
字型顏色numberOfLines
(number) 進行設定Text顯示文字的行數,如果顯示的內容超過了行數,預設其他多餘的資訊就不會顯示了onPress
(fcuntion) 該方法當文字發生點選的時候呼叫該方法color
字型顏色fontFamily
字型名稱fontSize
字型大小fontStyle
字型風格(normal,italic)fontWeight
字型粗細權重("normal", 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900')textShadowOffset
設定陰影效果{width: number, height: number}textShadowRadius
陰影效果圓角textShadowColor
陰影效果的顏色letterSpacing
字元間距lineHeight
行高textAlign
文字對其方式("auto", 'left', 'right', 'center', 'justify')textDecorationLine
橫線位置 ("none", 'underline', 'line-through', 'underline line-through')textDecorationStyle
線的風格("solid", 'double', 'dotted', 'dashed')textDecorationColor
線的顏色writingDirection
文字方向("auto", 'ltr', 'rtl')allowFontScaling:控制字型是否要根據iOS的“文字大小”輔助選項來進行縮放
adjustsFontSizeToFit:指定字型是否隨著給定樣式的限制而自動縮放
minimumFontScale:當adjustsFontSizeToFit開啟時,指定最小的縮放比(即不能低於這個值)。可設定的值為0.01 - 1.0
suppressHighlighting:當為true時,如果文字被按下,則沒有任何視覺效果。預設情況下,文字被按下時會有一個灰色的、橢圓形的高光
selectable:決定使用者是否可以長按選擇文字,以便複製和貼上
2、Text元件常用的屬性應用Demo
Demo程式碼如下:
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View,
} from 'react-native';
class RNHybrid extends Component {
render() {
return(
<View style={{marginTop:100}} >
<Text style={styles.TextStyle1} numberOfLines={3} onPress={this.onPressText} >
我是第一塊程式碼,撒幾點啦資料庫盧達克里斯記得開拉就上課了大街奧盛經理對接薩克雷簡單快樂撒嬌恐龍當家了撒嬌地阿基山莨菪鹼庫拉索大街奧盛恐龍當家可拉伸機開啟連線愛上了你參謀,是那麼,從MsABC蒙巴薩故事機奧迪和傑卡斯。
</Text>
<Text style={{marginBottom:20}} onPress={()=>{alert('我是箭頭函式')}}>
我是第二塊程式碼
</Text>
<Text selectable={true}>
我是第三塊程式碼,長按我可以複製我。
</Text>
</View>
);
}
onPressText(){
alert('點選demo')
}
}
const styles = StyleSheet.create({
TextStyle1:{
marginBottom:20,
color:'red',
fontFamily:'Times',
fontSize:20,
fontStyle:'italic',
fontWeight:('bold', '700'),
textShadowOffset:{width:3, height:5},
textShadowColor:'black',
textShadowRadius:3,
},
});
AppRegistry.registerComponent('RNHybrid', () => RNHybrid);
效果圖:
總結:屬性主要試了幾個通用的,屬性效果大家可以自行測試,注意看下Demo 中onpress兩種表達方式,在以後的開發中,慢慢就會感知到利弊。
3、Text元件的巢狀和繼承
巢狀使用Demo程式碼:
render() {
return(
<View style={{marginTop:100}}>
<Text style={{color:'red',textAlign:'center',textDecorationLine:'underline',fontSize:10,lineHeight:50}} >
{'\r'}我是最外面的紅色
<Text style={{color:'blue',fontSize:20}}>
{'\r'}我是中間的藍色
<Text style={{color:'black',textDecorationLine:'line-through',textDecorationColor:'green',textDecorationStyle:'double'}}>
{'\r'}我是最裡面的黑色
</Text>
<Text>
{'\r'}我沒有屬性都是繼承父控制元件
</Text>
</Text>
</Text>
</View>
);
}
效果如下:
總結: 在巢狀的Text元件中,子Text元件將繼承它的父Text元件的樣式,當使用巢狀的Text元件時,子Text元件不能覆蓋從父Text元件繼承而來的樣式,只能增加父Text元件沒有指定的樣式。
注意點:預設情況下巢狀的Text是不換行的,子控制元件的內容跟在父控制元件的後面,加上{'\r'}或者{'\n'}換行顯示.
相關文章
- React Native元件篇(二) — Image元件React Native元件
- React Native元件篇(三) — TextInput元件React Native元件
- React Native元件篇(四) — Touchable系列元件React Native元件
- React Native 元件(一)元件的生命週期React Native元件
- React Native元件(二)View元件解析React Native元件View
- React Native——Component(元件)React Native元件
- React Native 截圖元件React Native元件
- Flutter元件學習(一)—— Text元件Flutter元件
- React Native 文件檢視元件React Native元件
- 【原始碼解析】React Native元件渲染原始碼React Native元件
- React Native 互動元件之 SwitchReact Native元件
- React Native 圖片檢視元件React Native元件
- React Native 實現 Slider 元件React NativeIDE元件
- React Native圖片快取元件React Native快取元件
- React Native 定義元件(簡單)React Native元件
- React Native選擇器元件-react-native-slidepickerReact Native元件IDE
- React Native 實現城市選擇元件React Native元件
- React Native日期時間選擇元件React Native元件
- beeshell:開源的 React Native 元件庫React Native元件
- React Native 效能優化元件-PureComponentReact Native優化元件
- expo react-native視訊播放元件React元件
- React Native 自定義元件及屬性React Native元件
- React Native06 - TextInput元件、Touchable系列元件、QQ登入介面React Native元件
- React Native常用三方元件庫大全React Native元件
- react元件通訊通識篇React元件
- react篇章-React 元件-複合元件React元件
- 美團React Native開源元件庫beeshell詳解React Native元件
- 開源React Native元件庫beeshell 2.0釋出React Native元件
- React Native 學習指南(三) - 把玩更多UI元件React NativeUI元件
- React Native元件學習 StatusBar(ES6)React Native元件
- React Native元件佈局應用示例小結React Native元件
- 國人自定義React Native開源元件ViewPagerReact Native元件Viewpager
- React元件React元件
- react篇章-React 元件-ES6 class 來定義一個元件React元件
- expo 搭建 react-native 元件庫【圖文並茂】React元件
- React Native 實現自定義下拉重新整理元件React Native元件
- React Native Modal元件 Android覆蓋狀態列React Native元件Android
- React Native第三方元件庫彙總React Native元件