如果它有超过5行,我可以滚动TextView
。现在我想动态地在我的java代码中检测相同的TextView
是否可滚动或者可以滚动,以便我可以更改它下面的视图的可见性。
我试过了:
textView.setText(description);
textView.setMovementMethod(new ScrollingMovementMethod());
if(textView.getLineCount() > 5)
{
view.setVisibility(View.VISIBLE);
}
但textView.getLineCount()
等于0。
还尝试了canScrollHorizontally(int direction)
功能,但Google的文档没有说明我应该使用哪个参数。
答案 0 :(得分:2)
您获得ZERO是因为您尝试在非UI线程中获取结果。
尝试
textView.post(new Runnable() {
@Override
public void run() {
int lineCount = textView.getLineCount();
if(lineCount >=5)
textView.setVisibility(View.VISIBLE);
}
});
答案 1 :(得分:-1)
使用线程获取lineCount:
@Override
public void run() {
while(textView.getLineCount() == 0){
}
textview_lineCount = textView.getLineCount();
}
答案 2 :(得分:-1)
假设您的TextView
是ScrollView
的孩子,并且您希望自动在追加TextView
之后滚动它,现在包含更多文字,您可以执行以下操作:
TextView t = (TextView) findViewById(R.id.someTextView);
t.append("Some text");
ScrollView s;
if (s.canScrollVertically(1)) {
logScroll(s);
}
private void logScroll(final ScrollView s) {
s.post(new Runnable() {
@Override
public void run() {
s.fullScroll(ScrollView.FOCUS_DOWN);
}
});
}