Flutter RichText 使用案例解析 Flutter WidgetSpan 设置图片显示

也许你迷茫,但是我想说,在你迷茫的同时,保持本心,过好今天就好。


在Flutter中 RichText 可以说是一个简单的富文本,可以用来实现一段文字中,局部文字 加粗 设置颜色显示等,是结合 TextSpan 来实现的,当然也可以在文本段落中嵌入其他如小图片、图标、按钮等等,这就需要使用 WidgetSpan


本文章的 Demo 案例如下
在这里插入图片描述

直接上关键核心代码

RichText(
  text: TextSpan(
    text: '登陆即同意登陆即同意登陆即同意登陆即同意登陆即同意',
    style: const TextStyle(color: Colors.black),
    children: [

      WidgetSpan(
        //对齐方式
        alignment: PlaceholderAlignment.middle,
        //这里就是中间显示的图片了也可以是其他任意的 Widget
        child: Image.asset(
          "images/banner01.webp",
          width: 40,
          height: 40,
        ),
      ),

      
      TextSpan(
        text: '《服务条款》',
        style: const TextStyle(color: Colors.red),
        //文本的点击事件
        recognizer: TapGestureRecognizer()..onTap = () {},
      ),
      
      
      const TextSpan(
        text: '和',
        style: TextStyle(color: Colors.black),
      ),
      
      WidgetSpan(
        //图片底部对齐 
        alignment: PlaceholderAlignment.bottom,
        child: Image.asset(
          "images/banner01.webp",
          width: 40,
          height: 40,
        ),
      ),
      
      TextSpan(
        text: '《隐私政策》',
        style: const TextStyle(color: Colors.red),
        recognizer: TapGestureRecognizer()..onTap = () {},
      ),
    ],
  ),
);

WidgetSpan 中的 PlaceholderAlignment 对齐方式核心概述

  1. PlaceholderAlignment.baseline 与文本的基线对齐
  2. PlaceholderAlignment.aboveBaseline 将占位符的底部边缘与基线对齐,使占位符位于基线的顶部。使用该对齐模式时,[TextBaseline]必须指定为非null。
  3. PlaceholderAlignment.belowBaseline 将占位符的上边缘与指定的基线对齐,以便占位符挂起在基线以下。使用该对齐模式时,[TextBaseline]必须指定为非null。
  4. PlaceholderAlignment.top 将占位符的上边缘与文本的上边缘对齐。当占位符很高时,额外的空间将从顶部悬挂并延伸到底部
  5. PlaceholderAlignment.bottom 将占位符的底边与文本的底边对齐。当占位符很高时,额外的空间将从底部上升,并延伸到线的顶部。
  6. PlaceholderAlignment.middle 将占位符的中间对齐文本的中间。当占位符很高时,额外的空间将从顶部和底部平均增长。

完毕


小编也写了几本书,如果你有兴趣可以去看看


在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

早起的年轻人

创作源于分享

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值