android - 如何从 EditText 中仅获取可见文本

标签 android android-edittext

我有一个用于在 Android 上运行的代码编辑器的 EditText。我正在对内容应用语法突出显示,除了 EditText 滚动到屏幕之外的大字符串之外,它运行良好 - 每次按键时语法突出显示都会应用于整个 Spannable。

有谁知道我如何只捕获用户可见的文本?

我只能想到基于光标位置的令人讨厌的黑客攻击,但当用户滚动时这会中断。

最佳答案

可以使用下面的函数来获取可见文本的偏移量。您输入编辑文本的原始 x,y 角,它将返回最近的文本偏移量(即字符位置)。

    EditText et = ;
    et.getOffsetForPosition(x, y);

一旦您知道可见文本的开始/结束,您就可以相应地设置跨度。如果您只是更改颜色(即不是高度/宽度),那么不应该有任何循环依赖。

关于android - 如何从 EditText 中仅获取可见文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22113883/

相关文章:

java - 对话框上的 EditText 不返回任何文本

android - 如何在 Android 中设置 EditText 的最大字符数?

android - 如何在 Library Project 中导入包和类文件

android和ios的java socket编程聊天室

android - Edittext 在 ScrollView 中不可滚动

android:使edittext不可编辑,然后再次使其恢复可编辑

Android:菜单和后退按钮停止工作

java - 减去两次后 TextView 上没有任何显示(hh :mm:ss)

android - RxView.clicks(view).subscribe 与 view.setOnClickListener

php - 如何从 API 服务器删除特定的推送通知