4

我正在研究架构 组件示例存储库的NavigationAdvancedSample项目。此项目显示了一种解决方法,以支持BottomNavigationView的每个选项卡的多个后退堆栈。

在此配置中,您为每个选项卡定义一个导航图,并让类扩展NavigationExtensions为您处理不同的返回堆栈。一切正常,但我找不到选择BottomNavigationView. 我试图调整NavigationExtensions但没有成功。

默认情况下,应用程序启动时选择的选项卡是底部导航视图的第一个。例如,如何更改此行为以显示第二个或第三个选项卡?

4

1 回答 1

0

更改 navGraphIds 中项目的顺序并在bottomNavigationView中选择项目对我帮助。

private fun setupBottomNavigationBar() {
    val bottomNavigationView = findViewById<BottomNavigationView>(R.id.bottom_nav)
    val navGraphIds = listOf(R.navigation.list, R.navigation.home, R.navigation.form)
    bottomNavigationView.selectedItemId = R.id.list
    // Setup the bottom navigation view with a list of navigation graphs
    val controller = bottomNavigationView.setupWithNavController(
        navGraphIds = navGraphIds,
        fragmentManager = supportFragmentManager,
        containerId = R.id.nav_host_container,
        intent = intent
    )
    // Whenever the selected controller changes, setup the action bar.
    controller.observe(this, Observer { navController ->
        setupActionBarWithNavController(navController)
    })
    currentNavController = controller
}

结果,我将R.id.list项目作为第一个。

于 2020-07-07T15:50:58.133 回答