HarmonyOS中手势响应是什么,优先级是怎样的?
本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。
HarmonyOS中手势响应是什么,优先级是怎样的?
本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。
在HarmonyOS中,手势响应是指用户通过手指与屏幕进行交互,系统判断用户的手势与组件预定义的手势是否匹配,一旦匹配成功,就会触发相应的手势回调。手势的使用主要通过组件属性的链式调用实现。
关于手势响应的优先级,以下是详细说明:
多个手势:当一个组件绑定多个手势时,先达到手势触发条件的手势优先触发。此外,手势类型可以组合使用,组合模式包括顺序、互斥和并发。
综上所述,HarmonyOS中的手势响应是一个复杂而灵活的系统,通过合理设置手势绑定类型、利用响应顺序规则以及调整相关属性,开发者可以实现丰富多样的用户交互体验。
2 回答7.5k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
前面根据事件响应链收集,确定了响应链成员和事件响应的顺序。然而往往在处理一些业务的时候,需要给组件/不同组件添加更多的手势和事件,比如onClick、API手势gesture 等等
手势响应优先级
手势按是否为系统内置手势,可以分为以下两类:
系统手势:系统控件默认实现的手势(系统内置手势),即调用某些通用事件内置的手势,比如拖拽,onClick;比如bindMenu内置的点击事件,bindContextMenu内置的长按手势。
自定义手势:通过绑定手势API,例如使用gesture声明的事件回调,绑定长按手势事件方法。
除了触摸事件(onTouch事件)外的所有手势与事件,均是通过基础手势或者组合手势实现的。例如,拖拽事件是由长按手势和滑动手势组成的一个顺序手势。
在默认情况下,这些手势为非冒泡事件,当父组件和子组件绑定同类型的手势时,父子组件绑定的手势事件会发生竞争,子组件会优先识别绑定的手势。
因此,除非显式声明允许多个手势同时成功,否则同一时间只会有一个手势响应。
当父子组件均绑定同一类手势时,子组件优先于父组件触发。
当同一个组件同时绑定多个手势时,先达到手势触发条件的手势优先触发。
当同一个组件绑定相同事件类型的系统手势和自定义手势时,系统手势会优先响应。比如自定义手势TapGesture和系统手势onClick都是单击事件,但是会优先响应onClick事件。
本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。