Android scrollview 跳回顶部而不是底部
Android scrollview jumps back on top instead of bottom
我的第一个 android 应用程序有点问题:
我制作了一个包含 TextView 的 ScrollView。
每次我按下按钮时,ScrollView 都应该滚动到 TextView 的末尾(因此滚动到 ScrollView 的底部),因此实际添加的文本在视图中。
该应用程序是关于通过按一个按钮向 TextView 简单地添加笔划(像这样 -> 'I')。
实际上它会在第一次按下时跳下(就像它应该的那样),第二次按下时跳到顶部(为什么?),第三次向下按(就像它应该的那样),第四次回到顶部(为什么?)等等。 .
@Override
public void onClick(View v) {
zaehler += 1;
textviewStriche.setTextIsSelectable(true);
if (zaehler % 5 == 0) {
textviewStriche.setText(striche, TextView.BufferType.SPANNABLE);
Spannable spannable = (Spannable) textviewStriche.getText();
spannable.setSpan(STRIKE_THROUGH_SPAN, 0, striche.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
striche += " ";
} else {
striche += "I";
textviewStriche.setText(striche, TextView.BufferType.SPANNABLE);
Spannable spannable = (Spannable) textviewStriche.getText();
if (striche.length()>4) {
spannable.setSpan(STRIKE_THROUGH_SPAN, 0, ((zaehler / 5)*5-1), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
String zaehlerstr = String.valueOf(zaehler);
textviewZaehler.setText(zaehlerstr);
scrollview.fullScroll(ScrollView.FOCUS_DOWN);
}
已经搜索到问题并尝试使用
scrollview.post(new Runnable() {
public void run() {
scrollview.scrollTo(scrollview.getBottom(),scrollview.getBottom());
}
});
或
scrollview.pageScroll(ScrollView.FOCUS_DOWN);
而不是
scrollview.fullScroll(ScrollView.FOCUS_DOWN);
但是也没用。
我认为这是由 spannable 引起的,因为没有它可以正常工作,但我无法弄清楚问题是什么,如果它存在的话。
提前致谢!
ScrollView scrollview = ((ScrollView) findViewById(R.id.scrollview));
scrollview.post(new Runnable() {
@Override
public void run() {
scrollview.fullScroll(ScrollView.FOCUS_DOWN);
}
});
这应该行得通,我用得很好...
我的第一个 android 应用程序有点问题:
我制作了一个包含 TextView 的 ScrollView。 每次我按下按钮时,ScrollView 都应该滚动到 TextView 的末尾(因此滚动到 ScrollView 的底部),因此实际添加的文本在视图中。
该应用程序是关于通过按一个按钮向 TextView 简单地添加笔划(像这样 -> 'I')。
实际上它会在第一次按下时跳下(就像它应该的那样),第二次按下时跳到顶部(为什么?),第三次向下按(就像它应该的那样),第四次回到顶部(为什么?)等等。 .
@Override
public void onClick(View v) {
zaehler += 1;
textviewStriche.setTextIsSelectable(true);
if (zaehler % 5 == 0) {
textviewStriche.setText(striche, TextView.BufferType.SPANNABLE);
Spannable spannable = (Spannable) textviewStriche.getText();
spannable.setSpan(STRIKE_THROUGH_SPAN, 0, striche.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
striche += " ";
} else {
striche += "I";
textviewStriche.setText(striche, TextView.BufferType.SPANNABLE);
Spannable spannable = (Spannable) textviewStriche.getText();
if (striche.length()>4) {
spannable.setSpan(STRIKE_THROUGH_SPAN, 0, ((zaehler / 5)*5-1), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
String zaehlerstr = String.valueOf(zaehler);
textviewZaehler.setText(zaehlerstr);
scrollview.fullScroll(ScrollView.FOCUS_DOWN);
}
已经搜索到问题并尝试使用
scrollview.post(new Runnable() {
public void run() {
scrollview.scrollTo(scrollview.getBottom(),scrollview.getBottom());
}
});
或
scrollview.pageScroll(ScrollView.FOCUS_DOWN);
而不是
scrollview.fullScroll(ScrollView.FOCUS_DOWN);
但是也没用。
我认为这是由 spannable 引起的,因为没有它可以正常工作,但我无法弄清楚问题是什么,如果它存在的话。
提前致谢!
ScrollView scrollview = ((ScrollView) findViewById(R.id.scrollview));
scrollview.post(new Runnable() {
@Override
public void run() {
scrollview.fullScroll(ScrollView.FOCUS_DOWN);
}
});
这应该行得通,我用得很好...