首页 > 移动平台 > 详细

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

时间:2015-04-15 21:07:55      阅读:451      评论:0      收藏:0      [点我收藏+]

先看看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()触发点击事件。
 

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

原文:http://www.cnblogs.com/sishuiliuyun/p/4429599.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!