Scrollview не полностью прокручивается
Я создаю чат-приложение, которое отображает текст ввода пользователем на экран с помощью scrollview. То, что я делаю, автоматически прокручивает scrollview вниз, поскольку к тексту добавляется больше текста. Я использую
ScrollView my_scrollview = (ScrollView) findViewById(R.id.scroller);
my_scrollview.fullScroll(ScrollView.FOCUS_DOWN);
Кажется, что это работает, хотя по какой-то причине, поскольку клавиатура обычно отображается на экране во время чата, когда прокрутка прокрутки вниз вниз не полностью - новое текстовое добавление не отображается (вам придется вручную прокручивать вниз к самой новой). Как я могу это исправить?
Ответы
Ответ 1
Я огляделся и обнаружил, что некоторые другие люди столкнулись с одной и той же проблемой.
Я решил эту проблему, используя этот кусок кода:
final ScrollView scrollView = (ScrollView) findViewById(R.id.scroll_view);
scrollView.post(new Runnable()
{
public void run()
{
scrollView.fullScroll(View.FOCUS_DOWN);
}
});
Надеюсь, это поможет кому-то там!
Ответ 2
Поздно, но может помочь кому-то с этой проблемой.
Для добавления последнего элемента требуется около 200 минисекунд и обновить его для scrollView, чтобы это, безусловно, работало.
void scrollDown()
{
Thread scrollThread = new Thread(){
public void run(){
try {
sleep(200);
ChatActivity.this.runOnUiThread(new Runnable() {
public void run() {
myScrollView.fullScroll(View.FOCUS_DOWN);
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
};
scrollThread.start();
}
Просто вызовите scrollDown();
после добавления элемента в scrollView.