HarmonyOS 自定义弹窗、自定义键盘自动关闭问题
通过CustomDialogController弹出一个自定制的弹窗内容。请问,自定义弹窗是否可以实现以下效果:假设弹窗未覆盖区域有很多其他视图,如滚动视图、按钮等,希望这些视图发生点击、长按、滚动时能够自动关闭弹窗,这些视图的事件很零散,在每个事件中都插入关闭弹窗的代码有些不现实。autoCancel设置为true时,能够优先关闭弹窗,但是会拦截一次用户操作,如弹窗弹出时,点击一个按钮,会先关闭弹窗,第二次点击时才能触发按钮点击事件,这种交互不符合期望。期望能够一次点击,既触发按钮事件,也能够关闭弹窗。
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 自定义CustomDialogController弹窗不能关闭弹窗
633浏览 • 0回复 待解决
HarmonyOS 自定义弹窗(CustomDialog)无法关闭
560浏览 • 1回复 待解决
自定义弹窗自定义转场动画
1128浏览 • 1回复 待解决
HarmonyOS 自定义键盘
237浏览 • 1回复 待解决
HarmonyOS 自定义弹窗的问题
694浏览 • 1回复 待解决
HarmonyOS 自定义弹窗CustomDialog问题
609浏览 • 1回复 待解决
HarmonyOS TextInput自定义键盘问题
582浏览 • 1回复 待解决
HarmonyOS 自定义弹窗CustomDialog会导致键盘收起
414浏览 • 1回复 待解决
自定义弹窗使用相关问题
922浏览 • 1回复 待解决
HarmonyOS 自定义弹窗 (CustomDialog)问题
393浏览 • 1回复 待解决
HarmonyOS 自定义弹窗怎么设置自定义动画?
328浏览 • 1回复 待解决
HarmonyOS 自定义弹窗选择
353浏览 • 1回复 待解决
HarmonyOS 如何禁止自定义弹窗返回键关闭?
164浏览 • 1回复 待解决
弹窗打开、关闭动画是否支持自定义
2358浏览 • 1回复 待解决
HarmonyOS TextInput绑定自定义键盘问题
542浏览 • 1回复 待解决
怎么实现自定义弹窗1打开自定义弹窗2
2502浏览 • 1回复 待解决
HarmonyOS TextInput自定义键盘
405浏览 • 1回复 待解决
HarmonyOS 自定义弹窗部分问题答疑
311浏览 • 1回复 待解决
自定义弹窗边界问题,自定义弹窗怎么设置左右边框的margin效果。
911浏览 • 1回复 待解决
HarmonyOS WebView使用自定义键盘问题
15浏览 • 1回复 待解决
HarmonyOS 全局自定义弹窗demo
286浏览 • 1回复 待解决
自定义弹窗如何设置点击遮盖层不关闭弹窗
2249浏览 • 1回复 待解决
小程序示例自定义键盘
281浏览 • 1回复 待解决
HarmonyOS 自定义键盘和系统键盘如何切换
391浏览 • 1回复 待解决
HarmonyOS 自定义弹窗遮罩未全屏
665浏览 • 1回复 待解决
首先对于自定义键盘的问题,输入框类的组件在customKeyboard()方法中在输入控件失去焦点时,关闭自定义键盘,可以通过stopEditing方法控制键盘的关闭,以TextInput组件为例,可以参考以下文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-textinput-V5#ZH-CN_TOPIC_0000001884917738__customkeyboard10
其次,对于自定义弹窗问题,当前可以使用onWillDismiss()回调结合业务方自行设计处理逻辑实现关闭弹窗且触发事件,比如:通过监听CustomDialogController的onWillDismiss()回调,在回调中判断DismissDialogAction的reason属性为TOUCH_OUTSIDE:
参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-methods-custom-dialog-box-V5在上面监听到点击遮罩层时,先让自定义弹窗消失,然后可以通过事件通知的形式发送事件,在事件订阅处处理接收到的事件,可以根据不同的事件ID或者是传递的不同的data来区分不同组件需要处理的事件逻辑,不同组件的事件逻辑通过定义不同的方法处理:
参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-emitter-V5