将滚动侦听器绑定到Android ListView

只是想问是否有可能将一些侦听器绑定到ListView滚动事件。

我想实现的是,一旦ListView已经滚动到底部,我想请求服务器更多的数据,如果有的话。

我知道有一个函数,如:getLastVisiblePosition(),但我认为它必须用某种types的监听器来比较当前最后一个可见的位置,对吗?

欢呼声,/ Marcin

Solutions Collecting From Web of "将滚动侦听器绑定到Android ListView"

只是为了推断TomTo的答案,关于如何做这件事的一些想法(理论上,我没有在实践中尝试过):

ListView lv = (ListView)findViewById(R.id.list_view); lv.setOnScrollListener(new OnScrollListener() { @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { //Check if the last view is visible if (++firstVisibleItem + visibleItemCount > totalItemCount) { //load more content } } }); 

由于firstVisibleItem返回一个索引(从0开始),所以我递增1以得到实际的项目编号。 那么,如果加上可见物品的数量大于物品的总数,理论上最后的视图应该是可见的。 不应该是一个问题,但要记住,这是不是所谓的滚动完成。

用过的

if (++visibleItemCount > totalItemCount)

代替

if (++firstVisibleItem + visibleItemCount > totalItemCount)

AbsListView.OnScrollListener ?