gpt4 book ai didi

android - ViewPager 的无限适配器

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:53:46 25 4
gpt4 key购买 nike

我一直在使用 CWAC's EndlessAdapter在 ListView 上实现无限滚动。

我想完成 ViewPager 的等价物。遗憾的是,PageAdapter 和 ListAdapter 不共享相同的通用基类。

解决此问题的最佳方法是什么?是否存在已经处理此问题的库?

最佳答案

What's the best way to go about this?

将“无穷无尽”的逻辑添加到您自己的 PagerAdapter 实现中。或者,如果您愿意,可以尝试创建装饰性 PagerAdapterEndlessAdapter 装饰常规 Adapter 的方式。

后者可能会很棘手,因为 PagerAdapter 是为页面设计的 View 或 fragment ,并且像 FragmentPagerAdapter 这样的类内部的 fragment 处理有点复杂吓人。

Does a library exist that already handles this?

据我所知没有。

主要是因为用例似乎没有那么引人注目。使用 ListView,用户可以快速浏览列表,快速滚动数十或数百行。因此,使用“we got to the end”作为加载更多数据的触发器似乎是合理的。但是,使用 ViewPager 时,通常需要更长的时间才能到达终点,尤其是在您未使用 PagerTabStrip 或等效项的情况下。因此,等到用户一路走到尽头才开始加载额外的数据,这对用户来说似乎很烦人——你有那么多时间去检索更多数据,但没有使用它。

因此,您可以使用 ViewPager 注册一个 ViewPager.OnPageChangeListener。当 onPageSelected() 时,您认为自己接近尾声,启动 AsyncTask(或其他)以收集更多数据。接下来的问题是您需要更新 PagerAdapter 使用的数据,并在数据更新后调用该适配器上的 notifyDataSetChanged()

关于android - ViewPager 的无限适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15446806/

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