繁体   English   中英

带有保留片段的Android导航组件并输入动画

[英]Android Navigation Component with Retained Fragments and enter animation

我正在尝试将导航组件与保留的Fragment和Enter动画一起使用。 该片段将与预期的动画一起出现。 旋转设备时,出现以下崩溃:

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

我可以通过删除输入动画(从导航图)或不保留片段来解决此问题。

有谁知道如何解决这个问题,因为我希望保留动画。

这是我的onCreate:

private var binding: FragmentDemoBinding? = null

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? {

    if (binding == null) {
        binding = FragmentDemoBinding.inflate(inflater, container, false)
    }

    retainInstance = true
    return binding?.root
}

编辑 实际上,在阅读更多内容时,我不确定尝试在导航组件中使用保留的片段是否有意义。 如果我需要在配置更改时保留数据,我猜一个无头的片段或使用onSaveInstance或ViewModel组件等。

在onDestroyView方法中,删除所有视图或仅删除动画视图。

override fun onDestroyView() {
if(view != null){
val parent = view.parent
parent.removeAllViews
}
super.onDestroyView()
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM