我在主活动的XML布局中有一个Toolbar
。当按Toolbar
中所述用NavigationUI
创建https://developer.android.com/guide/navigation/navigation-ui时,那么用ActionBar
创建NavigationUI
时是否也太多了?因此,在我的主要活动中,我有以下内容:
override fun onCreate(savedInstanceState: Bundle?) {
// AppBar configuration
appBarConfiguration =AppBarConfiguration.Builder(setOf(R.id.homeFragment)).build()
// NavController object
val navController: NavController = findNavController(R.id.myNavHostFragment)
// create Toolbar using NavigationUI method
setupToolbar(navController, appBarConfiguration)
// create ActionBar using NavigationUI method
setupActionBar(navController, appBarConfiguration)
}
private fun setupToolbar(navController: NavController, appBarConfiguration: AppBarConfiguration) {
binding.toolbar.setupWithNavController(navController, appBarConfiguration)
}
private fun setupActionBar(navController: NavController, appBarConfiguration: AppBarConfiguration) {
setupActionBarWithNavController(navController, appBarConfiguration)
}
我有点困惑。我都需要吗?我只需要setupToolbar()
吗?它们之间有什么区别?
希望有人可以提供帮助。
取决于您使用什么。如果在XML中使用<toolbar>
,则仅需使用setupToolbar
。但是,如果使用ActionBar
中Theme.AppCompat.Light
提供的默认style.xml
,则必须使用setupActionBar()
。
似乎您使用默认的ActionBar
。尝试仅使用setupToolabr()
方法。