Android:ListView.getScrollY() – 它有效吗?

我正在使用它,但它总是返回0,即使我已经滚动到列表的末尾。

Solutions Collecting From Web of "Android:ListView.getScrollY() – 它有效吗?"

getScrollY()实际上是View上的方法,而不是ListView。 它指的是整个视图的滚动量,因此几乎总是0。

如果你想知道ListView的内容滚动了多远,你可以使用listView.getFirstVisiblePosition();

它确实有效,它从可见视图的顶部以像素为单位返回视图滚动部分的顶部。 请参阅getScrollY()文档。 基本上,如果您的列表占据了完整视图,那么您将始终获得0,因为列表的滚动部分的顶部始终位于屏幕的顶部。

你想做什么来看看你是否在列表的末尾是这样的:

public void onCreate(final Bundle bundle) { super.onCreate(bundle); setContentView(R.layout.main); // The list defined as field elswhere this.view = (ListView) findViewById(R.id.searchResults); this.view.setOnScrollListener(new OnScrollListener() { private int priorFirst = -1; @Override public void onScroll(final AbsListView view, final int first, final int visible, final int total) { // detect if last item is visible if (visible < total && (first + visible == total)) { // see if we have more results if (first != priorFirst) { priorFirst = first; //Do stuff here, last item is displayed, end of list reached } } } }); } 

priorFirst计数器的原因是有时滚动事件可以多次生成,因此您只需要在第一次到达列表末尾时作出反应。

如果您正在尝试执行自动增长列表,我建议您使用本教程 。