我有一个滚动型内一个TextView。比方说,在滚动型被命名为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);

但它不会滚动,的除了第二次。看来,在第一次的代码完成,了滚动知道TextView的总高度是多少。

所以我觉得一定有什么东西迫使scrollTo调用之前计算所需要的高度。如何做到这一点(或其他方式)?

有帮助吗?

解决方案

找到答案此处

而不是直接调用scrollTo的,相反,我们应该对滚动型呼叫post。其工作原理。

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);
    }
});
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top