Fer*_*eno 8 android kotlin android-architecture-navigation
我需要一个带有导航图的第二个活动,并在工具栏中有一个返回按钮到第一个也包含导航图的活动
在我的第二个活动中,如果出现后退箭头按钮但在活动中没有,我在进入片段时有 onSupportNavigateUp 和 setupActionBarWithNavController。
尝试在活动和片段中添加 setHomeButtonEnabled 和 setDisplayHomeAsUpEnabled ,如果按钮出现回来,但是当我在前面输入一些片段并返回片段时, startDestination 按钮消失了
我只需要将按钮保持在活动中并解决我的问题
您可以通过指定 setFallbackOnNavigateUpListener 来完成此操作:
private fun setupToolbar() {
val navController = findNavController(R.id.nav_host_fragment)
val appBarConfiguration =
AppBarConfiguration.Builder()
.setFallbackOnNavigateUpListener { onNavigateUp() }
.build()
dataBinding.toolbar.apply {
setupWithNavController(navController, appBarConfiguration)
}
}
Run Code Online (Sandbox Code Playgroud)
然后在 Activity 中做任何你想做的事情:
override fun onNavigateUp(): Boolean {
finish()
return true
}
Run Code Online (Sandbox Code Playgroud)
你不能,活动有自己的工具栏,在你的情况下,它们有两个不同的导航控制器。因此,您的第二个活动为其片段管理导航按钮,当启动目标片段时,导航按钮(后退按钮)消失,因为它没有留下目的地。如果您以编程方式在该(第二个活动)的开始目的地上显示导航按钮并管理 onClick 并启动第一个活动,则该活动始终会转到第一个活动片段的开始目的地,因为它有自己的导航控制器。
问题是导航用户界面不是这样工作的。更好的方法是仅使用具有多个片段的一个活动。并使用任何其他方法在同一导航控制器内解决您的问题。
| 归档时间: |
|
| 查看次数: |
2094 次 |
| 最近记录: |