微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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);
    }
});

原文地址:https://www.jb51.cc/android/312470.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐