ViewGroup measure layout
来源:互联网 发布:sql where if条件 编辑:程序博客网 时间:2024/05/02 17:20
转载地址:http://blog.csdn.net/starfeng11/article/details/7028066
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的大小。
具体详见Android官方文档 dev guide->User Interface->How Android Draws Views
二 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()不会接受此手势。
- ViewGroup measure layout
- ViewGroup measure layout
- ViewGroup measure layout
- measure layout
- Android中View和ViewGroup的measure和layout过程分析
- layout和measure
- measure layout draw
- ViewGroup measure 源码笔记(1)
- viewgroup重写哦你measure方法
- ViewGroup 子类 LinearLayout 的measure 流程
- View和ViewGroup 的measure过程
- Android View ViewGroup 的measure过程
- android ViewGroup layout过程详解
- ViewGroup的onLayout、layout方法
- 自定义ViewGroup-自动换行Layout
- 自定义ViewGroup-自动换行Layout
- View与ViewGroup layout 过程
- measure,layout,draw的相关方法
- 对Linux安装过程的理解
- 做梦想起来的C#简单实现贪吃蛇程序(LinQ + Entity)
- 37、进程管理器--界面设计
- 获取本机IP方法
- 余数问题
- ViewGroup measure layout
- 以最小分组按比例混排的文章列表
- Android ViewGroup中事件触发和传递机制
- input子系统——linux驱动学习笔记(一)
- CEF3 笔记一
- html文件的中文乱码问题与在浏览器中的显示
- c# wince/mobile 下支持触屏点击的 textbox 点击事件
- input子系统——linux驱动学习笔记(二)
- oracle 基础知识总结