【HarmonyOS】鸿蒙应用开发中使用CommonDialog时调用setSwipeToDismiss()右滑关闭dialog功能为什么无法正常关闭?

 【问题描述】

使用CommonDialog的setSwipeToDismiss(true)方法设置Dialog向右侧滑关闭的功能,如下图所示,左侧是完整的Dialog,中间是向右侧滑的过程,最右侧是滑动结束后的样子,白色背景的Dialog消失了,但是Dialog下方的透明遮罩层并未消失,此时无法操作屏幕上的其它按钮。

 

问题截图:

image.png

image.png

image.png

 

出现该问题的代码如下图所示:

image.png

 

【解决方案】

经过对代码的测试分析之后发现,dialog.setSwipeToDimiss(true)的调用需要放在dialog.show()方法的下面,开发文档中对dialog.setSwipeToDismiss(true)的说明如下图所示:

image.png

 

可以看到文档中只对该方法的具体含义以及相关参数进行了说明,并未标明使用次序问题,很容易出现以上问题,需要特别注意。

参考文档:https://developer.harmonyos.com/cn/docs/documentation/doc-references/commondialog-0000001054678727#ZH-CN_TOPIC_0000001054678727__setSwipeToDismiss-boolean-

posted @ 2022-07-08 10:46  华为开发者论坛  阅读(194)  评论(0编辑  收藏  举报