Прокрутка TextView к определенной строке

У меня есть TextView в ScrollView. Скажем, ScrollView называют s и TextView называют t.

У меня есть много строк, которые будут отображены в TextView и в то же время, я хочу прокрутить представление к определенной строке.

Таким образом, я сделал это:

t.setText(aVeryLongString);
int y = t.getLayout().getLineTop(40); // e.g. I want to scroll to line 40
s.scrollTo(0, y);

Но это не прокрутит, кроме второго раза. Кажется, что на первом разе концы кода, ScrollView знает, сколько общая высота TextView.

Таким образом, я думаю, что должно быть что-то для принуждения вычисления необходимой высоты перед вызовом scrollTo. Как сделать это (или иначе)?

10
задан Randy Sugianto 'Yuku' 22 December 2009 в 10:24
поделиться

1 ответ

Нашел ответ здесь.

Вместо прямого вызова прокруткиДля нужно позвонить на пост , а не на ScrollView. Это работает.

t.setText(aVeryLongString);
s.post(new Runnable() {
    @Override
    public void run() {
        int y = t.getLayout().getLineTop(40); // e.g. I want to scroll to line 40
        s.scrollTo(0, y);
    }
});
20
ответ дан 3 December 2019 в 19:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: