gpt4 book ai didi

android - MeasureSpec.UNSPECIFIED 和 MeasureSpec.AT_MOST 何时应用?

转载 作者:IT老高 更新时间:2023-10-28 21:43:03 25 4
gpt4 key购买 nike

我对 MeasureSpec.UNSPECIFIEDMeasureSpec.AT_MOST 有点困惑。我知道当 match_parent 或常量尺寸值设置为 layout_widthlayout_height 时,MeasureSpec.EXACTLY 将在测量 View 时应用。

那么,MeasureSpec.UNSPECIFIEDMeasureSpec.AT_MOST呢?

我的理解是,当 layout_widthlayout_height 设置为 wrap_content 时,MeasureSpec.UNSPECIFIED 将是应用,因为 wrap_content 意味着 View 的高度或宽度可以是任何大小,具体取决于内容。但是很多文章说wrap_content的意思是MeasureSpec.AT_MOST。所以我很困惑。我不知道什么时候应该应用 MeasureSpec.AT_MOST

最佳答案

View 大小的基本定义如下:

MeasureSpec.EXACTLY - 一个 View 应该正好有这么多像素,不管它实际上想要多大。

MeasureSpec.AT_MOST - 一个 View 可以是这个大小或更小,如果它测量得更小的话。

MeasureSpec.UNSPECIFIED - View 可以是它需要的任何大小,以便显示它需要显示的内容。

MeasureSpec.AT_MOST 将应用于已设置为 WRAP_CONTENT 如果父 View 在大小上绑定(bind)。例如,您的父 View 可能绑定(bind)到屏幕大小。它的 child 也会被绑定(bind)到这个大小,但它可能不会那么大。因此,父 View 会将 MeasureSpec 设置为 AT_MOST,这会告诉 subview 它可以在 0 和屏幕大小之间的任何位置。 child 必须进行调整以确保它符合所提供的范围。

在特殊情况下,边界无关紧要。例如,一个 ScrollView。在 ScrollView 的情况下,子 View 的高度无关紧要。因此,它会向 subview 提供一个 UNSPECIFIED,告诉 subview 他们可以达到所需的高度。 ScrollView 将为它们处理绘图和放置。

关于android - MeasureSpec.UNSPECIFIED 和 MeasureSpec.AT_MOST 何时应用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16022841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com