更新时间:2023-01-18 20:30:41
根据this issue:
这与Fragment 1.3.0-beta01 release notes中提到的新状态管理器的预期工作方式一样,是修复在添加输入片段视图(aosp/1427376)之前没有一致删除现有片段视图的问题的要求,这实际上修复了许多可能导致崩溃的边缘情况。
您可以更改代码,将此重新创建为两个单独的事务:
fun Fragment.recreateView() {
parentFragmentManager
.beginTransaction()
.detach(this)
.commitNow()
parentFragmentManager
.beginTransaction()
.attach(this)
.commitNow()
}
它接着说:
您可能希望启动b/173472486跟踪Lint警告以提供与此模式完全相同的快速修复,并启动b/165840276将第一类API添加到片段以重新创建其视图,而无需
detach()
/attach()
。