如何使用 Android 中的导航控制器使自定义后退按钮返回到特定目的地?
how to make custom back button to go back to certain destination using navigation controller in Android?
我需要做一个自定义行为,当用户按下后退按钮时,用户将以编程方式转到某个目的地。我实际上已经阅读了这个
但我不明白如何使用自定义后退按钮code.it 我觉得很奇怪。
我试过使用下面的代码
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 抽象的新实例 class 并实现其抽象方法。
希望对您有所帮助:
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
}
我需要做一个自定义行为,当用户按下后退按钮时,用户将以编程方式转到某个目的地。我实际上已经阅读了这个
但我不明白如何使用自定义后退按钮code.it 我觉得很奇怪。
我试过使用下面的代码
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 抽象的新实例 class 并实现其抽象方法。
希望对您有所帮助:
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
}