android – 将TextView滚动到特定行

前端之家收集整理的这篇文章主要介绍了android – 将TextView滚动到特定行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在ScrollView中有一个TextView.假设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调用之前必须强制计算所需的高度.如何做(否则)?

解决方法

找到答案 here.

而不是直接调用scrollTo,我们必须在ScrollView上调用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);
    }
});

猜你在找的Android相关文章