web-dev-qa-db-fra.com

Vous devez appeler setGraph () avant d'appeler getGraph ()

J'ai la navigation inférieure et je remplace le <fragment> tag avec FragmentContainerView cela me donne une erreur sur le fait que NavController n'est pas activé, alors j'ai été posté this question et corrigé le problème, mais j'ai obtenu cette erreur ci-dessous lorsque l'orientation est modifié et en sélectionnant l'élément dans la navigation inférieure

Java.lang.IllegalStateException: vous devez appeler setGraph () avant d'appeler 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" /

trouver un fragment

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)
3
Jimale Abdi

utiliser la dernière version de l'interface utilisateur de navigation:

// navigation
implementation "androidx.navigation:navigation-fragment:2.3.0-alpha02"
implementation "androidx.navigation:navigation-ui:2.3.0-alpha02"

il se fixe sur les nouvelles versions

2