我虽然这将是一个简单的任务,但显然没有办法将列表视图滚动到底部。我找到的所有解决方案都使用setSelection(lastItem)
方法的变体,该方法仅将选择设置为最后一项,但不滚动到其底部。
就我而言,我有一个空的列表视图(设置了一个很长的空视图标题),我想滚动到它的底部。
那么,有没有办法做到这一点呢?
编辑:
因此,对于那些感兴趣的人,工作解决方案是:
getListView().setSelectionFromTop(0, -mHeader.getHeight());
和
getListView().scrollTo(mOffset)
这也适用于右偏移(根据当前滚动位置计算),但可能会给您一些意外的结果。
如果您希望列表视图始终在底部滚动,即使在动态更新列表视图时也是如此,则可以在列表视图本身中添加这些属性。
android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"
使用以下方法
lv.setSelection(adapter.getCount() - 1);
如果您想以编程方式进行滚动动画,您可以使用以下方法轻松滚动到列表底部:
listView.smoothScrollToPosition(adapter.getCount());
滚动到列表顶部的大部分可以使用:
listView.smoothScrollToPosition(0);
试试这个..它会解决你的问题,我试过了,效果很好。
listView.post(new Runnable(){
public void run() {
listView.setSelection(listView.getCount() - 1);
}});
private void scrollMyListViewToBottom() {
myListView.post(new Runnable() {
@Override
public void run() {
// Select the last row so it will scroll into view...
myListView.setSelection(myListAdapter.getCount() - 1);
}
});
}
它为我工作
使用以下并尝试。
listview.setSelection(adapter.getCount()-1);
您可能想尝试myListView.smoothScrollToPosition(myListView.getCount() - 1)
。这样,您就不会被迫选择最后一行。另外,您可以获得一些流畅,美丽的滚动!(:
我遇到了同样的问题,这对我最有效
listView.setSelection(listView.getAdapter().getCount()-1);
如果没有为列表视图设置适配器,则它根本没有子项,空视图不是列表视图的子项<</p>
尝试使用list.scrollTo(0, list.getHeight());