HarmonyOS 鸿蒙Next ListContainer 滚动时无法再接收到Touch事件?
HarmonyOS 鸿蒙Next ListContainer 滚动时无法再接收到Touch事件? 今天在弄ListContainer下的item缩放和拖动时发现, 有时会卡住无效,经过测试是ListContainer在滚动时Touch事件不管是ListContainer还是下面的item都无法再接收到Touch事件。我就想自己重写下ListContainer的Touch事件,发现没有像android下有个onInterceptTouchEven方法可用。找半天也没发现有类式的方法。
有什么解决办法吗?想过用MultimodalEventHandle,只是这样会很麻烦。顺便滚动时连ListContainer的父容器也接收不到Touch事件。
更多关于HarmonyOS 鸿蒙Next ListContainer 滚动时无法再接收到Touch事件?的实战教程也可以访问 https://www.itying.com/category-93-b0.html
实测滚动事件和touch事件都在触发

更多关于HarmonyOS 鸿蒙Next ListContainer 滚动时无法再接收到Touch事件?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
我试了下,发现是个bug,你试下不监听Scrolled事件。touch事件就接收不到了。
又试了下,有收到touch事件,只是非常少。不像同时设定srolled时会收到很多。
我的问题应该可以解决了,同时设定scorll因为我有缩放求,多个点拖动这时ListContainer没有滚动的话Touch也接收不到了。但是用ultimodalEventHandle.registerStandardizedEventHandle后,ListContainer的Touch都能正常收到。。晚上再试试能不能解决问题。
这是同时监听touch事件和Scrolled事件时,滑动ListContainer.可以看到事件都正常输出。
楼主你好,可以参考1楼的回答。附上ListContainer的开发指南:
发现这是个BUG,只有当同时设定scrollListener和touchListener,Touch在滑动ListContainer时会正常收到。只设定touchListener时,滑动时没有正常执行。
刚又试了下,touch事件有收到,只是会变得非常少,同时设定scroll的话,log就会打印出来很多的touch事件。这个应该就是bug。
欢迎开发小伙伴们进来帮帮楼主
小吧主,你把我另一个截图给删除了,和上面那截图是不一样的,是只设定一个Touch时的log输出啊。
针对“HarmonyOS 鸿蒙Next ListContainer 滚动时无法再接收到Touch事件”的问题,可能的原因及解决方案如下:
在HarmonyOS开发中,ListContainer组件在滚动时可能会由于事件分发机制导致Touch事件被拦截或消费,从而无法继续传递给其他监听器。这通常与事件冒泡和捕获机制有关。
-
检查事件监听器: 确认是否在ListContainer或其子组件上设置了多个Touch事件监听器。如果存在多个监听器,检查是否有监听器在处理事件后未正确返回false以允许事件继续传播。
-
事件拦截与消费: 检查ListContainer的滚动实现是否在某处拦截并消费了Touch事件。如果是自定义滚动逻辑,确保在不需要完全消费事件时能够正确传递事件。
-
组件层级与布局: 考虑ListContainer的层级结构是否影响了事件的传递。有时,其他覆盖在ListContainer上的组件可能会拦截Touch事件。
-
系统Bug或限制: 如果上述检查均无果,可能是HarmonyOS系统本身的Bug或特定版本的限制。此时,可以尝试查阅最新的HarmonyOS开发文档或社区论坛,看是否有其他开发者遇到并解决了类似问题。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,