HarmonyOS-ArkUI 手势系列4--多层级手势
HarmonyOS-ArkUI 手势系列1--API分析及使用方式及示例-CSDN博客
HarmonyOS-ArkUI 手势系列2--单一手势(长按,拖拽,滑动,旋转,捏合)-CSDN博客
HarmonyOS-ArkUI 手势系列3--组合手势-CSDN博客
什么是多层级手势
就是父容器和子组件都有手势监听的情况,叫做多层级手势。
VS Android
如果您没有Android研发经验,可以略过此处。本节主要是讲鸿蒙在onTouch分发事件的时候,与Android存在的重要区别。
如果您之前开发过Android,尤其是界面开发,想必会碰到著名的手势冲突问题。 例如:一个ScrollView(滚动视图)父控件,里面嵌套了一个固定大小的RecyclerView(列表),这是一个比较常见的搭配方式,如果您只在Xml文件中写完,之后给RecyclerView适配器喂了很多数据,当界面展示出来的时候,您会发现,这个被嵌套的RecyclerView根本就滑不动。
原因就是ScrollView作为父组件,本身就会响应手指的触摸事件, 而RecyclerView作为子组件也本应该响应手指的触摸事件。 而Android默认的事件分发机制,是先问"父亲"拿到onTouch事件之后是否要继续向下层子控件传递,如果"父亲"的源码里写着不传递,那就直接拦截了,子控件是不会知道有这个事件的。这种责任链模式实现的方式,在某些特殊的场景,便显得不是那么灵活了。