zoukankan      html  css  js  c++  java
  • Android:View中的performClick()触发条件

    http://blog.sina.com.cn/s/blog_70ae1d7b0102v7uk.html

    先看看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()触发点击事件。
  • 相关阅读:
    gdb调试工具
    一步步理解Linux之中断和异常
    英语感受 5月份英语思维
    2013年6月4日星期二
    2013年5月29日星期三
    2013年6月3日星期一
    第22周六晚上
    2013年5月26日星期日
    2013年5月28日20:16:21
    2013年6月2日星期日
  • 原文地址:https://www.cnblogs.com/feng9exe/p/5939943.html
Copyright © 2011-2022 走看看