Jetpack Compose BackPressHandler 无法在 onResume 后拦截回按

Jetpack Compose BackPressHandler fails to intercept back presses after onResume

在我的 Jetpack Compose 项目中,我使用 BackPressHandler 来自 Android 个示例。在我 暂停和恢复 应用程序之前,一切都按预期工作。此时 BackPressHandler 不再拦截后退按钮,导航只是默认为常规后退按钮行为。

能够在演示项目中重现问题,请参阅代码示例:

https://gist.github.com/vitalnik/2a444c20cb9f370c405ee1ddb86d3e66

谢谢!

不用再用BackPressHandler了,既然写了那篇文章,就加了系统BackHandler,可以切换了。它没有这样的问题。

您好,就像@Philip 解释的使用BackHandler,它在启用时会劫持您的后压。 我使用的一个例子是结合 bottom sheet state isExpanded 所以当它真正的 backpress 可以关闭 bottomSheet 并且自己也被禁用时,尝试使用这种组合。

val scope = rememberCoroutineScope()
BackHandler(enabled = bottomSheetScaffoldState.bottomSheetState.isExpanded){
  scope.launch{
     bottomSheetScaffoldState.bottomSheetState.collapse()
   }
}