1
  • 最佳答案

    onInterceptTouchEvent即使返回false或者super,就会把事件给到子view了。如果子view的dispatchTouchEvent方法返回false,才会给到onTouchEvent,如果子view的dispatchTouchEvent返回true,则消费掉,如果是super则由子view的onTouchEvent处理。


    你这里说因为返回了false,而mDownX是老的值,不是下手的地方,这个问题可以解决的。在onInterceptTouchEvent方法的down的时候获取值吧。

    1153952789488054272  评论     打赏       拉大锯
    • 燃烧的腿毛  回复 @拉大锯
      哦哦,酱样子啊。事件分发那块我老是搞不懂,老是混淆概念。嗯嗯,我在onInterceptTouchEvent方法的ACTION_DOWN里面取值吧。
      燃烧的腿毛 2020-08-16 22:12   回复 1249631682693173248
    • 拉大锯  回复 @燃烧的腿毛
      嗯,不用记,就那么几个值,遇到问题的时候,看看API文档或者看看文章即可。
      拉大锯 2020-08-16 22:26   回复 1153952789488054272
    • 松仔  回复 @拉大锯
      代码是21年写的,当时发现了问题没能力解决,现在都快25年了,工作3年回来看项目的时候再看这个问题,我还去翻了书上有关于事件分发的原理,搞了半天还是没解决,大半夜翻一下论坛醍醐灌顶,自己还是太菜了,哎
      松仔 2024-11-29 02:01   回复 1340907184636157952
相关问题
资质平平 · Android
2025-02-20 09:14 92 100
尖沙咀-段坤 · 项目
2025-01-06 23:39 18 2
雅澤yaduo · 领券联盟
2025-01-03 20:39 37 50
呆瓜小董 · webview
2024-11-30 18:02 68 20
阿肥 · 鸿蒙next
2024-10-25 18:07 35 100
尖沙咀-段坤 · 安卓
2024-09-11 11:03 31 2
YanLQ · AOSP
2024-08-10 11:57 35 100
断点 · vue
2024-08-08 10:05 79 30
幻影~ · 安卓 / 面试
2024-06-15 18:51 48 2