2011.08.30——— android setOnTouchListener onTouchEvent

参考:http://blog.csdn.net/tsiannian/article/details/6625999

测试代码如下:

package com.lp;import android.app.Activity;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.view.View.OnClickListener;import android.view.View.OnTouchListener;import android.widget.TextView;public class MainActivity extends Activity {private TextView tv; @Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);tv = (TextView) findViewById(R.id.tv);tv.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {System.out.println("onTouchListener "+event.getRawX()+" "+event.getRawY());return false;//return true;}});tv.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {System.out.println("onclick");}});} @Overridepublic boolean onTouchEvent(MotionEvent event) {// TODO Auto-generated method stubSystem.out.println("onTouchEvent "+event.getRawX()+" "+event.getRawY());return false; }}



结论:
1、当在TextViw上触摸时 先触发setOnTouchLisener
如果setOnTouchLisener返回false 会触发onTouchEvent 并且后续的move up都只会触发onTouchEvent
如果setOnTouchLisener返回true 后续的move up 都只会触发setOnTouchLisener
2、当在其他位置触摸时 只会触发onTouchEvent
3、如果加上onClickListener时,
如果setOnTouchLisener返回false 后续的move up都只会触发setOnTouchLisener;并且只有当up事件是在发生在textview上时 才会触发onclicklistener
如果setOnTouchLisener返回true 后续的move up 也只会触发setOnTouchLisener 并且onclicklistner也不会执行


对了
当move触发setOnTouchLisener时 这个move不止是在TextView上 而是可以在整个activity上面

其实 这个很好理解 和http://lipeng88213.iteye.com/blog/1102048
是一样的

1、如果TextView的setonTouchListener返回为false 也就是说TextView不出来这个事件,这时就会向上传递给onTouchEvent 并且后续的也会直接传递给onTouchEvent
反之,就表明setonTouchListener处理这个事件
2、只要加上了onClickListener 就表明TextView会处理这个事件,但是事件会首先传递给setonTouchListener 如果它返回false 就会在up的时候出发click;如果它返回true,click就不会被执行了







更多相关文章

  1. Android(安卓)Architecture Components(一)Lifecycle源码分析
  2. Android关于常用正则号码类Util
  3. Android关于常用正则号码类Util
  4. input系统一 loop线程的创建与运行
  5. android事件分发机制总结
  6. Android(安卓)View类属性及方法
  7. Android简明开发教程十六:Button 画刷示例
  8. Android简明开发教程十六:Button 画刷示例
  9. onRetainNonConfigurationInstance和getLastNonConfigurationIns

随机推荐

  1. android click 和onTouch 事件处理机制
  2. Android:各项设置跳转
  3. Android的Activity切换动画特效库SwitchL
  4. >>>PayPal支持Android与iPhone的说明 请
  5. android handler 的removeMessages的使用
  6. Android(安卓)scaleType属性与ImagView中
  7. android如何实现类似ios点击状态栏回到顶
  8. Android图像滤镜框架GPUImage从配置到应
  9. android 内部文件读取
  10. 请确保您的Android智能手机安全