gpt4 book ai didi

android - 检测 ListView 何时到达底部 - onScroll() 或 onScrollStateChanged()?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:26:10 27 4
gpt4 key购买 nike

这似乎是一个已经有很多答案的问题;但是,我找不到通用的方法。当到达底部时,我正在尝试将数据添加到 ListView;使用 AsyncTask 从 Internet 检索数据。 ListView 已经附加了一个适配器。

因此,在寻找实现这一目标的好方法时,我想到了两种不同的方法。

  1. 第一个,onScrollStateChanged() 方法,基本上与this 相关。页。但是,它使用的参数在实际API中并没有对应关系。同时,this链接使用正确的 API,但我不知道是否以正确的方式。我尝试了两个链接中的第一个,但有点无聊。调试应用程序时,diff 值变化很大,我不知道如何正确插入表达式。另外,我不知道如何修复可以开始检索数据的偏移量;我的意思是,我不想在即将到达底部时执行代码,而是在到达底部之前执行代码。此外,有时即使我们滚动到顶部也会调用它。
  2. 第二个是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 - 检测 ListView 何时到达底部 - onScroll() 或 onScrollStateChanged()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28177387/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com