【发布时间】:2019-10-24 06:04:24
【问题描述】:
我最近更新了我的依赖项,将OnBackPressedCallback 从接口更改为抽象类。
我已经根据新文档here 进行了设置,但我觉得事情并没有按应有的方式工作。
我的片段的OnCreate 看起来很像文档:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
requireActivity().onBackPressedDispatcher.addCallback(this) {
backPressed()
}
}
当我按下返回按钮时,backPressed() 中的代码会运行,但没有任何反应。
我曾尝试从回调内部调用 handleBackPressed() 和 requireActivity().onBackPressedDispatcher.onBackPressed() 和 requireActivity().onBackPressed(),但这些都导致 StackOverflowError 因为它似乎递归地运行该回调。
必须有一些非常明显的东西我错过了......
【问题讨论】:
-
你想做什么?如果您启用了
OnBackPressedCallback,那么您已经说过您将处理后退按钮,所以当然没有其他操作。 -
在回去之前我需要做一些事情。我现在可以做一些事情,但我似乎无法让它回去。
-
如果您的活动覆盖
onBackPressed()并且它对片段 onBackPress 有一些逻辑,那么请删除该部分,然后它将按预期工作
标签: android androidx android-jetpack android-architecture-navigation