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()
}
}
在我的 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()
}
}