Android:处理大量的跨度和EditText

时间:2015-04-30 09:24:52

标签: android

我在EditText中遇到大量跨度的性能问题。其实我是一个很大的源代码。要突出显示我设置了不同颜色和不同位置的跨度。假设我们有以下内容:

public static void main(String[] args)

我的代码将输出以下标记(这些只是示例中的数字,它们可能是错误的):

("Keyword", 0, 5) -> public

("Keyword", 7, 12) -> static

("Keyword", 14, 17) -> void

("Type", 24, 29) -> String

然后我设置了跨度:

for(Lexer.Token t: tokens) {
    text.setSpan(new ForegroundColorSpan(colorizer.getColor(t)), t.start, t.end, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
}

现在,假设我在开头添加了char a

a public static void main(String[] args)

所发生的是所有跨度都需要通过添加2来重新计算。问题是如果我有一个巨大的文件和大量的跨度,计算速度很慢。

我的想法是仅将语法高亮应用于代码的可见部分,但这样做有点麻烦,我正在寻找更好,更简单的解决方案。有人为此提供了一个很好的解决方案吗?

提前谢谢

0 个答案:

没有答案