您的位置:首页 > 移动开发 > Android开发

Android:View中的performClick()触发条件

2015-09-21 08:09 459 查看
先看看performClick()源码:

public
 
boolean
 
performClick() {

        
sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED);

 
        
if
 
(mOnClickListener != 
null
) {

            
playSoundEffect(SoundEffectConstants.CLICK);

            
mOnClickListener.onClick(
this
);

            
return
 
true
;

        
}

 
        
return
 
false
;

    
}

由源码可以看出,只要是使用了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()触发点击事件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: