首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Flutter Widgets 之 RichText

因此文字的排版非常重要,通常情况下Text组件可以完成绝大多数需求,它可以显示不同大小的文字、字体、颜色等,如果想在一句话或者一段文字里面显示不同样式的文字,Text组件无法满足我们的需求,这个时候需要使用RichText...RichText( text: TextSpan( style: DefaultTextStyle.of(context).style, children...Colors.red)), TextSpan(text: ','), TextSpan(text: '一个有态度的程序员'), ]), ) RichText...style,在子组件其中一个TextSpan设置不同的样式,比如上面的代码中设置“老孟”文字为红色,效果如下: [20200301133344774.png] 当文字有较多行时,可以设置其对齐方式: RichText...2020030114295040.png] TextAlign.end的效果: [20200301142905406.png] 手势交互 当然我们也可以设置其他样式,比如大小、斜体等,甚至我们还可以添加点击效果, RichText

1.1K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    cocos2dx实现功能强大的RichText控件

    最近准备做一个聊天系统,开始准备使用cocos2dx的UIRichText控件来显示聊天内容,结果在使用的时候才发现,cocos2dx的RichText功能非常有限,完全不具备实现聊天的功能...我个人认为,一个RichText控件应该具备以下基本功能:       1、多样化的文本显示功能,包括字体、颜色、字号的设置。       2、能显示图片以及一些特殊元素。      ...cocos2dx只实现了基础的1和2功能,所以考虑之后还是决定自己写一个RichText控件。UIRichText的框架还是不错的,实现了文本分行显示的技术。在他的基础上很容易扩展。 ...源代码在这里,cocos2dx-3.0功能强大的richText控件       最后贴一下使用的代码和效果图吧!      ..._richChat if richText and channel and roleName and chatMsg then local ChannelNameSwitch =

    1.6K20

    Flutter 中的图文混排与原理解析

    实现原理 我们常用的 Text 控件其实只是 RichText 的封装,而 RichText 的实现如下图所示,主要可以分为三部分:MultiChildRenderObjectWidget 、 MultiChildRenderObjectElement...、布局相关; RichText 继承 MultiChildRenderObjectWidget 主要是需要通过 MultiChildRenderObjectElement 来处理 WidgetSpan...在前面的使用中,我们首先是传入了一个 TextSpan 给 RichText ,并在 TextSpan 的 children 中拼接我们需要的内容,那就从 RichText 开始挖掘其中的原理。...如上代码所示,这里我们首先看 RichText 的入口,可以看到 RichText 开始是有一个 _extractChildren 方法,这个方法主要是将传入 TextSpan 的 children 里...RichText 中插入控件的管理巧妙的依托到 MultiChildRenderObjectWidget 中,从而复用了原本控件的管理逻辑,之后依托引擎计算位置从而绘制完成。

    3.2K20

    真•文本环绕问题的探究和分享

    Ok,这不就是富文本吗,我一下子就联想到了RichText,一想到RichText支持WidgetSpan,我就知道问题不大,但是经过测试发现这里面是个大坑.........BuildContext context) { return Scaffold( appBar: AppBar(), body: SingleChildScrollView(child: RichText...WidgetSpan都是继承自InlieSpan,也就是说不论你的WidgetSpan包含什么样的child,在布局WidgetSpan的时候,它所在行的行高一定会取那一行中最高的作为行高,所以很显然自带的RichText...探讨文本是如何渲染的: 看一下RichText和其对应的RenderObject的关系: 当我们把TextSpan交给RichText之后,其实所有的布局、绘制都是交由对应的RenderObject:...最难点:文本分割 正如我们所知道的,RichText接收的数据为一个单个TextSpan,且这个TextSpan会有N层嵌套,它不是一个简单文本字符串,如何来计算这个TextSpan该从哪里分割是困扰我最大的问题

    28120

    【Flutter 专题】32 Flutter 32: 图解 TextPainter 与 TextSpan 小尝试

    大家在学习 Flutter 时一定会用过 Text,而对于一些复杂文本的处理可能会选择 RichText,再进一步,使用 RichText 就一定要用 TextSpan ,和尚本以为可以做为一个小知识点进行简单学习...RichText 富文本核心即 TextSpan,而 TextSpan 结构很像 Android 中的 ViewGroup 树型结构。 ? ?...RichText 日常用法 和尚理解为 RichText 是进阶版的 Text,如下直接看实例: TextDirection 用来控制文字位置,居左或居右边;当与 TextAlign 属性共存时...,优先看整体,以 TextAlign 为准; Widget richTextWid01() { return RichText( text: TextSpan( text...与 RichText 功能相同,可以完全实现 RichText 效果; TextPainter 绘制需要实现 layout 与 paint 方法,即绘制位置与绘制范围。

    2K41
    领券