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






View动画的三种方式:

1. 使用scrollTo/scrollBy

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


2. 使用动画

  1. XML动画


  2. 属性动画


3. 改变布局

弹性动画

1.使用Scroller

2.使用动画

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;
        }
    };
};

事件的分发机制

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







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



滑动冲突处理


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



©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容