Text属性
1 | const Text( |
textAlign 文本对齐方式
- TextAlign.left 左对齐 不受textDirection 影响
- TextAlign.right 右对齐 不受textDirection 影响
- TextAlign.center 居中 不受textDirection 影响
- TextAlign.justify 自适应 两端对齐
- TextAlign.start 如果textDirection 是ltr ,start表示左对齐
,如果textDirection是rtl,start表示右对齐。 - TextAlign.end 如果textDirection
是ltr,end表示右对齐,如果textDirection是rtl ,end表示左对齐
没有textDirection时,textDirection默认为ltr:
1 | Text("123456789 textAlign: TextAlign.left",style: TextStyle(fontSize: 30,color: Colors.red),textAlign: TextAlign.left,), |
textDirection为rtl时:
1 | Text("textDirection: TextDirection.rtl, textAlign: TextAlign.left",style: TextStyle(fontSize: 20,color: Colors.red),textAlign: TextAlign.left,textDirection: TextDirection.rtl,), |
softWrap 文字是否自动换行
默认为true 自动换行
为false时,只显示一行,剩余不显示
1 | Text("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",style: TextStyle(fontSize: 20),softWrap: true,), |
overflow 文字超过行数后,对可显示范围内,末尾文字的处理效果
maxLines 文字显示的最大行数
overflow的值:
- TextOverflow.clip 直接截断
- TextOverflow.ellipsis 末尾显示…
- TextOverflow.fade 末尾渐隐效果
下面几种情况:
当softWrap为false时
1 | Text("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",style: TextStyle(fontSize: 20),softWrap: false,overflow: TextOverflow.clip,), |
当超过了maxlines后
1 | Divider(height: 1,color: Colors.grey,), |
textScaleFactor 文字大小倍率系数
文字实际大小=textScaleFactor * fontSize
1 | Divider(height: 1,color: Colors.grey,), |
TextStyle
1 | const TextStyle({ |
inherit
true 显示文本
false不显示文本 设置color后失效
1 | Divider(height: 1,color: Colors.grey,), |
color 字体颜色
fontSize 字体字号
1 | Divider(height: 1,color: Colors.grey,), |
fontWeight 字重
1 | Divider(height: 1,color: Colors.grey,), |
FontWdight.lerp(weight1,weight2,double t) 线性从两个值之间取值
1 | Divider(height: 1,color: Colors.grey,), |
fontStyle 字体样式 斜体 非斜体
1 | Divider(height: 1,color: Colors.grey,), |
letterSpacing 字母或汉字之间的距离
1 | Divider(height: 1,color: Colors.grey,), |
wordSpacing 单词之间的距离,用空格拆分单词,英文中一个个单词用空格分开,中文没有空格,应该不常用
1 | Divider(height: 1,color: Colors.grey,), |
height 行高系数 实际行高=height * fontSize
1 | Divider(height: 1,color: Colors.grey,), |
foreground 设置画字体时用的画笔
- color
与foreground只能存在其一,其实color是Paint的简写形式,设置了color其实就是设置Paint()..color
= color
background 设置画背景时用的画笔
backgroundColor
与background只能存在其一,其实backgroundColor是Paint的简写形式,设置了backgroundColor其实就是设置Paint()..color= bacrgroundColor
1 | var paint = Paint() |
shadows 文字阴影效果
offset xy轴的偏移量
blurRadius 模糊程度
1 | Divider(height: 1,color: Colors.grey,), |
decoration 给文字增加删除线、上划线、下划线等,可同时增加多个
- TextDecoration.overline 上划线
- TextDecoration.lineThrough 删除线
- TextDecoration.underline 下划线
decorationColor 给文字增加的删除线、上划线、下划线的颜色
decorationStyle 给文字增加的删除线、上划线、下划线的样式,虚线、实线、点、正弦线等
TextDecorationStyle.dashed 短横线
TextDecorationStyle.dotted 点线
TextDecorationStyle.double 双线
TextDecorationStyle.solid 实线
TextDecorationStyle.wavy 波浪线
1 | Divider(height: 1,color: Colors.grey,), |
Text.rich,文字分部分编辑
1 | Text.rich( |
TextSpan
1 | const TextSpan({ |
功能:
对每段文字进行样式修改
对每段文字单独添加点击监听
代码如下:
1 | Text.rich(TextSpan( |
对aaaa…aaa添加了监听,因此点击后输出 “aaa”
对xxxx…xxxx添加了监听,因此点击后会输出onTap onTapDown onTapUp等
没有对bbb…bbb ccc..ccc添加监听,因此点击二者没有输出。