【发布时间】:2016-06-20 10:18:34
【问题描述】:
我正在使用 fragmentTransaction 来处理片段,它看起来像这样:
FragmentManager fm = oldFragment.getFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
fragmentTransaction.add(oldFragment.getId(), newFragment, tag);
fragmentTransaction.hide(oldFragment);
fragmentTransaction.addToBackStack(tag);
fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
fragmentTransaction.commit();
有几个片段,我想在返回时跳过其中的一些。
例子:
Frag1 ->(按下一步)-> Frag2 ->(按下一步)-> Frag3 ->(按返回)-> Frag1
当我使用 replace 而不是 add and hide 时,此解决方案有效
getFragmentManager().popBackStack(
tag,
FragmentManager.POP_BACK_STACK_INCLUSIVE);
参考`Skip some fragments onBackPressed
但在我的情况下,跳过的片段会显示片刻。我怎样才能让它之间的碎片从未存在过?
【问题讨论】:
-
我不知道我是否理解正确,但您是否尝试使用 fragmentTransaction.remove(FRAGMENT_YOU_NEED);做两次
-
还有动画问题
-
好的,但是碎片被删除了?它只是动画?
-
是的,它工作正常,片段被移除,但中间片段会显示一小会
标签: android android-fragments fragmenttransaction onbackpressed fragment-backstack