我有点困惑MeasureSpec.UNSPECIFIED和MeasureSpec.AT_MOST.我知道,当match_parent或恒定的尺寸值被设置为layout_width或layout_height,MeasureSpec.EXACTLY将测量视图时被应用.
然后,怎么样MeasureSpec.UNSPECIFIED和MeasureSpec.AT_MOST?
我的理解是,当layout_width或layout_height设置为wrap_content,MeasureSpec.UNSPECIFIED将被应用,因为wrap_content装置的图的高度或宽度可以是根据内容的任何尺寸.但很多文章都表示这wrap_content意味着MeasureSpec.AT_MOST.所以我很困惑.我不知道什么时候MeasureSpec.AT_MOST应该应用.
Dee*_*eeV 68
视图大小的基本定义如下:
MeasureSpec.EXACTLY - 视图应该是这么多像素,无论它实际上有多大.
MeasureSpec.AT_MOST - 如果视图尺寸较小,则视图可以是此尺寸或更小.
MeasureSpec.UNSPECIFIED - 视图可以是它需要的任何大小,以显示它需要显示的内容.
MeasureSpec.AT_MOST将应用于WRAP_CONTENT 父视图的大小绑定时已设置的视图.例如,您的父视图可能绑定到屏幕大小.它的孩子也会受到这种规模的束缚,但它可能不会那么大.因此,父视图将MeasureSpec设置为AT_MOST告诉孩子它可以是介于0和屏幕大小之间的任何位置.孩子必须进行调整以确保其符合所提供的范围.
在特殊情况下,界限无关紧要.例如,a ScrollView.在a的情况下,ScrollView子视图的高度是无关紧要的.因此,它将UNSPECIFIED为儿童提供视图,告诉孩子他们可以达到他们需要的高度.该ScrollView会办理他们的图纸和位置.
| 归档时间: |
|
| 查看次数: |
16089 次 |
| 最近记录: |