Вы должны вызвать setGraph () перед вызовом getGraph () - PullRequest
2 голосов
/ 11 декабря 2019

У меня есть нижняя навигация, также я заменяю тег <fragment> на FragmentContainerView, он выдает ошибку об отсутствии установленного NavController, затем я отправил этот вопрос и решил проблему, но я получил эту ошибку ниже при изменении ориентации и выборе элемента в нижней навигации

java.lang.IllegalStateException: Вы должны вызвать setGraph () перед вызовом getGraph ()

FragmentContainer

<androidx.fragment.app.FragmentContainerView
        android:id="@+id/nav_host_fragment"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:defaultNavHost="true"
        app:navGraph="@navigation/mobile_navigation" /

поиск фрагмента

val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
    val navController = navHostFragment.navController
    // Passing each menu ID as a set of Ids because each
    // menu should be considered as top level destinations.
    val appBarConfiguration = AppBarConfiguration(
        setOf(
            R.id.navigation_classes, R.id.navigation_schedule, R.id.navigation_settings
        )
    )
    setupActionBarWithNavController(navController, appBarConfiguration)
    navView.setupWithNavController(navController)

1 Ответ

1 голос
/ 11 декабря 2019

Исправлено в соответствии с примечаниями к выпуску 2.2.0-rc03 :

NavHostFragment теперь корректно восстанавливает график после изменения конфигурации при использовании с FragmentContainerView,( b / 143752103 )

Поэтому убедитесь, что вы используете 2.2.0-rc03.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...