ViewGroup的一些基础知识

来源:互联网 发布:淘宝注册账号流程 编辑:程序博客网 时间:2024/06/17 20:39

推荐及参考博文

http://blog.csdn.net/anydrew/article/details/50985763

生命周期 在XML种定义时

声明周期关联关键方法
    // 布局加载完成后调用    @Override    protected void onFinishInflate() {        super.onFinishInflate();        KLog.e("onFinishInflate");    }    // 当尺寸发生改变    @Override    protected void onSizeChanged(int w, int h, int oldw, int oldh) {        super.onSizeChanged(w, h, oldw, oldh);        KLog.e("onSizeChanged");    }    // 当测量时调用    @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        super.onMeasure(widthMeasureSpec, heightMeasureSpec);        KLog.e("onMeasure");    }    // 排版布局时调用    @Override    protected void onLayout(boolean changed, int l, int t, int r, int b) {        KLog.e("onLayout");    }
声明周期输出日志
com.funtsui.customview E/T: [ (EventViewGroup.java:33)#onFinishInflate ] onFinishInflatecom.funtsui.customview E/T: [ (EventViewGroup.java:47)#onMeasure ] onMeasurecom.funtsui.customview E/T: [ (EventViewGroup.java:47)#onMeasure ] onMeasurecom.funtsui.customview E/T: [ (EventViewGroup.java:40)#onSizeChanged ] onSizeChangedcom.funtsui.customview E/T: [ (EventViewGroup.java:53)#onLayout ] onLayout

事件的关键方法

 @Override public boolean dispatchTouchEvent(MotionEvent ev) {     return super.dispatchTouchEvent(ev); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) {     return super.onInterceptTouchEvent(ev); } @Override public boolean onTouchEvent(MotionEvent event) {     return super.onTouchEvent(event); } /**  * 是否告诉父控件  我自己的事件自己处理  * @param disallowIntercept  true是  */ @Override public void requestDisallowInterceptTouchEvent(boolean disallowIntercept) {     super.requestDisallowInterceptTouchEvent(disallowIntercept); }
原创粉丝点击