8

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

要滚动 ListView 我使用:

listView.postDelayed(new Runnable() {
@覆盖 公共无效运行(){ listView.setSelection(listView.getCount()); } }, 100);

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

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

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

4

3 回答 3

17

试试这个 insead 你的代码:

listView.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);

(或通过 XML 布局设置)。

于 2013-03-26T18:03:27.097 回答
8

将选择设置为列表后,您可以尝试添加这行代码:

listView.smoothScrollToPosition(listView.getCount());

生成的代码应如下所示:

listView.postDelayed(new Runnable() {
        @Override
        public void run() {
            listView.setSelection(listView.getCount());
            listView.smoothScrollToPosition(listView.getCount());
        }
    }, 100);
于 2012-08-23T12:30:37.467 回答
1

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

于 2012-08-23T08:30:18.417 回答