【发布时间】: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