第三章笔记-View的事件体系

第三章笔记-View的事件体系_第1张图片

第三章笔记-View的事件体系_第2张图片

第三章笔记-View的事件体系_第3张图片

第三章笔记-View的事件体系_第4张图片


第三章笔记-View的事件体系_第5张图片

View动画的三种方式:

第三章笔记-View的事件体系_第6张图片

1. 使用scrollTo/scrollBy

该方式,只能移动控件的内容,不能移动控件,意味着,超出控件内容跟将显示不出来。示意图入下:


第三章笔记-View的事件体系_第7张图片

2. 使用动画

  1. XML动画


    第三章笔记-View的事件体系_第8张图片
  2. 属性动画


3. 改变布局

弹性动画

1.使用Scroller

第三章笔记-View的事件体系_第9张图片

2.使用动画

第三章笔记-View的事件体系_第10张图片

3.使用延时策略

private static final int MESSAGE_SCROLL_TO = 1;
private static final int FRAME_COUNT = 30;
private static final int DELAYED_TIME = 33;
private int mCount = 0;
@SuppressLint("HandlerLeak")
private Handler mHandler = new Handler() {
    public void handleMessage(Message msg) {
        switch (msg.what) {
        case MESSAGE_SCROLL_TO: {
            mCount++;
            if (mCount <= FRAME_COUNT) {
                float fraction = mCount / (float) FRAME_COUNT;
                int scrollX = (int) (fraction * 100);
                mButton1.scrollTo(scrollX, 0);
                mHandler.sendEmptyMessageDelayed(MESSAGE_SCROLL_TO, DELAYED_TIME);
            }
            break;
        }

        default:
            break;
        }
    };
};

事件的分发机制

事件分发机制共有三个方法控制





第三章笔记-View的事件体系_第11张图片


以下伪代码可表示事件分发机制:

第三章笔记-View的事件体系_第12张图片

第三章笔记-View的事件体系_第13张图片

第三章笔记-View的事件体系_第14张图片

滑动冲突处理

第三章笔记-View的事件体系_第15张图片

处理方案有两种,内部拦截、外部拦截。



你可能感兴趣的:(第三章笔记-View的事件体系)