#鸿蒙通关秘籍#如何处理鸿蒙自定义弹窗中的用户交互事件?

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
EDIF梦织星

为了在自定义弹窗中处理用户交互,可以在@CustomDialog装饰器中添加按钮,并定义响应的回调函数:

  1. CustomDialogExample中添加按钮和相关回调: javascript @CustomDialog struct CustomDialogExample { cancel?: () => void; confirm?: () => void; controller: CustomDialogController;

    build() { Column() { Text('我是内容').fontSize(20).margin({ top: 10, bottom: 10 }); Flex({ justifyContent: FlexAlign.SpaceAround }) { Button('cancel') .onClick(() => { this.controller.close(); if (this.cancel) { this.cancel(); } }).backgroundColor(0xffffff).fontColor(Color.Black); Button('confirm') .onClick(() => { this.controller.close(); if (this.confirm) { this.confirm(); } }).backgroundColor(0xffffff).fontColor(Color.Red); }.margin({ bottom: 10 }); } } }

  2. 在使用弹窗的组件内部定义对应的回调函数: javascript @Entry @Component struct CustomDialogUser { dialogController: CustomDialogController = new CustomDialogController({ builder: CustomDialogExample({ cancel: () => { this.onCancel(); }, confirm: () => { this.onAccept(); }, }), });

    onCancel() { console.info('Callback when the first button is clicked'); }

    onAccept() { console.info('Callback when the second button is clicked'); }

    build() { Column() { Button('click me') .onClick(() => { this.dialogController.open(); }); }.width('100%').margin({ top: 5 }); } }


分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 自定义组件事件处理
380浏览 • 1回复 待解决
如何自定义弹窗再次弹窗
2255浏览 • 1回复 待解决