当我用无穷无尽的项目调用setCurrentItem(int pos)
方法时,如果新位置比当前位置至少小 2,则会被阻塞。如果新位置比旧位置小 1 或大于旧位置,则工作正常。出于测试目的,我将最大数量更改为 300,没有被阻止。它看起来像迭代项目计数以匹配新位置,在我的情况下,项目计数是. 该块持续约 20-30 秒,然后正确地到达所需位置。这是适配器ViewPager
UI
ViewPager
UI
ViewPager
Integer.MAX_VALUE
UI
public class DateCountVPAdapter extends FragmentStatePagerAdapter {
public DateCountVPAdapter(Date startDate, FragmentManager fm) {
super(fm);
this.startDate = startDate;
calendar = Calendar.getInstance();
calendar.setTime(startDate);
}
private Date startDate;
private Calendar calendar;
@Override
public DateCountVPFragment getItem(int position) {
Calendar currentDate = (Calendar)calendar.clone();
currentDate.add(Calendar.DAY_OF_MONTH, position);
return DateCountVPFragment.newInstance(startDate, currentDate.getTime());
}
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
}
我也尝试扩展ViewPager
和修改setCurrentItem(int pos)
方法,但是有一些私有方法使得这样做是不可能的。我也尝试复制该类,但是 . 有一个问题PagerAdapter
,它具有由ViewPager
. 请提供任何解决方案以避免UI
阻塞。提前致谢。