如何使用Android中的导航控制器定制返回按钮返回特定目的地?
我需要做一个自定义行为,当用户按下后退按钮时,用户将以编程方式前往某个目的地。我确实读过这个 但我不明白如何使用自定义的后退按钮代码。我觉得这很奇怪 我试过使用下面的代码如何使用Android中的导航控制器定制返回按钮返回特定目的地?,android,kotlin,android-architecture-components,android-jetpack,android-architecture-navigation,Android,Kotlin,Android Architecture Components,Android Jetpack,Android Architecture Navigation,我需要做一个自定义行为,当用户按下后退按钮时,用户将以编程方式前往某个目的地。我确实读过这个 但我不明白如何使用自定义的后退按钮代码。我觉得这很奇怪 我试过使用下面的代码 override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { fragmentView = infla
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
fragmentView = inflater.inflate(R.layout.fragment_search_setting, container, false)
// set custom back button
val callback = requireActivity().onBackPressedDispatcher.addCallback(this) {
// navigate to certain destination
Navigation.findNavController(fragmentView).popBackStack(R.id.destination_create_event, false)
}
return fragmentView
}
但我得到了这样的类型不匹配错误
必须创建OnBackPressedCallback抽象类的新实例并实现其抽象方法 我希望这能帮助你:
val callback = requireActivity().onBackPressedDispatcher.addCallback(object : OnBackPressedCallback(true){
override fun handleOnBackPressed() {
Navigation.findNavController(fragmentView).popBackStack(R.id.destination_create_event, false)
}
})
// The callback can be enabled or disabled here or in the lambda
}
这不是OP的要求。《老年退休金计划守则》很好;我认为它使用了错误的导入。@MartinMarconcini,正如您在屏幕截图中看到的,类型不匹配错误eccurs,错误消息说需要OnBackPressedCallback,但找到了boolean@ahooee我试过你的解决办法,但是我有这样的错误@Alexa289只需在“return fragmentView”语句之前添加结束addCallback函数括号。请参见屏幕截图: