Flutter从0到1实现高性能、多功能的富文本编辑器

2022-10-22  本文已影响0人  _Jun

通过阅读本文,您将了解到

  1. 了解富文本编辑器需要拥有的功能
  2. 知道编写富文本编辑器需要的代码模块
  3. 学会定义富文本配置JSON,并将其解析为富文本

前言:

经过前面两篇文章的基础知识铺垫,我们终于要进入到专栏的核心内容 — 富文本。富文本编辑器可以说是APP中最复杂,但使用场景又极广的组件之一。例如各大笔记APP的核心功能、闲鱼的商品发布功能、还有掘金APP的发布文章&发布沸点功能等,可以说是富文本编辑器让用户能以更简单更便携的方式记录内容。不过Flutter只有最基础的文本编辑组件TextField,在遇到复杂场景时就比较吃力了,例如图片的添加,有序段落.....本文通过分析市场上的各大富文本编辑器的功能和Flutter优秀的富文本插件,从而来自定义自己的富文本编辑器,与大家一起探索文本的世界...

注:Flutter目前已经有许多优秀的开源富文本编辑器,例如:flutter_quill。为了更好的实现属于自己的`富文本编辑器,我们必须要先了解&学习这些优秀的开源项目。

对比分析各大APP的富文本编辑器

对比各大APP的富文本编辑器后,我们可以将富文本功能总结为这些部分:

基础功能 扩展功能
文本斜体 撤回←→
可改变文本大小 图片📸
可改变文本字体格式 视频🎬
可改变文本样式(颜色、粗细) 代码块💻
文本下划线&删除线 链接🔍
标题(h1,h2,h3) 语音📢
文本缩进 绘画块🎨
文本对齐 自定义背景🖼
..... .....

协议选择

如今有很多优秀的富文本编辑器,例如QuillwangEditorProsemirror。根据开源协议、可扩展性、生态等方面的对比考虑之后,本专栏选用Quill协议做为我们富文本编辑器的协议。

——图片来源:Quill富文本编辑器的实践 - DevUI

富文本插件基础分析 — FlutterQuill

FlutterQuill是Quill在Flutter的版本,我们来分析下它的基础构成部分、以便更好的实现我们的富文本。

——注:分析的为部分代码,目的在于了解Flutter实现富文本需要哪些部分。

解析JSON,渲染文本

看到这里,相信你已经知道富文本编辑器由哪些模块组成了。那么就让我们开始实现属于我们的富文本编辑器吧。

尾述

在这篇文章中,我们分析了一个富文本编辑器需要有哪些功能,也分析了优秀的富文本编辑器Flutter Quill,知道了实现富文本编辑器需要有哪些模块。最后我们对自定义富文本编辑器做了一个开头,简单实现了对富文本JSON配置数据的解析。在下一篇文章中,会详细分析自定义富文本编辑器。希望这篇文章能对你有所帮助,有问题欢迎在评论区留言讨论~

参考

flutter_quill

作者:编程的平行世界
链接:https://juejin.cn/post/7154151529572728868

上一篇下一篇

猜你喜欢

热点阅读