【问题标题】:Jump between two navigation graphs在两个导航图之间跳转
【发布时间】:2021-05-18 11:43:49
【问题描述】:

对于导航,我使用 Navigation 组件,我使用 Navigation Extension BottomNavigationView 连接到它。我试图从一个图表切换到另一个图表,但他总是向我显示一个错误,即他找不到去哪里的路径。如果从一个图表到另一个图表的方式

Navigation Component和bottomNavView连接的代码

class MainActivity : AppCompatActivity(R.layout.activity_main) {

    private lateinit var appBarConfiguration: AppBarConfiguration
    private var currentNavController: LiveData<NavController>? = null


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;


        if (savedInstanceState == null) {
            initNavigationComponent()

        }
    }

    override fun onRestoreInstanceState(savedInstanceState: Bundle) {
        super.onRestoreInstanceState(savedInstanceState)
        
        initNavigationComponent()
    }

    override fun onSupportNavigateUp(): Boolean {
        return currentNavController?.value?.navigateUp(appBarConfiguration) ?: false
                || super.onSupportNavigateUp()
    }

    private fun initNavigationComponent() {

        appBarConfiguration =
            AppBarConfiguration(setOf(R.id.auth_fragment, R.id.main_screen_fragment))

        setSupportActionBar(toolbar)

        val navGraphIds =
            listOf(R.navigation.nav_main, R.navigation.nav_catalog, R.navigation.nav_profile)

        // Setup the bottom navigation view with a list of navigation graphs
        val controller = bottom_nav.setupWithNavController(
            navGraphIds = navGraphIds,
            fragmentManager = supportFragmentManager,
            containerId = R.id.main_nav_fragment,
            intent = intent
        )

        controller.observe(this, { navController ->
            setupActionBarWithNavController(navController,appBarConfiguration)

            collapsingToolbarLayout.setupWithNavController(
                toolbar,
                navController,
                appBarConfiguration
            )

            navController.addOnDestinationChangedListener {...} )

        currentNavController = controller

    }
}

尝试与&lt;include app:graph = "@navigation/myGraph" /&gt; 连接,但这也不起作用

【问题讨论】:

    标签: android kotlin bottomnavigationview android-architecture-navigation


    【解决方案1】:

    对于 BottomNavigationView 选项卡之间的多 backstack 导航,请使用此 google 示例: Multiple BackStack Navigation

    【讨论】:

    • 我已经用过了。当我在一个图表中时,我无法导航到另一个图表,只能使用底部导航进行导航
    • 能否将您的代码添加到问题中?
    猜你喜欢
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多