HarmonyOS 鸿蒙Next多点touch事件,只有第一个按下的组件能收到事件分发?

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

HarmonyOS 鸿蒙Next多点touch事件,只有第一个按下的组件能收到事件分发? 模拟游戏手柄,同级有两个自定义组件,两指同时按下左右组件,只有最先按下的组件能收到onTouchEvent,导致第二点无法正常动作,这种场景如何解决?

(Android中左右组件是会分别收到onTouchEvent)

5 回复

解决了么,我现在也是做多点触控 遇到这问题

更多关于HarmonyOS 鸿蒙Next多点touch事件,只有第一个按下的组件能收到事件分发?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


xml.png

布局文件,DependentLayout中有左右两个自定义RockerView

draw.png

重写onDraw分别绘制移动区域和摇杆

touch.png

重写onTouchEvent处理按键操作

效果如下

img.png

我希望两个摇杆能同时动作,但实际效果只有最先按下的摇杆能控制,在touch事件中打log,component值始终只有一个

开发者你好,请提供代码,谢谢

欢迎开发小伙伴们进来帮帮楼主

在HarmonyOS鸿蒙系统中,关于多点触控事件的处理,默认情况下确实可能存在只有第一个按下的组件能收到事件分发的情况。这是因为触控事件在分发时,系统会按照特定的顺序(通常是按下事件的先后顺序)将事件传递给相应的组件。

在多点触控场景下,如果多个手指同时或几乎同时按下,系统可能会将事件首先分发给最先被按下的组件,而后续按下的手指所对应的事件可能会被该组件拦截或未得到正确处理,导致其他组件无法接收到这些事件。

为了解决这个问题,开发者需要在组件的事件处理逻辑中进行相应的调整,确保多点触控事件能够被正确分发和处理。这可能涉及到对触控事件的监听、拦截和传递机制的深入理解,以及对组件间交互逻辑的精心设计。

此外,鸿蒙系统提供了一些API和框架,可以帮助开发者更好地管理多点触控事件。开发者可以利用这些工具来优化事件分发机制,实现更复杂和灵活的触控交互。

如果问题依旧没法解决请联系官网客服,官网地址是:

https://www.itying.com/category-93-b0.html

回到顶部