我有一个用于在 Android 上运行的代码编辑器的 EditText。我正在对内容应用语法突出显示,除了 EditText 滚动到屏幕之外的大字符串之外,它运行良好 - 每次按键时语法突出显示都会应用于整个 Spannable 。
有谁知道我如何只捕获用户可见的文本?
我只能想到基于光标位置的令人讨厌的黑客攻击,但当用户滚动时这会中断。
可以使用下面的函数来获取可见文本偏移量。您输入编辑文本的原始 x,y 角,它将返回最近的文本偏移量(即字符位置)。
EditText et = ;
et.getOffsetForPosition(x, y);
一旦您知道可见文本的开始/结束,您就可以相应地设置跨度。如果您只是改变颜色(即不是高度/宽度),那么不应该有任何循环依赖。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)