首页 > 解决方案 > 用 ViewPager 中片段 3 中的操作中的片段 2 替换片段 1

问题描述

正如标题所示,是否可以在第三个片段中替换两个片段,例如按下片段 3 中的按钮片段 1替换为片段 2,而所有 3 个片段都在 ViewPager 内?为了更简单的理解,这就是我的 PagerAdapter 的样子:

public class SectionsPagerAdapter extends FragmentPagerAdapter {

    int numberOfTabs;

    public SectionsPagerAdapter(FragmentManager fm, int numberOfTabs) {
        super(fm);
        this.numberOfTabs=numberOfTabs;
    }

    @Override
    public Fragment getItem(int position) {
        // getItem is called to instantiate the fragment for the given page.
        // Return a PlaceholderFragment (defined as a static inner class below).
        switch(position){
            case 0:
                CreateEventFragmentPage1 tab1 = new CreateEventFragmentPage1();
                return tab1;
            case 1:
                CreateEventFragmentPage2 tab2 = new CreateEventFragmentPage2();
                return tab2;
            case 2:
                CreateEventFragmentPage3 tab3 = new CreateEventFragmentPage3();
                return tab3;
            default:
                return null;
        }

    }


    @Override
    public int getCount() {
        // Show 3 total pages.
        return numberOfTabs;
    }
}

任何和所有的建议都将受到高度赞赏。

标签: androidandroid-layoutandroid-fragments

解决方案


因为这是一个适配器FragmentPagerAdapter,所以必须有一个notifyChanged方法或类似的

我想它会像notifyDataSetChangedRecyclerview一样工作

另一个原因是周围的电流碎片没有被完全破坏

另外重写方法getItem(int position)来执行重新排序片段的逻辑

也尝试使用FragmentStatePagerAdapter


推荐阅读