Android:ListView.getScrollY() – 它的工作?

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

Related 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计数器的原因是,有时滚动事件可能会多次生成,因此您只需在第一次到达列表的末尾时作出反应。

如果你正在尝试做一个自动增长的列表,我会build议这个教程 。