HarmonyOS 鸿蒙Next CustomDialog何在侧滑手势时,不自动关闭,而可以做自定义操作(如back返回等)

发布于 1周前 作者 caililin 来自 鸿蒙OS

HarmonyOS 鸿蒙Next CustomDialog何在侧滑手势时,不自动关闭,而可以做自定义操作(如back返回等)

CustomDialog何在侧滑手势时,不自动关闭,而可以做自定义操作(如back返回等)

2 回复
可通过onWillDismiss 拦截

文档地址:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-methods-custom-dialog-box-V5#customdialogcontrolleroptions对象说明

代码如下

深色代码主题
复制
 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的相关事件处理逻辑来实现。

具体步骤如下:

  1. 重写触摸事件:在CustomDialog中重写触摸事件监听,捕获侧滑手势。

  2. 消费侧滑事件:在触摸事件处理中,判断是否为侧滑手势,如果是,则消费该事件,不让其传递给系统默认的关闭逻辑。

  3. 实现自定义操作:在消费侧滑事件后,执行自定义操作,如通过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

回到顶部