我一直在使用
CWAC’s EndlessAdapter来实现ListViews上的无限滚动.
我想完成相当于一个ViewPager.不幸的是,PageAdapter和ListAdapter不共享相同的公共基类.
什么是最好的方式去做这个?是否存在已经处理这个的库?
解决方法
What’s the best way to go about this?
为您自己实现PagerAdapter添加“无尽”的逻辑.或者,如果您愿意,尝试创建装饰PagerAdapter,EndlessAdapter装饰常规适配器的方式.
后者可能是棘手的,因为PagerAdapter旨在使页面成为视图或片段,而像FragmentPagerAdapter之类的片段处理有点可怕.
Does a library exist that already handles this?
没有我知道的.
主要是因为这个用例似乎并不引人注目.使用ListView,用户可以快速排出列表,快速滚动数十行或数百行.因此,使用“我们到最后”作为加载更多数据的触发器似乎是合理的.然而,使用ViewPager,通常需要更长的时间才能得到最终结果,特别是如果您不使用PagerTabStrip或等效项.因此,等到用户一直到最后才开始加载额外的数据,好像这样会让用户感到烦人 – 你有这么多时间去检索更多的数据,但是没有使用它.
因此,一个替代方法是为您注册一个ViewPager.OnPageChangeListener与您的ViewPager.当onPageSelected(),并且您认为自己接近结束时,启动一个AsyncTask(或任何)去收集更多的数据.那么你需要更新PagerAdapter使用的数据,并在数据更新之后调用该适配器上的notifyDataSetChanged().