【发布时间】:2020-05-15 20:24:05
【问题描述】:
我有一个Bottom Sheet Dialog Fragment,其中包含四个Fragment 和ViewPager。
我想在onBackPressed 点击Bottom Sheet Dialog Fragment 时调用一个方法。在我的OnCreateView 中实现了OnBackPressedCallback,但它没有被触发。有人知道为什么不调用它吗?
val callback = object : OnBackPressedCallback(true */ true means that the callback is enabled /*) {
override fun handleOnBackPressed() {
// Show your dialog and handle navigation
LogUtils.d("Bottom Sheet -> Fragment BackPressed Invoked")
}
}
// note that you could enable/disable the callback here as well by setting callback.isEnabled = true/false
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, callback)
【问题讨论】:
-
@Rafsanjani 我读了它,但即使我把它放在 onAttach 中也不起作用
-
尝试将其放入
onActivityCreated()。也尝试使用this而不是viewLifecycleOwner -
很不幸。我在这里打开了一个问题issuetracker.google.com/issues/149173280
-
我可以通过覆盖 onKeyEvent 来解决这个问题:stackoverflow.com/a/22987388/3131147
标签: android android-fragments bottom-sheet onbackpressed