您必须先调用setGraph(),然后再调用getGraph()

问题描述 投票:0回答:1

[我有底部导航,也用<fragment>替换了FragmentContainerView标记,它给我有关没有设置NavController的错误,然后我被发布了this问题并解决了问题,但是我知道了更改方向并在底部导航中选择项目时出现以下错误

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)
android android-fragments bottomnavigationview orientation-changes
1个回答
0
投票
根据2.2.0-rc03 release notes固定:

NavHostFragment现在与FragmentContainerView一起使用时,在更改配置后可以正确地还原图形。 (b/143752103

因此请确保您正在使用2.2.0-rc03

© www.soinside.com 2019 - 2024. All rights reserved.