Ran*_*ku' 10 android scroll 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);
Run Code Online (Sandbox Code Playgroud)
但它不会滚动,除了第二次.似乎代码第一次完成时,ScrollView知道TextView的总高度是多少.
所以我认为在scrollTo调用之前必须要强制计算所需的高度.怎么做(或其他)?
Ran*_*ku' 20
在这里找到答案.
而不是调用的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);
}
});
Run Code Online (Sandbox Code Playgroud)