一、Text组件是什么?
一个用于显示文本的React组件,和iOS中的UILabel控件相似,用来专门显示基本的文本信息。并且它也支持嵌套、样式,以及触摸处理。
二、Text组件常用的属性方法
allowFontScaling bool 是否根据‘文本大小’进行缩放
numberOfLines number 用来当文本过长的时候裁剪文本
用来当文本过长的时候裁剪文本。包括折叠产生的换行在内,总的行数不会超过这个属性的限制。
color s ring 字体颜色
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') 文字方向
`textShadowOffset`设置阴影效果{width: number, height: number}
`textShadowRadius` 阴影效果圆角
`textShadowColor` 阴影效果的颜色
`textDecorationLine` 横线位置 ("none", 'underline', 'line-through', 'underline line-through')
`textDecorationStyle` 线的风格("solid", 'double', 'dotted', 'dashed')
`textDecorationColor` 线的颜色
`letterSpacing` 字符间距
onPress fcuntion 函数 当文本被点击以后调用此回调函数
当挂载或者布局变化以后调用,参数为如下的内容:
{nativeEvent: {layout: {x, y, width, height}}}
当为true时,如果文本被按下,则没有任何视觉效果。默认情况下,文本被按下时会有一个灰色的、椭圆形的高光。
三、Text的布局方式
元素在布局上不同于其它组件:在Text内部的元素不再使用flexbox布局,而是采用文本布局。这意味着内部的元素不再是一个个矩形,而可能会在行末进行折叠。
样式应用
运行结果:
三、Text样式的继承复用问题
3.1.复用问题
在React Native中,你必须把你的文本节点放在组件内。你不能直接在下放置一段文本。并且你也不能直接设置一整颗子树的默认样式。使用一个一致的文本和尺寸的推荐方式是创建一个包含相关样式的组MyAppText,然后在你的App中反复使用它。你还可以创建更多特殊的组件譬如MyAppHeaderText来表达不同样式的文本。
3.2继承问题
React Native实际上还是有一部分样式继承的实现,:文字控制类的属性也是多重继承的,和css中是一样的。
运行结果: