Android 在使用FragmentContainerView添加的片段的onCreateView中,ViewGroup容器为空

Android 在使用FragmentContainerView添加的片段的onCreateView中,ViewGroup容器为空,android,kotlin,fragment,Android,Kotlin,Fragment,上下文: 我正在使用FragmentContainerView在我的XML中添加一个Fragment 我收到测试人员的反馈,当他们从后台状态启动应用程序时,片段不会显示 为了见证这个错误,我启用了开发者选项“不保留活动”。 实际上,有了这个选项,片段将在第一次启动时正确显示。然后,我将应用程序放在后台,然后再次启动->片段消失 代码: 这是带有我的FragmentContainerView的XML: <?xml version="1.0" encoding="

上下文:

我正在使用
FragmentContainerView
在我的XML中添加一个
Fragment

我收到测试人员的反馈,当他们从
后台
状态启动应用程序时,
片段
不会显示

为了见证这个错误,我启用了开发者选项“不保留活动”。
实际上,有了这个选项,
片段
将在第一次启动时正确显示。然后,我将应用程序放在后台,然后再次启动->
片段
消失


代码:

这是带有我的
FragmentContainerView
的XML:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainTileContainer"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <androidx.fragment.app.FragmentContainerView
        android:id="@+id/fragment_main_tile"
        android:name="com.app.fragment.FragmentMainTile"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </androidx.fragment.app.FragmentContainerView>

</FrameLayout>
在我的片段的
onCreateView
方法中有断点,
ViewGroup
是我第一次启动的
FragmentContainerView
,从后台启动后为空

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                              savedInstanceState: Bundle?): View? {
        return inflater.inflate(R.layout.fragment_main_container, container, false)
    }
我以为
FragmentContainerView
会为我处理片段操作:

FragmentContainerView将执行一次性操作:

Creates a new instance of the Fragment
Calls Fragment.onInflate(Context, AttributeSet, Bundle)
Executes a FragmentTransaction to add the Fragment to the appropriate FragmentManager

我应该在片段中处理保存/恢复状态吗?有人能解释这种行为吗?

您是否在某个地方重写了
onSaveInstanceState()
,而忘记调用
super.onSaveInstanceState()
?这是碎片在你身上“消失”的一个常见原因。此外,将
wrap\u内容
父项与
match\u父项
子项相结合是可疑的。我不希望这会导致一个空的
容器
参数,但仍然如此。我没有覆盖
onSaveInstanceState
。父项中的
wrap\u内容
match\u父项
子项的组合是因为我的ViewPager。
ViewPager
中的所有子
片段
都有特定的高度,我希望父容器相应地调整大小。您是否覆盖了某个地方的
onSaveInstanceState()
而忘记调用
super.onSaveInstanceState()
?这是碎片在你身上“消失”的一个常见原因。此外,将
wrap\u内容
父项与
match\u父项
子项相结合是可疑的。我不希望这会导致一个空的
容器
参数,但仍然如此。我没有覆盖
onSaveInstanceState
。父项中的
wrap\u内容
match\u父项
子项的组合是因为我的ViewPager。
ViewPager
中的所有子
片段
都有特定的高度,我希望父容器相应地调整大小。
Creates a new instance of the Fragment
Calls Fragment.onInflate(Context, AttributeSet, Bundle)
Executes a FragmentTransaction to add the Fragment to the appropriate FragmentManager