onTouchuEvent 事件响应的问题

onTouchuEvent 事件响应的问题

悟红尘 发布于 2021-11-28 字数 568 浏览 874 回复 3

比如在线下布局中有2个按钮,分别是登陆,取消。

我按下登陆按钮,如果从事件分发角度去理解,事件从窗口往下传递,然后遍历这2个按钮的onTouchuEvent事件,因为是按下的登陆按钮,所以登陆按钮的onTouchuEvent方法会返回true,来接受这个按下动作,然后后续的move动作,up动作,都在这个登陆按钮中处理。

我猜测,登陆按钮的onTouchuEvent方法之所以返回true,是不是因为,你在登陆按钮位置做按下动作的时候,系统会获取到当前位置的坐标,然后用这个坐标和登陆按钮位置所在的坐标进行比对,如果正好包含,就认为我这次按下的动作是针对登陆按钮操作的,不知道我这样理解对不对?

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

离去的眼神 2021-12-01 3 楼

引用来自“nimengbo”的评论

不是的,看一下view和viewGroup 的onTouchEvent源码就知道了,点击登录,先响应的是父布局的onDisPatchEvent事件,再分发到子view,而不是通过坐标确定http://blog.csdn.net/jaysong2012/article/details/45535521

凯凯我们等你回来 2021-11-30 2 楼

我听说onTouchEvent的返回值不是代表是否消耗此次event吗?

吃颗糖壮壮胆 2021-11-30 1 楼

是的,就是这样的。系统知道按钮的位置,知道你按下这个动作的位置,然后才知道你有没有点击这个按钮。