android中OnClick,OnTouch,OnTouchEvent的传递及优先级研究

在Android开发中,处理View的点击和触摸事件时,涉及OnTouch, OnClick以及OnTouchEvent的交互和优先级。当ViewGroup如ScrollView内嵌其他组件时,事件传递尤为复杂。首先,dispatchTouchEvent负责事件分发,接着决定是否调用onInterceptTouchEvent进行事件拦截,最后onTouchEvent处理事件。理解这三个方法的调用顺序和优先级对于解决ScrollView中图片点击与滑动冲突至关重要。参考相关博客深入研究这个问题。" 6684829,1101606,SqlDataReader关闭错误解析:避免‘阅读器关闭时尝试调用Read无效’,"['数据库编程', 'ADO.NET', '异常处理', 'SQL']
摘要由CSDN通过智能技术生成

        最近在写一个有多个fragment的应用,需要手势互相滑动,而且其中有一个里面封装了一个ScrollView,实现一个瀑布样式的相册,里面不光要上下滚动,还要响应每张图片的OnClick事件。其他fragment都能很好的响应其中的OnTouchEvent事件实现翻页,唯独ScrollView这个fragment不行。这边就设计到如题所说的优先级及传递的问题。

      在网上搜了好久,也整理出几个比较有用的博客,下面来总结一下,供大家学习;

      在Android中,有一类控件是中还可以包含其他的子控件,这类控件是继承于ViewGroup类,例如:ListView, Gallery,  GridView,LinearLayout。

还有一类控件是不能再包含子控件,例如:TextView。

在触发OnTouch事件的时候Android的GroupView会调用如下三个函数:

public boolean dispatchTouchEvent(MotionEvent ev)      //用于事件的分发

public boolean onInterceptTouchEvent(MotionEvent ev)    //  用于事件的拦截

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值