12

我有一个ViewPager持有Fragments via FragmentStatePagerAdapter。假设寻呼机最初包含以下页面(Fragments):

A - B - C - D

当用户滑动时,他可以从Ato BBtoC等移动。但是在某些情况下,当用户更改A页面上的某些选项时,他可以不移动到B,但是C

A - C - D

然后用户返回A,修改某些内容并重新启用B

A - B - C - D

我怎样才能实现这种非常动态的行为?Fragment当用户更改某些内容然后重新填充 s 时,我无法在任何时候添加s ViewPager,因为它很慢并且会中断流程。

4

1 回答 1

3

我们也遇到了同样的情况,我们通过维护一个布尔型 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
    }
});
于 2015-03-05T06:44:42.957 回答