添加到 FragmentContainerView 的视图必须与 Fragment 相关联

Views added to a FragmentContainerView must be associated with a Fragment

由于难以在两个片段之间的工具栏中实现后退按钮,我决定开始熟悉 Navigation Graph。但是我得到一个错误

Views added to a FragmentContainerView must be associated with a Fragment. View android.widget.RelativeLayout{...} is not associated with a Fragment.

这是 .xml 文件 nav_host_fragment:

<?xml version="1.0" encoding="utf-8"?>
<layout ...
    <fragment
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:name="androidx.navigation.fragment.NavHostFragment"
        app:navGraph="@navigation/nav_graph"
        app:defaultNavHost="true">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/colorBlack"
            android:clickable="@{viewModel.isSearching ? false : true}"
            android:focusable="@{viewModel.isSearching ? false : true}">

            <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/recent_recyclerView"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginStart="4dp"
                android:layout_marginTop="4dp"
                android:layout_marginEnd="4dp"
                android:layout_marginBottom="4dp"
                android:background="@color/colorBlack"
                tools:itemCount="10"
                tools:listitem="@layout/search_user_layout" />

            <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/search_recyclerView"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginStart="4dp"
                android:layout_marginTop="4dp"
                android:layout_marginEnd="4dp"
                android:layout_marginBottom="4dp"
                android:background="@color/colorBlack"
                android:visibility="gone"
                tools:itemCount="10"
                tools:listitem="@layout/search_user_layout" />

            <ProgressBar
                android:id="@+id/loading"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true"
                android:indeterminate="true"
                android:visibility="@{viewModel.isSearching ? View.VISIBLE : View.GONE}" />
        </RelativeLayout>
    </fragment>
</layout>

可以修复吗?

检查您的 Fragment 的 onCreateView() 布局 inflate 。确保设置 attachToRoot false

inflater.inflate(R.layout.fragment_layout, container, false)

对我有用。