【HarmonyOS】JavaUI组件触摸事件分发
熟悉Android开发的同学肯定对触摸事件分发比较了解,那么在HarmonyOS开发应用需要对触摸事件处理该怎么做呢,下面结合一个实际的案例来讲解一下。
【需求】
封装一个自定义组件CustomView,在组件上有个按钮Button可以响应点击事件,需要在点击按钮的时候只触发按钮的onClick事件不触发父组件的onTouch事件:
伪代码如下:
实际效果是在点击Button的时候会先触发父组件的onTouchEvent 然后再触发Button的onClick事件:
【思路】
在Android开发中触摸事件从父组件向子组件分发,父组件可以对分发操作做拦截;子组件在onTouchEvent中消费触摸事件,并可以控制是否向父组件传递。
【实现】
根据这个思路,我们只需要控制Button的onTouch事件不向父组件传递即可。但HarmonyOS系统中有个区别于Android系统的地方:在Android中我们可以设置Button的Clickable属性为true,从而控制Button不向父组件传递TouchEvent,但是这个方法在HarmonyOS中无效。所以我们需要给Button添加onTouchEvent的回调,并控制返回值为true,消费掉Touch事件并不向父组件传递(API地址:Component.TouchEventListener-Interface-ohos.agp.components-Java API参考-HarmonyOS应用开发)
伪代码如下:
效果如下:
【总结】
HarmonyOS中触摸事件分发和消费的思路基本与Android一致,只是个别API实现不同,只要掌握了思路对于同类型的问题都可以解决。
欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh
相关文章
- 程序员的量化交易之路(3)--Esper事件Event(2)
- spring学习笔记(16)趣谈spring 事件机制[2]:多监听器流水线式顺序处理
- Spring4.1新特性——异步调度和事件机制的异常处理
- Spring透过ApplicationListener来触发contextrefreshedevent事件
- YII框架分析笔记2:组件和事件行为管理
- jQuery 2.0.3 源码分析 事件体系结构
- 事件对象——event
- 《Android进阶之光》--事件总线
- PHP event 事件机制
- 【REACT NATIVE 系列教程之一】触摸事件的两种形式与四种TOUCHABLE组件详解
- 来自Yang Terry的关于SAP CRM One Order事件回调机制的分享
- Atitit vod click event design flow 视频点播系统点击事件文档
- Atitit..组件化事件化的编程模型--(2)---------Web datagridview 服务器端控件的实现原理and总结
- atitit.组件化事件化的编程模型--服务端控件(1)---------服务端控件与标签的关系
- Input系统之InputReader处理合成事件详解
- brython 文档之键盘事件
- iview给radio按钮组件加点击事件
- 一行代码解释.net事件与委托
- atitit.基于组件的事件为基础的编程模型--服务器端控件(1)---------服务器端控件和标签之间的关系
- .NET委托,事件和Lambda表达式