android listview onscroll,android – 当ListView到达底部时检测 – onScroll()或onScrollStateChanged()?...

这似乎是一个有很多答案的问题;但是,我找不到一个通用的方法.

我正在尝试在到达底部时向ListView添加数据;使用AsyncTask从Internet检索数据. ListView已经附加了一个适配器.

因此,为了找到实现这一目标的好方法,我得出了两种不同的方法.

>第一个,onScrollStateChanged()方法,基本上与this页面相关.但是,它使用的参数在实际API中没有对应关系.同时,this链接使用正确的API,但我不知道是否以正确的方式.我尝试了两个链接中的第一个,但它有点像meh.调试应用程序,差异值变化很大,我不知道如何正确地插入表达式.另外,我不知道如何修复我可以开始检索数据的偏移量;我的意思是,我想执行代码而不是在我即将到达底部时,而是在我到达之前.此外,即使我们滚动到顶部,有时它也会被调用.

>第二个是onScroll()方法,它在this答案中使用,或者以不同的方式在this代码中使用.我尝试调整两个代码中的最后一个,但它会导致很多问题,即使我们没有到达列表的底部,也会加载数据.

那么,最好的方法是什么?何时以及为什么我更喜欢其中一个?

在我的情况下,我应该使用哪两个?

解决方法:

这是我建议的第三种方法的一些代码,我在自己的项目中使用它.我使用适配器的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

}

标签:android,android-listview,android-scroll

来源: https://codeday.me/bug/20191008/1870898.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值