-
Creator 版本: 3.8.7
-
目标平台: 谷歌浏览器
-
重现方式:滑动容器的TOUCH事件在其子节点也挂载TOUCH事件后就会出问题。子节点没有添加TOUCH事件时,容器的TOUCH_END、TOUCH_CANCEL事件会正常触发;但是如果子节点上也挂了TOUCH事件,当触发拖拽时,会直接触发容器的TOUCH_CANCEL事件,并且在松手后不再触发TOUCH_END或TOUCH_CANCEL。(猜测是cancelInnerEvents附近的逻辑问题)
-
首个报错:
-
之前哪个版本是正常的:
-
手机型号:
-
手机浏览器:
-
编辑器操作系统:
-
重现概率:必现
那你给子节点的范围加一个事件拦截,让这部分区域不触发父节点的事件。不知道你要实现什么功能,但是应该不需要在触发子节点事件的同时触发父节点的事件吧
这个其实不是bug。而是特性。
你试着往容器里加个Button按钮。应该可以发现Button按钮的表现就很正常。
然后你阅读一下Button组件的逻辑,里边有针对如果自己处于一个ScrollView上有什么特殊逻辑。
再然后你copy一下这个逻辑到你的自定义节点里就应该可以正常工作了。
我在做背包功能,用到翻页容器。我的预期是从第1页拖拽到第3页时松手,容器能定位到第3页,但现在PageView是定位到第2页,好像只能一页一页的翻。所以我想自定义一个翻页组件,用来实现我的需求。在做的过程中发现,只要容器里的子节点有TOUCH事件,拖拽时就无法正常收到容器的TOUCH_END事件了,这样也就没法处理在松手后矫正容器位置了。