Android NavigationComponents OnBackpress仅适用于系统backpress
当我从片段中按back键时,需要显示一个对话框,它对系统backbutton栏起作用Android NavigationComponents OnBackpress仅适用于系统backpress,android,kotlin,android-navigation,android-architecture-navigation,Android,Kotlin,Android Navigation,Android Architecture Navigation,当我从片段中按back键时,需要显示一个对话框,它对系统backbutton栏起作用 requireActivity().onBackPressedDispatcher.addCallback { showDialog() } 但是,它不会弹出navigateUp()click 我试过了 override fun onSupportNavigateUp(): Boolean { return when(navController.currentD
requireActivity().onBackPressedDispatcher.addCallback {
showDialog()
}
但是,它不会弹出navigateUp()
click
我试过了
override fun onSupportNavigateUp(): Boolean {
return when(navController.currentDestination?.id){
R.id.nav_fragment1 -> {
showDialog()
false
}
else -> navController.navigateUp()
}
}
但它也不起作用,你知道如何让这两个程序使用相同的代码吗?只需使用以下代码块:
binding.toolbar.setNavigationOnClickListener {
when (navController.currentDestination?.id) {
R.id.nav_fragment1-> {
if (onBackPressedDispatcher.hasEnabledCallbacks())
onBackPressedDispatcher.onBackPressed()
else
navController.navigateUp()
}
else -> navController.navigateUp()
}
}
您能再次解释一下您的问题吗:所以您想要这种行为:用户单击后退按钮(系统或屏幕?)->弹出对话框?如果我理解正确,它可以与系统按钮一起工作,但不能与屏幕上的按钮一起工作?为屏幕上的后退按钮添加一个侦听器,并在其中调用对话框功能。否,该应用程序有两个后退按钮,on是向上按钮,另一个是安卓系统提供的向上按钮,目前它仅适用于系统后退按钮,而不适用于向上按钮