Jon Willis发布了如何使用他的代码实现无限滚动.在那里,他说他在Android支持库的ViewPager类中进行了一些更改.已经进行了哪些更改以及如何使用ViewPager更改"重新编译"库?
这似乎是可能的,但我在确定如何实现ViewPager无限期页面时遇到一些麻烦.
我的用例是一个日历,一次显示一个月,但可以通过分页足够的时间切换到任何月份.
目前我只是extending PagerAdapter,并且MonthViews添加了3个自定义,如下所示:
@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;
}
Run Code Online (Sandbox Code Playgroud)
我想一次只MonthView在内存中保存3 秒,这样MonthView当用户使用Tab键时,在每个数据库中显示数据都没有太大的延迟.因此,每次显示新页面时,我都需要删除一个MonthView并添加一个MonthView.如果有人对同样的功能有更好的想法,我很乐意听到它!
我正在考虑尝试使用FragmentStatePagerAdapter.
我有一个ViewPager和一些视图.在最后一次右手划过后,我想去第一个.
我试过了
@Override
public Fragment getItem(int arg0) {
int i = arg0 % fragmentList.size();
return fragmentList.get(i);
}
@Override
public int getCount() {
return fragmentList.size()+1;
}
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个错误
E/AndroidRuntime(22912): java.lang.IllegalStateException: Fragment already added: RubricFragment{4136cd80 #1 id=0x7f06000c android:switcher:2131099660:0}
Run Code Online (Sandbox Code Playgroud)