美文网首页flutter
Flutter基础组件<文本Text>

Flutter基础组件<文本Text>

作者: 怡红快绿 | 来源:发表于2020-01-02 16:25 被阅读0次

Flutter入门笔记系列文章部分内容来源于《Flutter 实战》,如有侵权请联系删除!

Text

Text 用于显示简单样式文本,它包含一些控制文本显示样式的一些属性。
为了更加直观地介绍Text的属性,直接通过一个例子来说明部分属性的作用,更多属性请查阅源码或官方文档。

Text("Hello"), //普通文本
Text(
  "Large Hello.", //大号文本
  style: TextStyle(
    fontSize: 20
  ),
),
Text(
  "WonderfulHello;" * 10, //内容重复十遍
  textScaleFactor: 1, //代表文本相对于当前字体大小的缩放因子
  textAlign: TextAlign.start, //对齐方式
  maxLines: 2, //最大行数
  overflow: TextOverflow.ellipsis, //将多余文本截断后以省略符“...”表示
  style: TextStyle( //字体样式
      color: Colors.blue,  //字体颜色
      fontSize: 24,  //字体大小
      decoration: TextDecoration.underline,  //文字划线,上划线、下划线或删除线
      decorationStyle: TextDecorationStyle.wavy, //划线样式
      backgroundColor: Colors.black), //组件背景色
)

运行效果如图


Text

代码里都有属性解释,不再赘述。

TextSpan

如果我们需要对一个Text内容的不同部分按照不同的样式显示,这时就可以使用TextSpan,Android中使用SpannableString可以达到类似的效果。

Text.rich(
  TextSpan(text: "左边部分", children: [
    TextSpan(
      text: "中间部分",
      style: TextStyle(
          color: Colors.blue,
          backgroundColor: Colors.black,
          fontSize: 20),
    ),
    TextSpan(
      text: "右边部分",
      style: TextStyle(
        color: Colors.green,
        fontSize: 18,
        decoration: TextDecoration.underline,
        decorationColor: Colors.black,
      ),
      //recognizer: rec //点击事件处理器
    )
  ]),
)

我们看到,可以通过Text.rich 方法将TextSpan 添加到Text中来完成字符串的拼接,并且可以自定义不同部分文字的样式,当然也可以通过recognizer定义点击事件产生的行为。运行效果如下:


TextSpan

DefaultTextStyle

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

DefaultTextStyle(
    style: TextStyle(color: Colors.deepOrange, fontSize: 20),
    child: Column(
      verticalDirection: VerticalDirection.down,
      children: <Widget>[
        Text("默认继承"),
        RaisedButton(child: Text("按钮"), onPressed: null),
        Text(
          "继承+自定义",
          style: TextStyle(backgroundColor: Colors.grey),
        ),
        //DefaultTextStyle不生效
        Text("不继承+自定义",
            style: TextStyle(
                //不继承DefaultTextStyle
                inherit: false,
                backgroundColor: Colors.grey))
      ],
    ))

运行效果如下:


DefaultTextStyle

可以看到,DefaultTextStyle 设置给了子树Column节点处,这样一来Column的所有子孙Text默认都会继承该样式,除非Text通过inherit: false 显示声明不继承默认样式。

相关文章

  • Flutter基础组件<文本Text>

    Flutter入门笔记系列文章部分内容来源于《Flutter 实战》,如有侵权请联系删除! Text Text 用...

  • Flutter常用Widget介绍

    转载请注明出处: https://learnandfish.com/ Text文本组件 --最基础的组件 Text...

  • Flutter了解之常用组件

    1. 文本 Text (用于显示文本)属于基础组件库 例 TextSpan (富文本) 对一个Text内容的不同部...

  • 【Flutter】基础组件【01】Text

    ?【Flutter】学习养成记,【程序员必备小知识】 ? 今日小知识——【Flutter】基础组件【01】Text...

  • flutter Widget

    组件目录 基础组件 Text 文本 Button 按钮a Image 图片 TextField 输入框,TextF...

  • 03-Flutter Widget目录

    组件目录 基础组件Text 文本Button 按钮Image 图片TextField 输入框,TextFormFi...

  • Flutter之常用组件

    基础组件 文本组件 Text 用于显示简单样式文本,包含一些控制样式属性 按钮与手势组件 IconButton I...

  • Flutter开发之Text组件

    Text 对一个APP而言文本无处不在,Text是进行Flutter开发最常用的组件之一。 Text常用的属性有哪...

  • Flutter基础控件参数说明

    一.Text:文本[https://api.flutter.dev/flutter/widgets/Text-cl...

  • 04-Flutter 基础组件

    基础组件: Text 文本 Button 按钮 Image 图片 TextField 输入框,TextFormFi...

网友评论

    本文标题:Flutter基础组件<文本Text>

    本文链接:https://www.haomeiwen.com/subject/xgcioctx.html