Android开发:使用带有大量跨度的SpannableString的setText,解决方法?

时间:2011-09-05 09:54:01

标签: java android syntax-highlighting android-edittext spannablestring

我为我的应用做了一点语法荧光笔。

它执行正则表达式并将ForegroundColorSpans应用于EditText的contect的副本 - 所有这些都在一个线程中。完成所有这些操作后,将调用setText()方法并将EditText的上下文替换为现在样式的副本。

问题是,setText()方法导致UI冻结。在我使用2000行文件进行的测试中,应用样式文本需要30秒!

除了向用户推荐语法突出显示不应该与大文件一起使用,并且如果他们打开一个大文件时自动关闭它,我该怎么做才能加快语法突出显示?除了减少和使正则表达式更有效。

谢谢, 亚历克斯。

1 个答案:

答案 0 :(得分:0)

也许您可以使用WebView或者尝试开发一些功能,以便只为用户可见的文本设置样式。