Tsudzukeru
@Tsudzukeru

Как перегрузить navHostFragment с помощью navigation component?

Есть приложение состоящее из двух фрагментов.

<?xml version="1.0" encoding="utf-8"?>
<navigation 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/app_navigation"
    app:startDestination="@id/mediaFragment">
    <fragment
        android:id="@+id/mediaFragment"
        android:name="com.nasa.app.ui.media_preview.PreviewMediaFragment"
        android:label="fragment_media"
        tools:layout="@layout/fragment_media_preview" >
        <action
            android:id="@+id/action_mediaFragment_to_detailMediaFragment"
            app:destination="@id/detailMediaFragment" />
    </fragment>

    <fragment
        android:id="@+id/detailMediaFragment"
        android:name="com.nasa.app.ui.media_detail.DetailMediaFragment"
        android:label="DetailMediaFragment" >
        <argument
            android:name="nasaId"
            app:argType="string" />
        <argument
            android:name="contentType"
            app:argType="com.nasa.app.data.model.ContentType" />
    </fragment>
</navigation>


Можно ли с помощью navigation component очистить весь бекстек и заново загрузить navHostFragment в начало?
  • Вопрос задан
  • 28 просмотров
Решения вопроса 1
Tsudzukeru
@Tsudzukeru Автор вопроса
val navController = findNavController(R.id.nav_host_fragment)
                val navHostFragment =supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
                val inflater = navHostFragment.navController.navInflater
                val graph = inflater.inflate(R.navigation.app_navigation)
                graph.startDestination = R.id.mediaFragment
                navController.graph = graph
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы