利用TouchDelegate扩大控件的点击范围

开发者 2024-10-5 18:00:55 100 0 来自 中国
当我们的控件太小,导致我们无法正确的点击,这时间我们可以在在表面再加一层结构,但如许性能不太好,大概加上padding,但影响这个UI结构。这时间我们可以TouchDelegate扩大控件的点击范围。
我们都知道Android触屏变乱是在视图树中转达的,ViewGroup决定是否拦截触屏变乱,假如拦截就本身处理惩罚,假如不拦截就转达给子视图,子视图假如是ViewGroup会履历同样的逻辑。子视图是View(这里特指不能包罗子视图的View)就只能在本身的onTouch大概onTocuhEvent中处理惩罚,并返回ture大概false来告诉父视图处理惩罚完没有。
子View处理惩罚过程中也有onTouch和onTouchEvent两个方法,它们也是有先后序次的,如下代码,在View.java中的dispatchTouchEvent方法中:
1.png 假如View设置了onTouchListener,那么则先实验onTouch方法,假如返回true,上述代码result就是true,那么onTouchEvent就不会实验,反之,会继承实验onTouchEvent。
2.png 在onTouchEvent方法中,假如TouchDelegate不为null而且它的onTouchEvent返回true了,那么当前的onTouchEvent就返回true,不再实验onTouchEvent后续逻辑。
下面我们看TouchDelegate这个类源码:




4.png

下面我们用代码举例:


6.png

可以运行验证效果。
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 16:53, Processed in 0.189172 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表