【发布时间】:2017-07-27 07:21:26
【问题描述】:
我现在有 3 个碎片。一是主片段,二是个人资料片段,三是个人资料编辑片段。
MainFragment 是这样调用的:
fragmentManager = getSupportFragmentManager();
DashboardFragment fragment1 = new DashboardFragment();
Bundle bundle = new Bundle();
fragment1.setArguments(bundle);
fragmentManager.popBackStack(null,FragmentManager.POP_BACK_STACK_INCLUSIVE);
fragmentManager.beginTransaction().replace(R.id.frame, fragment1, "DASHBOARD_FRAGMENT").commitAllowingStateLoss();
现在,我正在从主要片段导航到这样的个人资料片段。
fragmentManager = ((MainActivity)(mContext)).getSupportFragmentManager();
ProfileFragment fragment1 = new ProfileFragment();
Bundle bundle = new Bundle();
fragment1.setArguments(bundle);
fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
fragmentManager.beginTransaction().replace(R.id.frame, fragment1, "PROFILE_FRAGMENT").addToBackStack("B").commit();
现在,我从个人资料片段导航到个人资料编辑片段,如下所示:
fragmentManager = getActivity().getSupportFragmentManager();
ProfileEditFragment fragment1 = new ProfileEditFragment();
Bundle bundle = new Bundle();
fragment1.setArguments(bundle);
fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
fragmentManager.beginTransaction().add(R.id.frame, fragment1, "PROFILE_EDIT_FRAGMENT").addToBackStack("C").commit();
现在导航就像从主要片段到配置文件片段以及从配置文件片段到配置文件编辑片段。
现在,当我从配置文件编辑片段返回时,它直接转到显示空白的主片段。我想从配置文件编辑片段返回到配置文件片段,然后在配置文件片段的后按返回主片段。
为此,我在主要活动中有 onBackPressed 方法,但效果不佳。
@Override
public void onBackPressed() {
// Do nothing if the back button is disabled.
if (!mBackPressCancelled) {
if (getFragmentManager().getBackStackEntryCount() > 0) {
getFragmentManager().popBackStackImmediate();
}
else {
super.onBackPressed();
}
}
}
出了什么问题?请帮忙。谢谢。。
【问题讨论】:
标签: java android android-fragments fragment-backstack