Я использую Android Studio 3.6.3 и пытаюсь использовать новый ресурс навигации, который является частью Android Jetpack. Я использовал Navigation Codelab , чтобы узнать, как использовать эту функцию.
В свой проект я добавил ресурс Navigation, и Android Studio автоматически добавила зависимости для этой функции. Затем я создал макет Activity с NavHostFragment
в нем.
Однако, когда я go перехожу на свой ресурс навигации, в разделе HOST
слева отображается No NavHostFragments found
.
Я пробовал синхронизировать Gradle, очищать и перестраивать, но безрезультатно.
Интересно, что когда я просматриваю свой основной макет Activity, фрагмент "home destination" просматривается через NavHostFragment
, поэтому кажется, что связь устанавливается в одном направлении, но не в другом.
Как сделать так, чтобы мой NavHostFragment
отображался в ресурсе навигации?
Вот мой макет XML:
<?xml version="1.0" encoding="utf-8"?>
<layout 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"
tools:context="my.app.MyActivity"
>
<data>
<variable
name="viewModel"
type="my.app.MyViewModel" />
</data>
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<fragment
android:id="@+id/my_nav_host"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:navGraph="@navigation/central_navigation" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways" />
</com.google.android.material.appbar.AppBarLayout>
<com.google.android.material.bottomappbar.BottomAppBar
android:id="@+id/bottomAppBar"
style="@style/Widget.MaterialComponents.BottomAppBar.Colored"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@color/colorPrimary" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</layout>