Android 碎片事务回压回撤问题
我有一个活动和四种类型的片段A,B,C,DAndroid 碎片事务回压回撤问题,android,android-fragments,fragment-backstack,Android,Android Fragments,Fragment Backstack,我有一个活动和四种类型的片段A,B,C,D 首先,我将在HomeActivity-(片段1)中显示fragA的一个实例 从FRAGMENT1中,我将加载Fragmb的一个实例(Fragment2)(\u此事务添加到backstack中) 从片段2我将加载fragA的新实例(片段3)(不是旧实例),(此事务不会添加到backstack中)(因此片段2应该被销毁) 现在我将按下backButton,这将转到片段1(因此片段3将像我想的那样被销毁) 并加载Backback中的碎片1。在这一点上,
@Override
public void onBackPressed() {
if(getSupportFragmentManager().getBackStackEntryCount() > 1){
getSupportFragmentManager().popBackStackImmediate();
}else {
super.onBackPressed();
}
}
我认为在
onBackPressed
的实现中,不需要调用popbackinstallent()
。它一直对我有效,没有手动弹出后挡板。(例如,我在onBackPressed()
中做的一件事就是确保NavigationDrawer已关闭)
因此,您可能会弹出backbackback两次:一次是自动完成的,另一次是通过调用
popbackbackshortly()
触发的。在切换片段时,这可能会导致一些问题和意外行为。我认为在实现onBackPressed
时,不需要调用popbackinstally()
。它一直对我有效,没有手动弹出后挡板。(例如,我在onBackPressed()
中做的一件事就是确保NavigationDrawer已关闭)
因此,您可能会弹出backbackback两次:一次是自动完成的,另一次是通过调用
popbackbackshortly()
触发的。这可能会导致切换片段时出现一些问题和意外行为。是的,我曾经遇到过同样的问题。正如我记忆中的那个样,在添加或替换新事务之前,您应该删除片段事务。交易。删除…这样就可以了?或者不是?你可能在错误的地方做了。你能告诉我在哪里做,怎么做吗?你在哪里加载新的碎片?是的,我曾经遇到过同样的问题。正如我记忆中的那个样,在添加或替换新事务之前,您应该删除片段事务。交易。删除…这样就可以了?或者不是?你可能在错误的地方做了。你能告诉我在哪里做,怎么做吗?你在哪里加载新的片段