带有NavigationUI的工具栏和ActionBar

问题描述 投票:0回答:1

我在主活动的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()吗?它们之间有什么区别?

希望有人可以提供帮助。

android android-actionbar android-toolbar android-jetpack-navigation
1个回答
0
投票

取决于您使用什么。如果在XML中使用<toolbar>,则仅需使用setupToolbar。但是,如果使用ActionBarTheme.AppCompat.Light提供的默认style.xml,则必须使用setupActionBar()

似乎您使用默认的ActionBar。尝试仅使用setupToolabr()方法。

© www.soinside.com 2019 - 2024. All rights reserved.