У меня есть редактор исходного кода для Android, и у меня есть счетчик номеров строк, который находится слева от основного EditText с исходным кодом внутри него.
У меня есть следующая функция, которую я использую для обновления текстового представления номеров строк:
String lineDelimiter = "\n";
public void updateLineNumbers(){
int lines = textBox.getLineCount();
lineNums.setText(1 + lineDelimiter);
for(int i = 2; i < lines; i++){
lineNums.append(i + lineDelimiter);
}
}
Все это хорошо, но проблема в том, что когда у вас есть документ с 200 нечетными строками, вы начинаете замечать небольшую задержку при добавлении строк. Это связано с тем, что методы setText / append в Android TextView немного медленные? Или это задержка вызывает задержку?
Я также создал аналогичную функцию, которая добавляет номер строки, когда пользователь добавляет номер строки, и наоборот, в отличие от очистки TextView и добавления номеров каждой строки снова, как это делает функция выше. Но эта функция по-прежнему отстает от приложения, когда пользователь добавляет / удаляет строки.
Как я могу это остановить? Я не могу думать о том, что делать, и это напрягает меня, потому что это отстает от моего приложения и делает его непригодным для больших файлов! (
Спасибо за внимание!
РЕШЕНИЕ
Я нашел способ иметь быстрые номера строк, то есть использовать собственный TextView с переопределением onDraw (Canvas canvas) и рисовать их таким образом, что приводит к номерам строк без задержек:).