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 02:12:12   回复 1249631682693173248
    • 拉大锯  回复 @燃烧的腿毛
      嗯,不用记,就那么几个值,遇到问题的时候,看看API文档或者看看文章即可。
      拉大锯 2020-08-16 02:26:23   回复 1153952789488054272
    • 松仔  回复 @拉大锯
      代码是21年写的,当时发现了问题没能力解决,现在都快25年了,工作3年回来看项目的时候再看这个问题,我还去翻了书上有关于事件分发的原理,搞了半天还是没解决,大半夜翻一下论坛醍醐灌顶,自己还是太菜了,哎
      松仔 2024-11-28 06:01:30   回复 1340907184636157952
相关问题
_七月流火 · Android / 自定义View
2020-03-26 20:02 456 5
资质平平 · 自定义View
2022-07-27 13:40 94 10
资质平平 · Android
2025-02-20 09:14 96 100
尖沙咀-段坤 · 项目
2025-01-06 23:39 19 2
雅澤yaduo · 领券联盟
2025-01-03 20:39 55 50
呆瓜小董 · webview
2024-11-30 18:02 82 20