设为首页 加入收藏

TOP

Android中的View与ViewGroup绘制过程,手势监听顺序与使用
2014-11-24 12:46:50 来源: 作者: 【 】 浏览:0
Tags:Android View ViewGroup 绘制 过程 手势 监听 顺序 使用

一 View ,ViewGroup的绘制过程


ViewGroup绘制包括两个步骤:1.measure 2.layout


在两个步骤中分别调用回调函数:1.onMeasure() 2.onLayout()


1.onMeasure() 在这个函数中,ViewGroup会接受childView的请求的大小,然后通过childView的measure(newWidthMeasureSpec, heightMeasureSpec)函数存储到childView中,以便childView的getMeasuredWidth() andgetMeasuredHeight() 的值可以被后续工作得到。


2.onLayout() 在这个函数中,ViewGroup会拿到childView的getMeasuredWidth() andgetMeasuredHeight(),用来布局所有的childView。


3.View.MeasureSpec与 LayoutParams 这两个类,是ViewGroup与childView协商大小用的。其中,View.MeasureSpec是ViewGroup用来部署childView用的, LayoutParams是childView告诉ViewGroup 我需要多大的地方。


4.在View 的onMeasure的最后要调用setMeasuredDimension()这个方法存储View的大小,这个方法决定了当前View的大小。


二 View,ViewGroup的手势监听顺序与使用


View的手势监听相关回调函数:onTouchEvent()


ViewGroup的手势监听相关回调函数:onTouchEvent(),onInterceptTouchEvent()


1.这两个回调函数都会返回一个boolean变量,表示是否消费了此手势。如果消费了,返回true,如果未消费,返回false。


2.当用户触摸一下屏幕,产生手势MotionEvent,


ViewGroup的onInterceptTouchEvent()会接受此MotionEvent。


如果此回调函数返回true,则表示此ViewGroup消费了此手势,不想再让他的childView去处理,childView的onTouchEvent()便不会再接受此手势,同时此ViewGroup的onTouchEvent()会接受此手势。


如果此回调函数返回false,则表示此ViewGroup未消费了此手势,想让他的childView去处理,childView的onTouchEvent()接受此手势,同时此ViewGroup的onTouchEvent()不会接受此手势。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android开发教程:蓝牙测试 下一篇Android布局属性全面剖析

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·常用meta整理 | 菜鸟 (2025-12-25 01:21:52)
·SQL HAVING 子句:深 (2025-12-25 01:21:47)
·SQL CREATE INDEX 语 (2025-12-25 01:21:45)
·Shell 传递参数 (2025-12-25 00:50:45)
·Linux echo 命令 - (2025-12-25 00:50:43)