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

Flutter Widgets 之 RichText

type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21lbmdrczE5ODc=,size_16,color_FFFFFF,t_70] 注意:无特殊说明,Flutter...版本及Dart版本如下:Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 基础用法 应用程序离不开文字的展示,因此文字的排版非常重要,通常情况下Text组件可以完成绝大多数需求...,TextSpan中的style样式需要设置属性,不设置无法显示文字,一般设置应用程序的默认字体样式DefaultTextStyle.of(context).style,子组件其中一个TextSpan...,比如大小、斜体等,甚至我们还可以添加点击效果, RichText( text: TextSpan( style: DefaultTextStyle.of(context...,GestureRecognizer是抽象类,一般使用其子类TapGestureRecognizer实现点击交互。

1.1K00

Flutter 文字解读 5 | RichText 富文本的使用 ()

如下面的的需求,我们需要使用 TextSpan一个 TextSpan可以传入 List ,从而可以得到一个树状的结构。实现代码如下: ?...这样我们就可以对一个 InlineSpan 进行点击监听。效果如下: ? 这样就可以点击时执行方法,跳转到对应的条款界面。...WidgetSpan 通过 WidgetSpan 可以文字中添加任何 Widget ,比如下面的图片。 ?...可以定义一个规则,然后进行解析。 ? 虽然我们可以自己定义规则,但是 .md 中已有了规则,最好还是使用共同遵守的规则,如下。 ?...Flutter 中所有可以看得到的组件,比如 Text、Image、Switch、Slider 等等,追其根源都是`画出来`的,但通过查看源码可以发现,Flutter 中绝大多数组件并不是使用 `CustomPaint

5.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

Flutter | 事件处理

,这个 Web 开发浏览器的事件冒泡机制相似,但是 Flutter 中没有机制取消或者停止冒泡过程,而浏览器是可以停止的。...注意:只有通过命中测试的组件才能触发事件 原始指针事件处理 Flutter可以使用 Listener 来监听原始触摸事件,按照 中的分类,Listener 也是一个功能性组件...Listener 将原始指针转换为语义手势 GestureRecognizer 是一个抽象类,一种手势对应一个子类,Flutter 实现了丰富的手势识别器,我们可以直接使用。...但是 TextSpan 有一个 Recongizer 属性,他可以接收一个 GestureRecognizer。...实际取决于第一次移动时两个轴的位移分量,那个轴的大,那么哪个轴就会在本次滑动事件中胜出 实际 Flutter 中引入了一个 Arenal 的概念,直译为 竞技场 的意思,每一个手势识别器(GestureRecognizer

2.7K10

Flutter 文本解读 6 | RichText 富文本的使用 (中)

3 | Text 组件使用介绍 》 《Flutter 文本解读 4 | TextStyle 文字样式解读 》 《Flutter 文本解读 5 | RichText 富文本的使用 ()》 ---- 一...有一点要注意: GestureRecognizer 需要被 dispose,可以 StringParser 中定义 dispose 来遍历 SpanBean 列表进行释放。...dispose(); }); } ---- 4.TextSpan 处理 和之前的处理一样,这里我们为 SpanBean 添加了GestureRecognizer,在生成 TextSpan 时使用一下即可... TextStyleSupport 中你可以修改这些默认的样式。或者提供多组不同的样式,提供切换。知道其中的原理,可操作性就可以大大提高。...本文就到这里,下一篇来看一下, Flutter 中如何实现一个代码高亮显示的富文本。

2.4K30

Flutter 文本解读 7 | RichText 写个代码高亮组件

已经基本认识了 StringScanner 的使用,以前看 flutter/gallery 中有代码块的高亮功能,就研究了一下,用在了 FlutterUnit 中。...目前 flutter/gallery 通过 codeviewer_cli 把所有的代码对应的 TextSpan 给直接生成了,一个 2.6 MB 的 45295 行 超大文件,并且将通过静态方法向外提供所需的...组件使用介绍 》 《Flutter 文本解读 4 | TextStyle 文字样式解读 》 《Flutter 文本解读 5 | RichText 富文本的使用 ()》 《Flutter 文本解读 6...]; @override bool containsKeywords(String word)=>_kDartInTypes.contains(word); } 复制代码 ---- 可以...---- 六、代码样式切换 可以 StyleSupport 中定义其他样式,用来切换。也可以将样式作为 CodeParser 的成员,向外界暴露出去,方便自定义样式。 样式1 样式2 ? ?

1.5K10

Flutter自定义view —— 闯关进度条

概述 因工作需要,需要自定义实现一个布局,当然用横向Row控件也可以实现这个效果, 但我觉得还是用自定义 view 实现效果比较好,想要什么效果都可以去实现,所以我按照 自己的想法写了一下这个自定义布局...[自定义view.gif] ---------- 2....//设置文本方向 textPainter.textDirection = TextDirection.ltr; //设置文本样式 textPainter.text = new TextSpan...:Flutter 自定义 View 介绍 class CustomView extends StatefulWidget { @override CustomViewState createState...坐标点的计算 1.绘制每个控件都需要准确的坐标,圆的圆心坐标点,进度线的起始点与终点坐标点,自己纸上画一画, 找到规律,总结成一个公式,然后套用。

92530

Flutter | 常用组件

Sting text, List children, GestureRecognizer recognizer, }); style 和 text 表示样式和内容,children...是一个数组,也就是说 TextSpan 可以包含其他的 TextSpan,recognizer 用于对该文本片段用手势进行识别处理 Widget _richText() { var textSpan...,就是应为 Text 本身就是 RichText 的一个包装,而 RichText 是可以显示多种样式(富文本)的 widget,样式如下: 字体 flutter 中使用字体需要两个步骤,首先是...,使用 FadeInImage 之后会在图片的加载过程中显示一个占位符,图片加载完成之后显示淡入 ICON Flutter 中,可以直接使用 字体图标,它是将图标做成字体文件,然后通过指定不同的字符而现实不同的图片...3,可以应用文本样式,可以像文本一样改变字体图标颜色,大小对齐等 4,可以通过 TextSpan 和文本混用 使用 Material Design 字体图标 Flutter 默认包含了一套 Material

11.4K30

flutter画布绘制图片和文字

异步加载完成,刷新传入即可。 ---- 0. 如何从 assets 中获取图片数据。 通过 decodeImageFromList 方法可以将一个字节流转换为ui.Image 对象。...现在要有一个概念: 画布只承担绘制工作,一切的数据来源由使用者提供。 也就是将ui.Image对象作为参数传给 PaperPainter,画板只专注于绘制操作。...主要作用是画布绘制一张图片的很多部分,比如雪碧图 (Sprite) 将需要的图片放在一张图里。另外通过 drawAtlas 绘制的效率要更高。...= oldDelegate.image; } 【3】图形的变换 我们定义 Sprite 时,可以将变换的属性放在其中,如平移、缩放、透明度等。...为文字设置画笔样式 比如设置线型的文字,或为文字添加画笔着色器等。可以使用 TextStyle 中的 foreground 属性提供一个画笔

2.2K30

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

Ok,这不就是富文本,我一下子就联想到了RichText,一想到RichText支持WidgetSpan,我就知道问题不大,但是经过测试发现这里面是个大坑.........RenderParagraph来完成的 RenderParagraph的构造函数: 构造函数中又将textSpan交给了TextPainter类 RenderParagraph布局主要过程如下:...,这样就可以完成TextSpan分割了: 关键代码: dart void _splitSpanInPosition(TextSpan textSpan, TextPosition position...TextSpan固有的手势检测等固有能力,同时也可以保留WidgetSpan的自定义能力,因此在这方面是一个不小的优势。...后续可能会做的事: 研究一下多个矩形块的情况 尝试一下上文提到的思路2的方式逐行绘制 考虑加上光标,增加可编辑能力 制作一个可用的插件上传到pub 往期推荐 Flutter混编方案起点客户端的实践之路

22520

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

移动开发中图文混排是十分常见的业务需求,如下图效果所示,本篇将介绍 Flutter 中的图文混排效果与实现原理。 ?...事实,针对如上所示的图文混排需求,Flutter 官方提供了十分便捷的实现方式: WidgetSpan 。...如下代码所示,通过 Text.rich 接入 TextSpan 和 WidgetSpan 就可以快速实现图文混排的需求,并且可以看出 WidgetSpan 不止支持图片控件,它可以接入任何你需要的 Widget..., ], ) 也就是说 WidgetSpan 支持文本中插入任意控件,这大大提升了 Flutter 中富文本的自定义效果,比如上述演示效果中随意改变图片的大小。...混入的对象这部分在内容 《十六、详解自定义布局实战》 也介绍过,这里只需要知道通过混入它们, RenderParagraph 就可以获得前面通过 WidgetSpan 传入到 MultiChildRenderObjectElement

3.1K20

Flutter技术与实战(4)

Flutter 中,布局和绘制工作实际 Widget 的另一个子类 RenderObjectWidget 内完成的。...这个函数 State 的生命周期中只会被调用一次,所以我们可以在这里做一些初始化工作,比如为状态变量设定默认值。...组合与自绘,何种方式定义Widget Flutter 中,自定义 Widget 与其他平台类似:可以使用基本 Widget 组装成一个高级别的 Widget,也可以自己画板根据特殊需求来画界面。...手机操作系统一般只有默认的几种字体,大部分情况下可以满足我们的正常需求。但是,一些特殊的情况下,我们可能需要使用自定义字体来提升视觉体验。... Flutter 中,使用自定义字体同样需要在 pubspec.yaml 文件中提前声明。需要注意的是,字体实际是字符图形的映射。

10.7K20

Flutter实战】文本组件及五大案例

设置斜体: Text('老孟',style: TextStyle(fontStyle: FontStyle.italic,)) 设置自定义的字体: 首先下载字体库(比如中华字体库) 将字体文件拷贝的项目中...版本:1.17.3)也可以官方issue中关注此问题 start:前端对齐,和TextDirection属性有关,如果设置TextDirection.ltr,则左对齐,设置TextDirection.rtl...设置全局字体样式: MaterialApp的theme中设置如下 MaterialApp( title: 'Flutter Demo', theme: ThemeData( ......datetime:ios和text一样,android出现数字键盘、":"和 "-"。 emailAddress:邮箱键盘,有"@" 和 "."按键。 url:url键盘,有"/" 和 "."...textInputAction参数控制软键盘右下角的按键,说明如下: none:android显示返回键,ios不支持。

7.2K10

移植一个抖音贴纸组件到Flutter

所以 Flutter 怎么学?所谓:取乎其,得乎其中。我只有一句话:以让 Flutter 成为你最拿手技能为目标去学。 Q:能给一些 Flutter 的学习资料?...3.Flutter github 仓库,现在网络 Flutter 原理分析的文章真的非常少,所以真想要成为 Flutter 专家,你必须作为开拓者去阅读 Flutter 各种层级下的源码。...以上只是个人观点,有分歧可以评论区探讨。 Q:Flutter 哪些地方做的比 Native 好?...整个控件 Android 开始设计到开发完成则是花费了 100 多个小时。所以整个库的移植成本并不算太高。 2.看上面 gif 的比较,可以发现流畅度上面并没有区别。...6.GestureRecognizer 的胜出机制,就是 Flutter 事件不可截断这个 feature 的补充的灵活性,可以使得某个 Widget 的手势被截断,推荐优先使用 Gesture。

1.3K20

Flutter的文本、图片和按钮使用

图片显示方式很多,如资源图片、网络图片、文件图片等,图片格式各不相同,Flutter也有多种方式加载不同形式、支持不同格式图片: 加载本地资源图片,如Image.asset(‘images/logo.png...Flutter提供三个基本按钮控件: FloatingActionButton:圆形按钮,一般屏幕内容前面,处理界面中最常用、最基础用户动作。...UI基本信息表达,Flutter经典控件与原生Android、iOS系统提供的控件无本质区别。但自定义控件样式,Flutter的这些经典控件提供强大简洁扩展能力,快速开发功能复杂、样式丰富页面。...5 FAQ 阅读Flutter SDK中Text、Image、FadeInImage,以及按钮控件FloatingActionButton、FlatButton与RaisedButton的源码,build...阅读Flutter SDK中Text、Image、FadeInImage、FloatingActionButton、FlatButton和RaisedButton的源码时,可以发现它们的build函数中都有一个内部真正承载其视觉功能的控件

45720

Flutter完整开发实战详解(十三、全面深入触摸和滑动原理)

Flutter 中默认情况下,以 Android 为例,所有的事件都是起原生源于 io.flutter.view.FlutterView 这个 SurfaceView 的子类,整个触摸手势事件实质经历了...那么具体 Flutter 中是如何分发使用手势事件的呢?...,所有竞技的成员可以理解为就是 GestureRecognizer 之间的竞争。...事实 Down 事件 Flutter 中一般都是用来做添加判断的,如果存在竞争时,大部分时候是不会直接出结果的,而 Move 事件不同 GestureRecognizer 中会表现不同,而 UP...总结下: Down 事件时通过 addPointer 加入了 GestureRecognizer 竞技场的区域,没移除的情况下,事件可以参加后续事件的竞技,某个事件阶段移除的话,之后的事件序列也会无法接受

1.6K30
领券