Android 判断触摸点是否在某个view内部,解决子childView与parentView的touch事件冲突
发布日期:2021-07-30 03:26:12 浏览次数:9 分类:技术文章

本文共 1116 字,大约阅读时间需要 3 分钟。

事件冲突在触摸事件经常发生,这里记一个解决子view与parent的touch事件冲突的小方法:

原理,对触摸点进行位置判断,是否在目标View内部。
第一步:判断位置

private boolean isTouchPointInView(View targetView, int xAxis, int yAxis) {            if (targetView== null) {                return false;            }            int[] location = new int[2];            targetView.getLocationOnScreen(location);            int left = location[0];            int top = location[1];            int right = left + targetView.getMeasuredWidth();            int bottom = top + targetView.getMeasuredHeight();            if (yAxis >= top && yAxis <= bottom && xAxis >= left                    && xAxis <= right) {                return true;            }            return false;     }

第二步:在parentView中,进行事件拦截

@Override    public boolean dispatchTouchEvent(MotionEvent ev) {        int x = (int) ev.getRawX();        int y = (int) ev.getRawY();        if (isTouchPointInView(targetView, x, y)) {        // insided,do somethings you like            return super.dispatchTouchEvent(ev);        }else{        // outsided,do somethings you like            return super.dispatchTouchEvent(ev);        }    }

转载地址:https://blog.csdn.net/u010886975/article/details/70638408 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:ScrollView嵌套Listview,你会遇到的问题(1)!
下一篇:Android 设置定时提醒,AlarmManager简单使用

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月13日 08时31分58秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章