Android:View中的performClick()触发条件
2015-09-21 08:09
459 查看
先看看performClick()源码:
由源码可以看出,只要是使用了view.setOnClickListener()方法设置监听器,就会自动触发view.performClick()。
需要注意的是,如果同时使用了view.setOnTouchListener()方法,则有可能存在拦截view.performClick()的响应事件,因为当view.OnTouchEvent()在event.getAction()
== MotionEvent.ACTION_DOWN时返回false,系统会认为view不需要处理Touch事件,则后续的Touch事件(move、up、click)就不会被传进来,所以也不会触发view.performClick(),而view.setOnTouchListener()相当于是重写了view.OnTouchEvent(),所以在写view的TouchListener处理时,需要留意view是否存在点击事件监听,如果有,则在适当的位置使用view.performClick()触发点击事件。
public boolean performClick() { sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED); if (mOnClickListener != null ) { playSoundEffect(SoundEffectConstants.CLICK); mOnClickListener.onClick( this ); return true ; } return false ; } |
需要注意的是,如果同时使用了view.setOnTouchListener()方法,则有可能存在拦截view.performClick()的响应事件,因为当view.OnTouchEvent()在event.getAction()
== MotionEvent.ACTION_DOWN时返回false,系统会认为view不需要处理Touch事件,则后续的Touch事件(move、up、click)就不会被传进来,所以也不会触发view.performClick(),而view.setOnTouchListener()相当于是重写了view.OnTouchEvent(),所以在写view的TouchListener处理时,需要留意view是否存在点击事件监听,如果有,则在适当的位置使用view.performClick()触发点击事件。
相关文章推荐
- android常见错误(实时更新)
- Android 动画——Layout Animations布局动画
- android给未签名的apk签名
- Android:Activity生命周期
- android Spinner控件详解
- Android:Activity & Intent
- Android中GridView使用
- 【Android】本地图片选择(打开媒体库,选择图片)
- Android中Context详解 ---- 你所不知道的Context
- listview增加footer时图片闪动问题
- [OK3354D--System]Android4.2系统安装
- 6 款好用的 PC+Android 同步 GTD 软件
- 6 款好用的 PC+Android 同步 GTD 软件
- 如何在Android开发中测试应用在真机上实验
- android图片的上传、下载和一些缩放操作
- 选Android培训机构,为什么选蜂窝Android培训?
- Android客户端和服务器端交互---数据库
- scrollTo与smoothScrollTo的区别
- android手机无root拷贝数据
- Android三种播放视频的方式(全屏模式的切换)