【问题标题】:Android Fragment Clear back stack in FragmentPagerAdapterFragmentPagerAdapter中的Android Fragment Clear back stack
【发布时间】:2017-11-07 12:13:57
【问题描述】:

我使用FragmentPagerAdapter 有三个标签,每个标签都有自己的根片段(每个都有自己的FrameLayout)。这个根Fragment 用作其他Fragments 的占位符。我想要实现的是,每当切换标签时Fragment 应该清除返回堆栈。 这是adapter 代码。

@Override
    public Fragment getItem(int position) {
        MainScreen mActivity = (MainScreen)mContext;
        FragmentManager manager = mActivity.getSupportFragmentManager();
        if (manager.getBackStackEntryCount() > 0) {
            FragmentManager.BackStackEntry first = manager.getBackStackEntryAt(0);
            manager.popBackStack(first.getId(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
        }

        switch (position) {
            case 0:
                return new BaseFragment();
            case 1:
                return new BaseActivityFragment();
            case 2:
                return new BaseSalesFragment();
            default:
                return null;
        }
    }

【问题讨论】:

  • 在片段中使用 setMenuVisibility(boolean isVisible) 方法。如果片段可见,则使用将数据从片段传递到活动的接口概念,清除活动中的后台堆栈
  • 在切换到带标签的BaseActivityFragment时是否要移除BaseFragment?
  • 否 基本上每个选项卡都有自己的占位符片段,应该由每个选项卡的子片段替换。我想在选项卡出现时清除后堆栈(如果有的话) clicked.leaving 在其 onCreatView() 方法中实际添加另一个片段的基本片段后面

标签: android android-fragments fragmentpageradapter fragment-backstack


【解决方案1】:

解决了感谢您的参与。它成功了。

pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
            FragmentManager manager = mActivity.getSupportFragmentManager();
            if (manager.getBackStackEntryCount() > 0) {
                while (manager.getBackStackEntryCount() > 0){
                    manager.popBackStackImmediate();
                }
            }

        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多