HarmonyOS 鸿蒙Next CustomDialog何在侧滑手势时,不自动关闭,而可以做自定义操作(如back返回等)
HarmonyOS 鸿蒙Next CustomDialog何在侧滑手势时,不自动关闭,而可以做自定义操作(如back返回等)
代码如下
dialogController: CustomDialogController = new CustomDialogController({
builder: CustomDialogExample(),
onWillDismiss:(dismissDialogAction: DismissDialogAction)=> {
console.info(“reason=” + JSON.stringify(dismissDialogAction.reason))
console.log(“dialog onWillDismiss”)
if (dismissDialogAction.reason == DismissReason.PRESS_BACK) {
dismissDialogAction.dismiss()
}
},
})
更多关于HarmonyOS 鸿蒙Next CustomDialog何在侧滑手势时,不自动关闭,而可以做自定义操作(如back返回等)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙系统中,要实现CustomDialog
在侧滑手势时不自动关闭,并允许进行自定义操作(如back返回等),可以通过重写CustomDialog
的相关事件处理逻辑来实现。
具体步骤如下:
-
重写触摸事件:在
CustomDialog
中重写触摸事件监听,捕获侧滑手势。 -
消费侧滑事件:在触摸事件处理中,判断是否为侧滑手势,如果是,则消费该事件,不让其传递给系统默认的关闭逻辑。
-
实现自定义操作:在消费侧滑事件后,执行自定义操作,如通过
Navigator.pop()
实现back返回等。
示例代码片段(伪代码):
class MyCustomDialog extends CustomDialog {
@override
Widget build(BuildContext context) {
return GestureDetector(
onHorizontalDragEnd: (details) {
if (details.primaryVelocity > 0) { // 判断侧滑方向
// 消费侧滑事件
// 执行自定义操作,如Navigator.pop()
}
},
child: // 你的Dialog内容
);
}
}
注意:实际实现中需根据手势细节(如速度、距离等)判断是否为侧滑,并处理边界情况。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html