我正在尝试使用 Jetpack Navigation 实现底部导航。除了底部导航中的片段之外,还有一个片段是我设计的作为起始目的地。
问题是当我启动应用程序时,我的起始目的地(片段播放)显示在屏幕上,但底部导航中的项目开始时被选中(记分板),我不希望它在开始时被选中.
我的主活动代码;
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 = false
和 bottomNavigation.menu.setGroupCheckable(0, false, true)
,但 setGroupCheckable()
也阻止了所选项目的色调颜色,并且设置 isChecked = false
不起作用任何事情或我他们错了。
那么有没有其他方法可以通过从 FAB 中删除起始目的地并将其作为附加项目添加到底部导航来解决这个问题?因为在我看来,这种设计对我的应用来说更方便、更酷。
提前致谢。