HarmonyOS createWindow 创建的 window 遮挡拦截了点击事件
window.createWindow 创建出来的 window 会拦截全屏的点击事件,导致无法点击背后的视图。
我们在项目中用 window 来实现自定义弹窗、snackBar等功能,通过 window.createWindow 方法,传入 context、type=Dialog 来创建 window,之后用 resize 方法,将 window 大小设置到展示的位置,然后 show 出来。
目前存在的问题是,window 并非全屏展示的,只是占了显示的一小部分(从Inspector 中看也是),但是 window 展示的时候,会全屏地拦截所有的点击事件,导致无法点击到背后的视图。
1.我们之前用的是 windowStage 的 createSubwindow 方法,subWindow 在resize 之后表现正常,不会拦截背后事件。所以这是 window 的特性还是 bug?有方法可以规避吗?
2.之前用 subWindow 存在的问题是 subWindow 展示会影响 router 的行为,导致无法跳转路由,但是用 window 是可以正常跳转的,但现在用 window 则存在全屏拦截手势的问题,请问有没有什么两全其美的解决方案呢?
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
Slider拦截点击事件失败
150浏览 • 1回复 待解决
UiExtension如何拉起弹框遮挡window,而不是只遮挡UiExtension部分
628浏览 • 1回复 待解决
HarmonyOS如何拦截list的滑动事件?
179浏览 • 1回复 待解决
WebView goBack事件拦截。
896浏览 • 1回复 待解决
HarmonyOS CustomDialogController可否拦截返回事件?
134浏览 • 1回复 待解决
HarmonyOS UI组件事件拦截处理
248浏览 • 1回复 待解决
如何创建一个window?
213浏览 • 1回复 待解决
如何拦截onTouch事件传递
475浏览 • 1回复 待解决
Stack容器中,顶层组件遮挡底部组件导致其点击事件无效。这种情况该怎么解决?
884浏览 • 1回复 待解决
HarmonyOS 富文本点击事件
210浏览 • 1回复 待解决
HarmonyOS 触摸事件是否有分发和拦截?
343浏览 • 1回复 待解决
HarmonyOS ImageSpan点击事件无法触发
303浏览 • 1回复 待解决
HarmonyOS Navigation的事件里不能自定义backButton的点击事件
329浏览 • 1回复 待解决
鸿蒙事件拦截分发处理
10269浏览 • 2回复 待解决
HarmonyOS 滑动的触摸事件,也会触发点击事件响应
250浏览 • 1回复 待解决
如何解决window创建的窗口默认焦点不在界面上,导致不响应返回事件的问题
1616浏览 • 1回复 待解决
HarmonyOS 屏幕点击事件监控代码
250浏览 • 1回复 待解决
HarmonyOS 返回及侧滑返回无法拦截事件
254浏览 • 1回复 待解决
HarmonyOS 侧滑返回事件拦截与绑定
877浏览 • 1回复 待解决
如何在subwindow放屏幕中央的时候,外围区域主window还能继续点击、滑动等用户事件
373浏览 • 1回复 待解决
如何禁止Button的点击事件?
344浏览 • 1回复 待解决
父子组件间点击事件,有没有方法能够控制点击事件在不同的情况触发父/子组件的点击事件
751浏览 • 1回复 待解决
HarmonyOS 全局监听屏幕或者window上边的点击, 该怎么做呢?
176浏览 • 1回复 待解决
floating window可以设置事件穿透吗?
146浏览 • 1回复 待解决
通知栏点击事件监听的方法
257浏览 • 1回复 待解决
1.Q:我们之前用的是 windowStage 的 createSubwindow 方法,subWindow 在resize 之后表现正常,不会拦截背后事件。所以这是 window 的特性还是 bug?有方法可以规避吗?
A:该现象是window的特性,会拦截点击事件
2.Q:之前用 subWindow 存在的问题是 subWindow 展示会影响 router 的行为,导致无法跳转路由,但是用 window 是可以正常跳转的,但现在用 window 则存在全屏拦截手势的问题,请问有没有什么两全其美的解决方案呢?
A:采用router.pushUrl跳转页面的时候,是全局性的并没有和某个ui实例绑定,在多实例场景下使用比较混乱,导致实例获取接口行为不一致。
解决方案及示例:
推荐使用指定UI实例对象的正式方案:
模拟的登录页面代码如下:
文件为 Index.ets
登录请求时候的子窗loading页面代码如下
文件为SubPage.ets
分析是因为利用await将异步转为同步,就不会有时序错乱的问题,不会出现多实例调用router.pushUrl 方法。
侧滑失效是因为子窗口聚焦了,可以设置子窗口不聚焦,
1.设置子窗口不聚焦(防止左滑事件不作用在主窗口上):
2.在AudioFloatingWidget页面增加onBackPress()方法,方法里手动关闭子窗口
参考链接:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5