class StudyText extends StatelessWidget{
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("文本及样式"),
),
body: Container(
child: Column(
//测试Row对齐方式,排除Column默认居中对齐的干扰
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text("Hi Flutter",
textAlign: TextAlign.left,
),
Text("Hi Flutter ---------------------------------------------------------------------------------- Hi Dart",
maxLines: 1,
overflow: TextOverflow.ellipsis,
),
Text("How are you" * 10,
textScaleFactor: 1.5,
maxLines: 2,
),
],
),
),
);
}
}
不加这个的话默认居中显示 crossAxisAlignment: CrossAxisAlignment.start
textAlign
对齐方式 可选择左对齐 右对齐 居中等对齐方式
maxLines
显示最大行数
overflow
文本超出截断方式 TextOverflow.ellipsis 多余以…展示
textScaleFactor
代表文本相对于当前字体大小的缩放倍数
TextStyle
Center(
child: Container(
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text("天王盖地虎",
style: TextStyle(
color: Colors.red,
fontSize: 16.0,
fontFamily: "Courier",
backgroundColor: Colors.greenAccent,
decoration: TextDecoration.underline,
decorationStyle: TextDecorationStyle.double
),
),
Text("宝塔镇河妖",
style: TextStyle(
color: Colors.purple,
fontSize: 16.0,
),
),
],
),
),
widthFactor: 3,
heightFactor: 3,
),
height
用于指定行高 但实际行高 = height * fontSize
fontSize
字体大小
fontFamily
使用字体集
fontSize 和 textScaleFactor 区别
fontSize 可以精确指定字体大小,而textScaleFactor只能通过缩放比例来控制
textScaleFactor主要是用于系统字体大小设置改变时对Flutter应用字体进行全局调整,而fontSize通常用于单个文本,字体大小不会跟随系统字体大小变化。
TextSpan
Text.rich(TextSpan(
children: [
TextSpan(
text: "小鸡炖蘑菇,"
),
TextSpan(
text: "蘑菇放辣椒。",
style: TextStyle(
color: Colors.cyanAccent
),
)
]
)),
DefaultTextStyle
样式继承
DefaultTextStyle(
style: TextStyle(
color: Colors.blue,
fontSize: 16,
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text("河妖用大招"),
Text("二楼弯下腰"),
Text("莫愁不开怀",
style: TextStyle(
inherit: false,
color: Colors.red
),
),
],
)
),
在Widget树的某一个节点处设置一个默认的文本样式,那么该节点的子树中所有文本都会默认使用这个样式,inherit为false则不继承该样式。