Android之布局对事件的拦截(或限定)

在一个Activity下,可能存在多个布局需要对同一个事件进行响应,例如在一个ScrollView布局里有一个图片可滑动的区域布局,

那么这两部分就都要对onTouch事件进行相应,而显然图片滑动布局是希望在它本身区域内屏蔽SrollView的事件响应的(否则会

出现问题)。那么可以用到如下方式:

@Override
public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub
    // 通知父控件勿拦截本控件touch事件
    v.getParent().requestDisallowInterceptTouchEvent(true);
    return false;
} 
时间: 2024-08-02 04:13:27

Android之布局对事件的拦截(或限定)的相关文章

android view、viewgroup 事件响应拦截处理机制

文章中会用到部分网络资源,首先将原作者的链接附上. 但是还是会附上数量较大的关于此部分内容的自己的思考. ------------------------------------------------------------------------------------write by mcdullsin 将原作者的链接附上可以为搜索引擎评价原始作者的文章提供自己能力所及的帮助,也算是对分享自己技术的各位前辈的一种感激吧. 1.android编程下touch事件的分发和消费机制 2.andr

Android开发系列之事件拦截机制

对于Android开发者来说理解事件传递机制的重要性,我想应该是不言而喻的.在一个Activity里面,我们经常会重写onTouchEvent事件,可是重写结束之后,对于是返回true还是返回false却感到迷惑.心情好的时候返回true,心情不好的时候返回false. 要完全理解事件拦截机制,我们首先需要明白这几个方法的作用:dispatchTouchEvent(MotionEvent ev),onInterceptTouchEvent(MotionEvent ev),onTouchEvent

[Android] View和ViewGroup事件分发机制

在android开发中会经常遇到滑动冲突(比如ScrollView或是SliddingMenu与ListView的嵌套)的问题,需要我们深入的了解android事件响应机制才能解决,事件响应机制已经是android开发者必不可少的知识. 1.涉及到事件响应的常用方法构成 用户在手指与屏幕接触过程中通过MotionEvent对象产生一系列事件,它有四种状态: MotionEvent.ACTION_DOWN :手指按下屏幕的瞬间(一切事件的开始) MotionEvent.ACTION_MOVE :手

Android 编程下 Touch 事件的分发和消费机制

Android 中与 Touch 事件相关的方法包括:dispatchTouchEvent(MotionEvent ev).onInterceptTouchEvent(MotionEvent ev).onTouchEvent(MotionEvent ev):能够响应这些方法的控件包括:ViewGroup 及其子类.Activity.方法与控件的对应关系如下表所示: Touch 事件相关方法   方法功能     ViewGroup         Activity        public b

Android——View、ViewGroup事件(Touch事件)处理机制总结

Android中的事件 Touch事件,四种状态: ACTION_DOWN     -->   表示按下了屏幕,一个事件必然从ACTION_DOWN开始 ACTION_MOVE      -->   表示移动手势 ACTION_UP            -->  表示离开屏幕 ACTION_CANCEL  -->   表示取消手势,一般由程序产生,不会由用户产生 一个ACTION_DOWN, n个ACTION_MOVE,1个ACTION_UP,就构成了Android中众多的事件.

[学习总结]4、Android的ViewGroup中事件的传递机制(一)

本文主要针对dispatchTouchEvent,onInterceptTouchEvent,onTouchEvent三个方法,通过简单的例子来简单的介绍下. 根据字面意思的理解,dispatchTouchEvent分发触摸事件,onInterceptTouchEvent拦截触摸事件,onTouchEvent触摸事件.正如它们各自的字面意思,下面简单的列出各自的作用和用法. 1.dispatchTouchEvent作用:决定事件是否由onInterceptTouchEvent来拦截处理. 返回s

Android的按钮单击事件及监听器的实现方式

第一种:匿名内部类作为事件监听器类 第二种:内部类作为监听器 第三种:Activity本身作为事件监听器 第四种:外部类作为监听器 当用户单击button按钮时,程序将会触发MyButtonListener监听器外部MyButtonListener类 使用顶级类定义事件监听器类的形式比较少见,主要因为如下两个原因:1.事件监听器通常属于特定的gui界面,定义成外部类不篮球提高程序的内聚性.2.外部类形式的事件监听器不能自由访问创建gui界面的类中的组件,编程不够简洁.但如果某个事件监听器确实需要

android layout布局属性

参考:http://blog.csdn.net/msmile_my/article/details/9018775 第一类:属性值 true或者 false           android:layout_centerHrizontal 水平居中     android:layout_centerVertical 垂直居中     android:layout_centerInparent 相对于父元素完全居中     android:layout_alignParentBottom 贴紧父元

Android 进阶学习:事件分发机制全然解析,带你从源代码的角度彻底理解(上)

http://blog.csdn.net/guolin_blog/article/details/9097463 事实上我一直准备写一篇关于Android事件分发机制的文章,从我的第一篇博客開始,就零零散散在好多地方使用到了Android事件分发的知识.也有好多朋友问过我各种问题,比方:onTouch和onTouchEvent有什么差别,又该怎样使用?为什么给ListView引入了一个滑动菜单的功能,ListView就不能滚动了?为什么图片轮播器里的图片使用Button而不用ImageView?