tig*_*k89 6 android android-listview android-scroll
这似乎是一个有很多答案的问题; 但是,我找不到一个通用的方法.我正试图在ListView达到底部时添加数据; 使用数据从Internet检索数据AsyncTask.ListView已经有一个适配器连接到它.
因此,为了找到实现这一目标的好方法,我得出了两种不同的方法.
onScrollStateChanged()方法,该方法基本上与此页面相关.但是,它使用的参数在实际API中没有对应关系.同时,此链接使用正确的API,但我不知道是否以正确的方式.我尝试了两个链接中的第一个,但它有点像meh.调试应用程序,diff值变化很大,我不知道如何正确地插入表达式.另外,我不知道如何修复我可以开始检索数据的偏移量; 我的意思是,我想执行代码而不是在我即将到达底部时,而是在我到达之前.此外,即使我们滚动到顶部,有时它也会被调用.onScroll()方法,在本答案中使用,或者以不同的方式在此代码中使用.我尝试调整两个代码中的最后一个,但它会导致很多问题,即使我们没有到达列表的底部,也会加载数据.那么,最好的方法是什么?何时以及为什么我更喜欢其中一个?在我的情况下,我应该使用哪两个?
dar*_*son 17
这是我建议的第三种方法的一些代码,我在自己的项目中使用它.我使用适配器的getView方法来检测何时到达列表的末尾.
public View getView(int position, View convertView, ViewGroup parent) {
// handle recycling/creating/initializing view
if(reachedEndOfList(position)) loadMoreData();
return convertView;
}
private boolean reachedEndOfList(int position) {
// can check if close or exactly at the end
return position == getSize() - 1;
}
private void loadMoreData() {
// Perhaps set flag to indicate you're loading and check flag before proceeding with AsyncTask or whatever
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6652 次 |
| 最近记录: |