将onScrolling侦听器绑定到android ListView

Mar*_*cin 9 android listview

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

我想要实现的是,一旦ListView滚动到底部,我想询问服务器是否存在更多数据.

我知道有一个函数如:getLastVisiblePosition()但我认为它必须在某种监听器中使用才能与当前最后一个可见位置进行比较,我是对的吗?

欢呼,/ Marcin

kco*_*ock 23

只是为了推断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
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

由于firstVisibleItem是返回一个索引(从0开始),我增加1得到实际的项目编号.然后,如果那个加上可见项目的数量大于项目总数,那么理论上最后一个视图应该是可见的.应该不是问题,但请记住,在滚动完成之前不会调用此方法.

  • 好吧所以它应该是这样的:if(view.getLastVisiblePosition()+ 1 == NUM​​BER_OF_RESULTS){}而不是你的IF,但无论如何还是很好的提示,谢谢 (6认同)