android事件传递
来源:互联网 发布:科比单场81分数据 编辑:程序博客网 时间:2024/05/24 02:37
创建layout1继承relabiveLayout:
public class Layout1 extends RelativeLayout{private final String logTag="Layout1";public Layout1(Context context, AttributeSet attrs) {super(context, attrs);}@Overridepublic boolean onInterceptTouchEvent(MotionEvent ev) {Log.d(logTag, ev.getAction()+"onInterceptTouchEvent");return super.onInterceptTouchEvent(ev);}@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {Log.d(logTag, ev.getAction()+"dispatchTouchEvent");return super.dispatchTouchEvent(ev);}@Overridepublic boolean onTouchEvent(MotionEvent event) {Log.d(logTag, event.getAction()+"onTouchEvent");return super.onTouchEvent(event);}}
创建layout2继承relabiveLayout:
public class Layout2 extends RelativeLayout{private final String logTag="Layout2";public Layout2(Context context, AttributeSet attrs) {super(context, attrs);}@Overridepublic boolean onInterceptTouchEvent(MotionEvent ev) {Log.d(logTag, ev.getAction()+"onInterceptTouchEvent");return super.onInterceptTouchEvent(ev);}@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {Log.d(logTag, ev.getAction()+"dispatchTouchEvent");return super.dispatchTouchEvent(ev);}@Overridepublic boolean onTouchEvent(MotionEvent event) {Log.d(logTag, event.getAction()+"onTouchEvent");return super.onTouchEvent(event);}}
创建view1继承view:
public class view1 extends View{private final String logTag="view1";public view1(Context context, AttributeSet attrs) {super(context, attrs);}@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {Log.d(logTag, ev.getAction()+"dispatchTouchEvent");return super.dispatchTouchEvent(ev);}@Overridepublic boolean onTouchEvent(MotionEvent event) {Log.d(logTag, event.getAction()+"onTouchEvent");return super.onTouchEvent(event);}}
布局xml
<com.example.and_test.Layout1 android:layout_width="400dp" android:layout_height="400dp" android:background="#0f0"> <com.example.and_test.Layout2 android:id="@+id/layout2" android:layout_width="200dp" android:layout_height="200dp" android:background="#ff0"> <com.example.and_test.view1 android:layout_width="100dp" android:layout_height="100dp" android:background="#0ff"/> </com.example.and_test.Layout2> </com.example.and_test.Layout1>页面效果:
控制台输出
为layout2添加touchlistener
findViewById(R.id.layout2).setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {Log.d("layout2", event.getAction()+"onTouch");return false;}});
ontouch返回true
加入onclick事件
findViewById(R.id.layout2).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubLog.d("layout2", "onClick");}});
ontouch return true ,onclick 没有执行
将ontouch return false 结果如下
0 0
- android 事件传递机制
- android 事件传递机制
- android触摸事件传递
- android事件传递机制
- android 事件传递
- Android触摸事件传递
- Android事件传递机制
- Android 事件传递机制
- android 事件的传递
- Android事件传递机制
- Android中的事件传递
- Android事件传递机制
- Android事件传递机制
- Android事件传递机制
- Android事件传递机制
- Android事件传递机制
- Android事件传递机制
- android touch事件传递
- Problem 12:Highly divisible triangular number
- 电子邮件的正则javascript
- 详解Linux命令行下常用svn命令
- Java如何获得一个随机数
- scala协变逆变上界下界---理解篇
- android事件传递
- IOS 使用sqlite
- spring与mybatis三种整合方法
- berkeley db储存URL队列的简单实现增、删、查
- Xcode5单元测试(一)使用XCTest进行单元测试
- 删除字符串空格
- android获取一个用于打开Word文件的intent
- 【LeetCode】Minimum Path Sum
- ecilpse反编译插件---小笔记