看起来似乎是可能的,但我有点难以想出如何实现一个可以无限翻页的 ViewPager
。
我的使用情况是用于显示每月一次的日历,并且可以通过翻页足够多次来切换到任何一个月份。
目前我只是 扩展 PagerAdapter
,并添加了3个自定义的 MonthViews
:
@Override
public Object instantiateItem(View collection, int position) {
final MonthView mv = new MonthView(HistoryMonthActivity.this);
mv.setLayoutParams(new ViewSwitcher.LayoutParams(
android.view.ViewGroup.LayoutParams.MATCH_PARENT,
android.view.ViewGroup.LayoutParams.MATCH_PARENT));
mv.setSelectedTime(mTime);
((DirectionalViewPager) collection).addView(mv, 0);
return mv;
}
我希望一次只保留3个MonthView
在内存中,这样当用户切换时就不会有巨大的延迟来显示来自我的数据库的每一个MonthView
的数据。因此,每当显示一个新页面时,我需要删除一个MonthView
并添加一个MonthView
。如果有更好的实现同样功能的方法,我很乐意听取!我正在考虑尝试使用FragmentStatePagerAdapter
。
PagerAdapter
方法getItemPosition()
来简化它。 - ohhorobmViewPager.setOffscreenPageLimit(3);
- Oleg Vaskevich