Разработка Android: использование setText с SpannableString с большим количеством пролётов Медленно, обходной путь? - PullRequest
1 голос
/ 05 сентября 2011

Я сделал небольшую подсветку синтаксиса для своего приложения.

Он выполняет регулярные выражения и применяет ForegroundColorSpans к копии контекста EditText - все в потоке. Как только все это будет сделано, вызывается метод setText (), который заменяет контекст EditText на стилизованную копию.

Проблема в том, что метод setText () вызывает зависание пользовательского интерфейса. В тесте, который я сделал с файлом в 2000 строк, для применения стилизованного текста потребовалось 30 секунд!

Кроме того, что я рекомендую пользователям не использовать подсветку синтаксиса с большими файлами и автоматически отключаю ее, если они открывают большой файл, что я могу сделать, чтобы ускорить выделение синтаксиса? Помимо сокращения и повышения эффективности регулярных выражений.

Спасибо, Алекс.

1 Ответ

0 голосов
/ 05 сентября 2011

Возможно, вы можете использовать WebView или альтернативно попытаться развить некоторые функциональные возможности, чтобы стилизовался только текст, видимый пользователю.

...