如何将ListView滚动到底部?

Sve*_*ver 14 android android-listview android-scroll

我虽然这将是一个简单的任务,但显然没有办法将listview滚动到底部.我发现的所有解决方案都使用setSelection(lastItem)方法的变体,它只将选择设置为最后一项,但不会滚动到它的底部.

在我的情况下,我有一个空的列表视图(有一个长的空视图标题集),我想滚动到它的底部.

那么,有没有办法做到这一点?

编辑:

所以对于那些感兴趣的人来说,工作解决方案是:

getListView().setSelectionFromTop(0, -mHeader.getHeight());
Run Code Online (Sandbox Code Playgroud)

getListView().scrollTo(mOffset)
Run Code Online (Sandbox Code Playgroud)

这也有效,右偏移(根据当前滚动位置计算),但可能会给你一些意想不到的结果.

Ran*_*ngh 38

如果您希望列表视图始终在底部滚动,即使您正在动态更新列表视图,也可以在列表视图中添加这些属性.

android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"
Run Code Online (Sandbox Code Playgroud)


WIS*_*SHY 19

使用以下内容

    lv.setSelection(adapter.getCount() - 1);
Run Code Online (Sandbox Code Playgroud)


Ary*_*ryo 11

如果您想以编程方式使用滚动动画,可以使用以下命令轻松滚动到列表底部:

listView.smoothScrollToPosition(adapter.getCount());
Run Code Online (Sandbox Code Playgroud)

滚动到列表的最顶部可以使用:

listView.smoothScrollToPosition(0);
Run Code Online (Sandbox Code Playgroud)


Max*_*mov -2

尝试使用list.scrollTo(0, list.getHeight());

  • 此方法会导致过度滚动 - 列表视图被扩展(底部有很多空白空间),当您尝试滚动它时,它会缩小。 (3认同)