只是想问是否有可能绑定一些监听器到ListView滚动事件.
我想要实现的是,一旦ListView被滚动到底部,我想要求服务器获取更多的数据,如果有的话.
我知道有一个像getLastVisiblePosition()这样的函数,但是我认为它必须在某种类型的监听器中使用,以便与当前最后一个可见位置进行比较,我是对的吗?
干杯,
/马辛
解决方法
只是为了推断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),所以我增加一个以获取实际的项目编号.那么,如果这个,加上可见项目的数量大于项目总数,那么理论上最后一个视图应该是可见的.不应该是一个问题,但请记住,这不是调用,直到滚动完成.