当键盘使用时,ListView不会滚动到结尾

时间:2012-08-23 08:15:48

标签: android listview android-listview

当收到或发送新邮件时,我的ListView应自动滚动到结束。 但是当我使用Android键盘从ListView下面的EditText发送消息时,ListView调整大小并且我要发送的新消息出现在屏幕外面,我必须向下滚动才能看到它,即使键盘消失并且ListView再次调整大小。 / p>

要滚动ListView我使用:     

listView.postDelayed(new Runnable() {
@Override public void run() { listView.setSelection(listView.getCount()); } }, 100);

但在我的情况下无法正常工作。

有谁知道为什么会这样?有没有办法,总是滚动ListView结束?

谢谢,非常感谢您的帮助!

3 个答案:

答案 0 :(得分:16)

尝试使用此代替代码:

listView.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);

(或通过XML布局设置)。

答案 1 :(得分:8)

您可以在将选择设置到列表后尝试添加以下代码:

listView.smoothScrollToPosition(listView.getCount());

结果代码应如下所示:

listView.postDelayed(new Runnable() {
        @Override
        public void run() {
            listView.setSelection(listView.getCount());
            listView.smoothScrollToPosition(listView.getCount());
        }
    }, 100);

答案 2 :(得分:1)

将活动清单中的android:windowSoftInputMode设置为adjustPan|adjustResize