如何在喷气背包导航开始时取消选中底部导航项目?

时间:2021-07-01 22:48:48

标签: android kotlin android-navigation

我正在尝试使用 Jetpack Navigation 实现底部导航。除了底部导航中的片段之外,还有一个片段是我设计的作为起始目的地。

问题是当我启动应用程序时,我的起始目的地(片段播放)显示在屏幕上,但底部导航中的项目开始时被选中(记分板),我不希望它在开始时被选中.

Starting destination

我的主活动代码;

class MainActivity : AppCompatActivity() {

private lateinit var binding: ActivityMainBinding

private lateinit var navController: NavController
private lateinit var appBarConfiguration: AppBarConfiguration

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    binding = ActivityMainBinding.inflate(layoutInflater)
    setContentView(binding.root)

    val navHostFragment = supportFragmentManager
        .findFragmentById(R.id.nav_host_fragment) as NavHostFragment

    navController = navHostFragment.findNavController()
    appBarConfiguration = AppBarConfiguration(
        setOf(R.id.scoreboardFragment, R.id.playFragment, R.id.settingsFragment)
    )

    binding.apply {
        setSupportActionBar(toolbar)
        setupActionBarWithNavController(navController, appBarConfiguration)

        bottomNavigation.setupWithNavController(navController)
        bottomNavigation.background = null
    }

}

我尝试使用 question 中的 bottomNavigation.menu[0].isChecked = falsebottomNavigation.menu.setGroupCheckable(0, false, true),但 setGroupCheckable() 也阻止了所选项目的色调颜色,并且设置 isChecked = false 不起作用任何事情或我他们错了。

那么有没有其他方法可以通过从 FAB 中删除起始目的地并将其作为附加项目添加到底部导航来解决这个问题?因为在我看来,这种设计对我的应用来说更方便、更酷。

提前致谢。

0 个答案:

没有答案