我正在使用导航图托管我的片段。如何从more_menu_help添加后退按钮,以便它可以返回到nav_more?
我尝试执行以下操作,但是,后退箭头图标出现在nav_payments,nav_benefits和nav_more片段中。我只想向more_menu_help添加后退箭头:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val navController = Navigation.findNavController(this, R.id.nav_host_fragment)
nav_bar.setupWithNavController(navController)
// Set up ActionBar
setSupportActionBar(toolbar)
setupActionBarWithNavController(this, navController, null)
nav_bar.setupWithNavController(navController)
supportActionBar?.setDisplayHomeAsUpEnabled(false)
supportActionBar?.setDisplayShowHomeEnabled(false)
supportActionBar?.setDisplayShowTitleEnabled(false)
}
答案 0 :(得分:0)
按照Navigation UI documentation:
默认情况下,当用户位于导航图的顶级目标位置时,“导航”按钮处于隐藏状态,而在其他任何目标位置均显示为“向上”按钮。
如果要自定义哪些目标被视为顶级目标,则可以将一组目标ID传递给构造函数,如下所示:
val appBarConfiguration = AppBarConfiguration(
setOf(R.id.nav_home, R.id.nav_payments, R.id.nav_benefits, R.id.nav_more))
然后在调用AppBarConfiguration
时传递该setupActionBarWithNavController
对象:
setupActionBarWithNavController(navController, appBarConfiguration)
请注意,由于您使用的是ActionBar,因此根据ActionBar section覆盖AppBarConfiguration
时,还必须传递相同的onSupportNavigateUp()
对象:
override fun onSupportNavigateUp(): Boolean {
val navController = findNavController(R.id.nav_host_fragment)
return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp()
}
因此,您应该将AppBarConfiguration
对象保留在类级别(而不是onCreate()
中的局部变量。