我总共有7个碎片
Frag1 -> Frag2 -> Frag3 -> Frag4 -> Frag5 -> Frag6 -> Frag7
用户从< code>Frag1 -导航
这是片段交易代码
public void displayView(Fragment fragment, Bundle data) {
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
if (data != null) {
if (fragment.getArguments() != null) {
fragment.getArguments().putAll(data);
} else {
fragment.setArguments(data);
}
}
if (!fragment.isAdded()) {
ft.replace(R.id.frame, fragment);
ft.addToBackStack(null);
}
ft.commit();
} else {
Logger.e("MainActivity", "Error in creating fragment");
}
}
在迁移到Frag7之前,我调用了getActivity().getSupportFragmentManager().popBackStack();5
次,但我总是把它作为backstack。
Frag7 -> Frag6 -> Frag1
我无法从用户导航的位置移除当前片段(Frag6)。
您可以尝试以下代码:yourfragmentName是要重定向的片段
if (getFragmentManager().getBackStackEntryCount() > 0) {
getFragmentManager().popBackStack(yourfragmentName.class.getSimpleName(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
}
当您从<代码>片段1 -开始时,请尝试以下逻辑
在那之后,当你从
Frag2 -> Frag3 -> Frag4 -> Frag5 -> Frag6 -> Frag7
u不需要添加到backstack意味着不调用add to back stack();