Представления, добавленные в FragmentContainerView, должны быть связаны с фрагментом

Из-за сложностей с реализацией кнопки возврата на панели инструментов между двумя фрагментами я решил начать знакомство с 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>

Можно ли это исправить?

1 ответ

Проверьте свой фрагмент onCreateView()Макет надуть. Не забудьте установить attachToRoot false

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

У меня это работает.

Другие вопросы по тегам