美文网首页
嘿,程序员——关于View点击事件传递

嘿,程序员——关于View点击事件传递

作者: sea5241 | 来源:发表于2017-07-26 16:07 被阅读0次

Activity——ViewGroup——View

1、默认情况
Activity:

@Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        Log.d("MainActivity","MainActivity dispatchTouchEvent");
        return super.dispatchTouchEvent(ev);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()){
            case MotionEvent.ACTION_DOWN:
                Log.d("MainActivity","MainActivity onTouchEvent down");
                break;
            case MotionEvent.ACTION_UP:
                Log.d("MainActivity","MainActivity onTouchEvent up");
                break;
            default:
                break;
        }
        return super.onTouchEvent(event);
    }

ViewGroup:

@Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        Log.d("MyViewGroup","MyViewGroup dispatchTouchEvent");
        return super.dispatchTouchEvent(ev);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        Log.d("MyViewGroup","MyViewGroup onInterceptTouchEvent");
        return super.onInterceptTouchEvent(ev);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()){
            case MotionEvent.ACTION_DOWN:
                Log.d("MyViewGroup","MyViewGroup onTouchEvent down");
                break;
            case MotionEvent.ACTION_UP:
                Log.d("MyViewGroup","MyViewGroup onTouchEvent up");
                break;
            default:
                break;
        }
        return super.onTouchEvent(event);
    }

View:

 @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        Log.d("MyView","MyView dispatchTouchEvent");
        return super.dispatchTouchEvent(ev);
    }


    @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()){
            case MotionEvent.ACTION_DOWN:
                Log.d("MyView","MyView onTouchEvent down");
                break;
            case MotionEvent.ACTION_UP:
                Log.d("MyView","MyView onTouchEvent up");
                break;
            default:
                break;
        }
        return super.onTouchEvent(event);
    }

事件传递:

捕获.PNG

2、Activity dispatchTouchEvent return true
事件传递:

捕获2.PNG

3、Activity dispatchTouchEvent return false
事件传递:

捕获2.PNG

4、ViewGroup dispatchTouchEvent return true
事件传递:

3.PNG

5、ViewGroup dispatchTouchEvent return false
事件传递:

4.PNG

6、ViewGroup onTouchEvent return true
事件传递:

5.PNG

7、ViewGroup onTouchEvent return false
事件传递:同1

8、ViewGroup onInterceptTouchEvent return true
事件传递:

6.PNG

9、ViewGroup onInterceptTouchEvent return false
事件传递:同1

10、View dispatchTouchEvent return true
事件传递:

7.PNG

11、View dispatchTouchEvent return false
事件传递:

8.PNG

12、View onTouchEvent return true
事件传递:

9.PNG

13、View onTouchEvent return false
事件传递:同1

相关文章

网友评论

      本文标题:嘿,程序员——关于View点击事件传递

      本文链接:https://www.haomeiwen.com/subject/sawlcxtx.html