12

这不是另一个问题的重复……它更多的是扩展。我希望 :)

我有一个包含数百个项目的列表视图。它们是另一个视图中的日期标记条目。

当我显示屏幕时,我希望它滚动到底部,以便显示最近的项目,但是以一种合乎逻辑的“事情结束”的方式。

m_list.setSelection(m_list.getCount()-1);

Kewl as...但是:(现在我的列表不会滚动。它似乎卡在底部。我可以看到“卡车”,它很小而且在底部。

好的..所以我的任务是这样的..我如何从滚动到底部开始,但仍然允许用户(我)在他们(我再次)想要向上滚动时向上滚动。

4

2 回答 2

42

listview在 XML 中设置以下内容。

android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"
于 2013-01-22T09:22:03.200 回答
12

您可以使用以下代码到达列表视图的底部。

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

这将设置 500 毫秒的延迟。或者你可以使用

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

这将实用地滚动您的列表视图。

于 2013-01-22T09:13:43.507 回答