【发布时间】:2020-12-07 20:20:14
【问题描述】:
我有一个文本字段,我需要设置样式,例如使用粗体或斜体部分。
我尝试覆盖 TextEditingController 的 buildTextSpan 并使用带有自定义样式的注释范围格式化文本,但边缘情况太多了,我真的无法让它工作。
因此,考虑使用格式化程序,在每次更改格式之前,我都会添加一个自定义字符,如下所示:
此文本是 |bBOLD,这是 |iITALICS。会给我这个:
此文字是BOLD,这是斜体。因此,我重写了 buildTextSpan 以从解析函数构建 TextSpan,在该函数中,我将文本按特殊字符拆分,并检查每个文本的首字母以获取格式信息。
这很好用,除了当我按右箭头转到“此文本是”之后的下一个字符时,光标将保持固定,因为它认为有两个字符但仅用于格式化,它们是'不在渲染中。
有什么方法可以让文本框在选择、移动选择或键入时忽略某些字符?
【问题讨论】: