最近看源码看见onTouchEvent 方法中 有这么一段话

 if (mTouchDelegate != null) {            if (mTouchDelegate.onTouchEvent(event)) {                return true;            }        }

也就是说 设置该代理后会直接消费事件 最后写代码测试了下 发现该代理 会增加事件处理的区域

        lin = (LinearLayout) findViewById(R.id.lin);        tv = (TextView) findViewById(R.id.tv);        btn = (Button) findViewById(R.id.btn);        tv.setBackgroundColor(Color.RED);        lin.setTouchDelegate(new TouchDelegate(new Rect(0,0,500,500),tv));        tv.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Log.d("tg","view onclick");            }        });        btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Log.d("tg","btn onclick");            }        });        lin.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Log.d("tg","lin onclick");            }        });

验证后发现 确实会增加事件处理区域 但是在增加的事件区域消费事件后 父容器将无法接收到事件 但不会影响到其他view的事件

更多相关文章

  1. Android(安卓)频道管理仿今日头条
  2. Android中对标签进行监听的方法
  3. Android(安卓)判断触摸点是否在某个view的区域,解决子view与paren
  4. StevGuo系列文章翻译之Android中的输入事件如何分发
  5. Android(安卓)Studio 解析XML的三种方法
  6. Android(安卓)设备侧usb驱动开发
  7. Android(安卓)简述touch事件中的MotionEvent
  8. Android中事件分发机制理解
  9. android中BaseActivity的公共方法

随机推荐

  1. 如何在单元格中添加colspan和文本?
  2. struts2结合swfupload控件实现视频等大文
  3. 我需要提供哪些权限(如果有)我的Chrome扩展
  4. $.each遍历JSON字符串和 Uncaught TypeEr
  5. 将子属性添加到jsdoc中的现有属性列表
  6. 豆瓣Javascript代码风格规范
  7. 如何使用JQuery .Ajax进行Pingdom检查?
  8. javascript变量:全局?还是局部?这个得注意
  9. 拖放div而不进行克隆
  10. 如何使我的AJAX内容能够被谷歌抓取?