FragmentTransaction.add()之后为什么我的android后台堆栈大小仍为0

时间:2016-03-07 10:46:39

标签: android google-maps android-fragments fragmentmanager

好的,我现在很困惑。 我正在运行一个Activity,它扩展了实现Google maps v2的FragmentActivity。 因此,地图片段在激活中并且始终在运行。

我现在想在顶部添加一个新片段,我尝试使用getSupportFragmentManager()以及getFragmentManager(),并且在两种情况下,在transaction.com发送()后,fragmentManager.getBackStackEntryCount()为0。

这导致当我在地图上打开新片段时,我无法返回地图但只是退出应用。

我知道两位经理都有不同的背包,但他们都没有真正展示任何背书。

有人能解释一下我该如何解决这个问题。 Android复杂性深入:)

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。最后必须将FragmentActivity扩展为Activity。

现在工作正常。

答案 1 :(得分:0)

而不是getSupportFragmentManager,它返回正确的数字:

@Override public void onBackPressed() {
    if (getSupportFragmentManager().getBackStackEntryCount() > 0 ) {
        getSupportFragmentManager().popBackStack();
    }
}

您必须在ft.commit()之后或fm.getBackStackEntryCount()之前调用fm.executePendingTransactions()。因为commit()仅为稍后的传递调度事务。