gpt4 book ai didi

java - 从管理器中删除 fragment 时,fragmentManager.getBackStackEntryCount() 不会减少

转载 作者:太空狗 更新时间:2023-10-29 14:37:51 25 4
gpt4 key购买 nike

我想要的正确行为是:

Fragment A -> Fragment B -> Fragment C -> Fragment A

我目前在做什么:

  1. 当我想从 B 回到 A 时,我仍然在这里使用 popBackStack()一切顺利。
  2. 当我想从 B 到 C 时,我删除 B 并添加 C.( fragment 数 2,backStackEntryCount 数 3,替换相同)。
  3. 当我想从 C 回到 A 时,我可以使用popBackStack() 但 BackStackEntryCount 仍将包含B 的参赛作品。

我确实需要 backStackEntryCount 与管理器中包含的 fragment 相同。

有人知道我做错了什么吗?

我的代码:

        Fragment fragment1 = fragmentManager.findFragmentByTag("NavigationFragment_");
if (fragment1 != null) {
fragmentManager.beginTransaction()
.setTransition(TRANSIT_FRAGMENT_FADE)
.remove(fragment1)
.commit();

}

fragmentManager.beginTransaction()
.addToBackStack(backstack)
.setTransition(TRANSIT_FRAGMENT_OPEN)
//.remove(getFragmentManager().findFragmentByTag(NavigationFragment_.class.getSimpleName()))
.add(R.id.fragmentContainer, fragment, fragment.getClass().getSimpleName())
.commit();

我一直在寻找解决方案一段时间但没有结果,所以请不要将其标记为重复。

提前致谢。

最佳答案

如果你来这里是因为你调用了 popBackStack() 但 getBackStackEntryCount() 似乎没有更新,那么你可能想试试 popBackStackImmediate()。

popBackStack() 是异步的——它将请求排入队列以弹出,但在应用程序返回到其事件循环之前不会执行操作。

关于java - 从管理器中删除 fragment 时,fragmentManager.getBackStackEntryCount() 不会减少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53174063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com