Flutter 文本之Text

Text

Text用于显示简单样式文本,它包含一些控制文本显示样式的一些属性

Text("我是Text组件" * 10, //重复10次
     maxLines: 1,        //显示1行
     textAlign: TextAlign.center, //居中
     overflow: TextOverflow.ellipsis, //
     textScaleFactor: 1.0, //处理溢出
      ])

属性:

名称 类型 说明
data String 文本内容
locale Locale 用于在相同Unicode字符可以根据区域设置不同时选择字体
maxLines int 文本最大显示的行数
overflow TextOverflow 文本溢出样式
semanticsLabel String 该文本的另一种语义标签
softWrap bool 文本是否应该在换行符处断行
strutStyle StrutStyle 支撑样式。Strut样式定义了设置最小垂直布局指标的支持。
style TextStyle 设置文本样式
textAlign TextAlign 文本水平对齐方式
textDirection TextDirection 文本显示的方向
textScaleFactor double 每个逻辑像素的字体像素值
textSpan TextSpan 以TextSpan方式显示文本
hashCode int 哈希码
runtimeType Type 对象运行时类型的表示形式

TextStyle

TextStyle用于指定文本显示的样式如颜色、字体、粗细、背景等。

Text("Hello world",
  style: TextStyle(
    color: Colors.blue,
    fontSize: 18.0,
    height: 1.2,  
    fontFamily: "Courier",
    background: new Paint()..color=Colors.yellow,
    decoration:TextDecoration.underline,
    decorationStyle: TextDecorationStyle.dashed
  ),
);

属性:

名称 类型 说明
inherit bool 为false的时候不显示
color Color 颜色
fontSize double 字号
fontWeight FontWeight 字重 加粗也用这个字段
fontStyle FontStyle FontStyle.normal FontStyle.italic斜体
letterSpacing double 字符间距 就是单个字母或者汉字之间的间隔,可以是负数
wordSpacing double 字间距 句字之间的间距
textBaseline TextBaseline 基线,两个值,字面意思是一个用来排字母的,一人用来排表意字的(类似中文)
height double 当用来Text控件上时,行高(会乘以fontSize,所以不以设置过大)
decoration TextDecoration 添加上划线,下划线,删除线
decorationColor Color 划线的颜色
decorationStyle TextDecorationStyle 这个style可能控制画实线,虚线,两条线,点, 波浪线等

TextSpan

TextSpan,它代表文本的一个“片段”

const TextSpan({
  TextStyle style, 
  Sting text,
  List<TextSpan> children,
  GestureRecognizer recognizer,
});

属性:

名称 类型 说明
style TextStyle 文本样式
text Sting 文本
children List 其他TextSpan
recognizer GestureRecognizer 点击链接后的一个处理器

例子:

Text.rich(
         TextSpan(text: "我是TextSpan", children: <TextSpan>[
         TextSpan(text: "www.baodi.com", style: TextStyle(color:Colors.red))
                ]),
              )

DefaultTextStyle

在Widget树中,文本的样式默认是可以被继承的(子类文本类组件未指定具体样式时可以使用Widget树中父级设置的默认样式),因此,如果在Widget树的某一个节点处设置一个默认的文本样式,那么该节点的子树中所有文本都会默认使用这个样式,而DefaultTextStyle正是用于设置默认文本样式的

DefaultTextStyle(
  //1.设置文本默认样式  
  style: TextStyle(
    color:Colors.red,
    fontSize: 20.0,
  ),
  textAlign: TextAlign.start,
  child: Column(
    crossAxisAlignment: CrossAxisAlignment.start,
    children: <Widget>[
      Text("hello world"),
      Text("I am Jack"),
      Text("I am Jack",
        style: TextStyle(
          inherit: false, //2.不继承默认样式
          color: Colors.grey
        ),
      ),
    ],
  ),
);

你可能感兴趣的:(Flutter)