组件:Text

Text有两个构造函数 new Text和new Text.rich。

  • new Text:构建单一风格的文本,就是整段文本显示为统一的大小,颜色,样式等,而且不支持手势监听
  • new Text.rich:构建不同风格文本的组合,而且支持手势监听

两个构造函数相同的属性说明:

  • style:文本的样式。
    TextStyle可设置属性有:
    • inherit:如果文本值为null,是否使用我们设置的TextStyle相关属性,默认值true。如果设置为false,当文本为null,则属性将恢复为默认值:白色,字体大小为10像素,字体为sans-serif字体。
    • color:字体颜色
    • fontSize:字体大小
    • fontWeight:字体的粗细
    • fontStyle:正常还是斜体
    • letterSpacing:每个字符之间的间距,可设置负数,负数使字体之间更紧凑
    • wordSpacing:单个空格的宽度,如果你两个字符之间间隔5个空格,则这两个字符之间的距离就是5 * wordSpacing。可设置负数,负数使字体之间更紧凑
    • textBaseline:文本对齐方式
      TextBaseline枚举值:
      • alphabetic:基于下图的alphabetic线对齐
      • ideographic:基于下图的ideographic线对齐


        textbaseline.gif
    • height:文本高度的倍数,height * 文本高度 = Text的高度,文本垂直绘制起点向下偏移
    • locale:本地化,指定当前文本采用什么语言
    • foreground:字体的前景色,覆盖在字体上面
    • background:字体的背景色
    • shadows:文字阴影(相当于文字的影子)
    • decoration:绘制下划线、上划线、删除线
    • decorationColor:线的颜色
    • decorationStyle:线的样式,实线、两条线,点线,短线条间隔、波浪线
    • fontFamily:字体库
    • package:当使用的字体库是其它包中内容时,指定字体库所在的包名称

textAlign:文字对齐方式


textDirection:文字方向,从左向右(TextDirection.ltr)还是从右向左(TextDirection.rtl)


locale:本地化,指定当前文本采用什么语言


softWrap:软换行,如果此值为false,除非你使用\n等显示的换行符,否则文本不会换行。如果为true,则会根据文本是否超出父控件长度而自动换行


overflow:文本超出父控件宽度的处理方式。
TextOverflow枚举值:

  • clip:超出部分裁减掉,默认值
  • fade:在尾部蒙上一层阴影
  • ellipsis:在尾部显示‘...’

textScaleFactor:字体缩放倍数,比如你设置字体大小为20px,textScaleFactor为2,那么屏幕上最终显示40px大小的字体


maxLines:文本最多显示的行数


semanticsLabel:Text的描述文本


两个构造函数不同的属性说明:

new Text:接收一个data,这是一个字符串,没什么好说的


new Text.rich:接收一个textSpan。
下面列出TextSpan中可用的属性:

  • text:要展示的文本
  • style:文字样式,和前面style用法一致,只是前面是全局的,此处设置的是当前TextSpan及children(children没有设置自己的style或没有设置和parent style一致的属性,此时使用parent style中的相关属性)中text文本的风格。
  • recognizer:注册手势监听
  • children:孩子节点,是一个List,可以无限嵌套,children中的text拼接在parent的text后面,且children根据位置顺序拼接。

发现了一个问题:
当Text文本在父控件中横向能够完全绘制出来时,即使纵向高度不够,文本也会被完全绘制出来,高度不会出现裁剪,只有在父控件中当横向不能够完全绘制出来时,纵向高度不够时才会被裁剪,猜测是Bug!


你可能感兴趣的:(组件:Text)