gpt4 book ai didi

Android - 在删除最后一个 fragment 之前将 fragment 添加到容器中

转载 作者:搜寻专家 更新时间:2023-11-01 09:38:09 25 4
gpt4 key购买 nike

我有一个关于 FragmentTransaction 的问题。所以我依靠每个 Fragment 中的 onDestroyView()onStop() 来显示或隐藏 Activity 底部的工具栏。这是我进行交易的方式:

getSupportFragmentManager().beginTransaction()
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.replace(R.id.activity_frame, fragment, tag)
.addToBackStack(tag)
.commit();

当我调试时,它显示新的 Fragment 在被替换的 Fragment 通过 onDestroyView 之前通过它的 onCreateView() ()onStop()

这是最近才发生的,我发现工具栏显示异常,直到今天早上才有机会检查出来。有什么提示吗??

最佳答案

此行为不久前在支持库中已更改,请参阅 https://code.google.com/p/android/issues/detail?id=230415

您可以切换到该线程中描述的旧行为:

This is an intended behavior change. There is new functionality to optimize the operations and postpone fragment transitions and this is a side effect of that.

You can disable fragment operation optimizations by calling FragmentTransaction.setAllowOptimization(false). This forces everything to happen in the proper order, but also disallows the operations from optimized.

另一种方法是不依赖 onDestroyView()onStop() 被调用,而是处理 onCreateView()< 中已经存在的工具栏 的新 fragment 。例如,始终在 onCreateView() 中替换工具栏,并且仅在 onStop()/onDestroy() 中删除工具栏(如果工具栏仍然存在)由自己的 fragment 创建的。

关于Android - 在删除最后一个 fragment 之前将 fragment 添加到容器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41543045/

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