什么是Android视图的测量状态?

时间:2013-12-27 02:04:49

标签: android view

我很难找到Android视图“测量状态”概念的示例用法或解释。

要清楚,这与测量的宽度和测量的高度不同。请参阅in Android docs

1 个答案:

答案 0 :(得分:4)

一般的想法是视图具有所需的宽度和高度,这受到两个因素的约束。

第一个约束是视图附加到的父视图。这将描述视图的最大宽度和大小。如果View要求比父视图更宽或更高,那么它的测量高度和测量宽度将被约束,使得值不大于父视图。一旦包含父视图的宽度和高度约束,这些值(可以是MATCH_PARENT,WRAP_CONTENT或dp值)将转换为测量的宽度和高度。这保证了没有孩子比父母大。

第二个约束来自View的兄弟,或者换句话说,来自附加到同一布局的其他视图。 ViewGroup(布局)将解析视图的宽度和高度,以便正确显示。这些已解析的宽度和高度是从getWidth()和getHeight()获得的值。

Android开发门户网站上有很多很好的文档。特别要查看View类的Layout部分:http://developer.android.com/reference/android/view/View.html#Layout

编辑:很抱歉误解了您的问题。我已经看了一个视图的测量状态的概念,我只能找到一个记录的状态:MEASURED_STATE_TOO_SMALL。这使我相信它的使用可能非常有限,它的存在主要是为了未来的功能或由自定义的Views / ViewGroups使用。

MEASURED_STATE_TOO_SMALL的文档说明如下:

  

getMeasuredWidthAndState()和getMeasuredWidthAndState()的位   表示测量的尺寸小于视图的空间   喜欢。

这让我相信,只要给View一个固定的dp / px值大于父的宽度和高度,就会设置该位,因此View的测量宽度和高度将按比例缩小。

如果您设法查找有关其使用位置的更多状态或其他信息,请更新问题。一切顺利!