Android MeasuerSpce using

来源:互联网 发布:电脑windows无法启动 编辑:程序博客网 时间:2024/06/14 03:18

  含义:MeasuerSpce是parent传递给child的一组测量值(size)和模式(mode)的组合。

  使用场景:经常我们会在child的onMeasure(int widthMeasureSpec,int heightMeasureSpec)这个函数中来对spec进行处理,用于确定

child的长和宽。

  这里我们看到MeasureSpec有3中测量模式:

  MeasureSpec.AT_MOST :child最多达到parent的大小,这一类通常归于"wrap_content"。

  MeasureSpec.EXACTLY:child的大小是一个确定的值,这一类通常归于"match_parent"或者是一个确定的值。

  MeasureSpec.UNSPECIFED:这个几乎不用,未指定,child可以得到自己想要的任何大小。

  Measure的makeMeasureSpec,getMode,getSize我这里就不多说了,很简单就是一个位运算。

  说了半天,到底这个widthMeasureSpec和heightMeasureSpec怎么来的呢?这就需要看看源码。

  我们知道View的测量和绘制都是通过它的parent来触发的,所以直接进ViewGroup

我们回到viewGroup中。



这里我们看到addview会传递一个params,这个params怎么来的呢?


0 0