#kotlin #android-fragments #androidx #android-jetpack-navigation
#kotlin #android-фрагменты #androidx #android-jetpack-навигация
Вопрос:
У меня возникла эта проблема, которая кажется мне немного странной. Просматривая мое приложение через инспектор макетов, я вижу, что мой фрагмент NavHostFragment по какой-то причине вложен внутрь самого себя:
Однако, вот как выглядит часть моего файла макета:
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@ id/activity_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="false"
tools:context=".core.MainActivity">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@ id/activity_coordinator_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.fragment.app.FragmentContainerView
android:id="@ id/navHostFragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
Я не раздуваю другой фрагмент NavHostFragment в представлении контейнера фрагментов, так почему же фрагмент NavHostFragment дублируется в layout inspector? Это как-то нормально или есть скрытый фрагмент NavHostFragment, который каким-то образом раздувается?
Ответ №1:
Что ж, при дальнейшем тестировании кажется, что этот дополнительный слой создается при использовании <androidx.fragment.app.FragmentContainerView , но отсутствует при использовании тега <fragment.
Поскольку FragmentContainerView является рекомендуемым контейнером, я предполагаю, что дублирование неизбежно.
Я не знаю, можно ли считать это ошибкой во фрагментах или это ожидаемое поведение.