我们也遇到了同样的情况,我们通过维护一个布尔型 ArrayList 解决了这个问题。这里的页面是片段。在 Fragment 上,我们编写了一个接口来更新 ArrayList。该接口在父活动上实现。在每次滑动 ViewPager 时,我们都在检索布尔 ArrayList。在 ViewPager 中,我们在 setOnPageChangeListener 中覆盖了 onPageSelected。
这是一段代码:
pageIndicator.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// TODO Auto-generated method stub
pagesPageBreakInfoList = activityContext.getBooleanList();
currentPageNumber = position;
if (!pagesPageBreakInfoList.get(position)) {
if (currentPageNumber > previouspagenumber) {
previouspagenumber = currentPageNumber;
if (numberofSubmodule == (position + 1)) {
viewPager.setCurrentItem(position - 1);
} else {
viewPager.setCurrentItem(position + 1);
}
} else {
previouspagenumber = currentPageNumber;
viewPager.setCurrentItem(position - 1);
}
} else {
previouspagenumber = currentPageNumber;
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});