美文网首页
RichText-富文本组件

RichText-富文本组件

作者: 爱吃豆包 | 来源:发表于2021-01-01 11:44 被阅读0次

应用程序离不开文字的展示,因此文字的排版非常重要,通常情况下Text组件可以完成绝大多数需求,它可以显示不同大小的文字、字体、颜色等,如果想在一句话或者一段文字里面显示不同样式的文字,Text组件无法满足我们的需求,这个时候需要使用RichText



import 'package:flutter/material.dart';

/**
 * 富文本
 * 
 * RichText 组件的text属性是TextSpan,TextSpan中的style样式需要设置属性,
 * 不设置无法显示文字,一般设置应用程序的默认字体样式DefaultTextStyle.of(context).style
 */
class RichTextDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Column(
        children: [
          RichText(
            textAlign: TextAlign.start, // 设置富文本对齐方式
            text: TextSpan(
              style: DefaultTextStyle.of(context).style, // 使用应用程序默认字体样式, 不然无法显示字体
              children: [
                TextSpan(text: "服务协议", style: TextStyle(color: Colors.red)),
                TextSpan(text: "欢迎是用Flutter, 这里是富文本使用方式,可以显示多个文本,各自定义文本样式")
              ]
            ),

          )
        ],
      ),
    );
  }

}


RichText 组件的text属性是TextSpan,TextSpan中的style样式需要设置属性,不设置无法显示文字,一般设置应用程序的默认字体样式DefaultTextStyle.of(context).style,在子组件其中一个TextSpan设置不同的样式,比如上面的代码中设置“老孟”文字为红色,效果如下:

截屏2021-01-01 上午11.26.36.png

当文字有较多行时,可以设置其对齐方式:

RichText(
    textAlign: TextAlign.end,
    ...
)

TextAlign.start的效果:

截屏2021-01-01 上午11.27.30.png

TextAlign.center的效果:

截屏2021-01-01 上午11.28.12.png

TextAlign.end的效果:

截屏2021-01-01 上午11.28.46.png

#手势交互

当然我们也可以设置其他样式,比如大小、斜体等,甚至我们还可以添加点击效果,

RichText(
      text: TextSpan(
          style: DefaultTextStyle.of(context).style,
          children: <InlineSpan>[
            TextSpan(text: '登陆即视为同意'),
            TextSpan(
              text: '《xxx服务协议》',
              style: TextStyle(color: Colors.red),
              recognizer: TapGestureRecognizer()..onTap = () {
                        // 手势触发
                       // 消息提示框
                          Scaffold.of(context).showSnackBar(SnackBar(
                            content: Text('手势触发'),
                          ));
              },
            ),
          ]),
    )

recognizer属性指定手势交互,类型是GestureRecognizer,GestureRecognizer是抽象类,一般使用其子类TapGestureRecognizer实现点击交互。

相关文章

  • RichText-富文本组件

    应用程序离不开文字的展示,因此文字的排版非常重要,通常情况下Text组件可以完成绝大多数需求,它可以显示不同大小的...

  • Flutter 基础Widget

    flutter开发中一些常见的Widget Text-文本 RichText-富文本 Image-图片 Butto...

  • react-draft-wysiwyg富文本组件

    目录 react-draft-wysiwyg富文本组件 react-draft-wysiwyg富文本组件 组件使用...

  • Flutter-基础组件二

    1.基本组件 1)Text 文本组件 2)RichText 富文本 常用属性: text:需要设置TextSpan...

  • Flutter组件的使用

    Text组件 TextSpan 富文本 Image组件 FadeInImage 可以使用占位图的控件 Cache...

  • uGUI Text富文本的顶点数优化

    uGUI的Text组件勾选Rich Text复选框后支持富文本,支持的富文本标签可以参见https://docs....

  • vue组件: 富文本

    本篇使用的插件是wangEditor文档: https://www.wangeditor.com/v5/getti...

  • Unity Console 中使用rich text

    Unity里UGUI中Text组件可以使用富文本。其实也可以通过Debug.Log 中使用符富文本 来区别输出内容...

  • Flutter了解之常用组件

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

  • react CKEditor Demo

    在实际项目中需要使用富文本编辑器,由于react-draft-wysiwyg富文本组件没有给我提供表格的功能(后期...

网友评论

      本文标题:RichText-富文本组件

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