-8

可能重复:
android
FILL_PARENT 和 MATCH_PARENT中的 match_parent 和 fill_parent 属性有什么区别

我已经浏览了android开发者网站,他们给出了以下区别:

注意:从 Android 2.2(API 级别 8)开始,“fill_parent”已重命名为“match_parent”以更好地反映行为。原因是如果您将视图设置为“fill_parent”,则在考虑同级视图后,它不会扩展以填充剩余空间,而是无论如何都会扩展以匹配父视图的大小——它将与任何同级视图重叠。

但是任何人都用example.so解释,这样事情就清楚了。

4

3 回答 3

12

它们是一样的(在 API Level 8+中)。使用 match_parent。

fill_parentMATCH_PARENT在 API 级别8及更高版本中重命名),这意味着视图希望与其父级一样大(减去填充)

fill_parent:视图应该与其父级一样大(减去填充)。从 API 级别 8 开始不推荐使用此常量,并替换为match_parent

对于 Android API 1.62.1 match_parent会抛出一个错误,所以在这些情况下使用 fill_parent。为了支持向后兼容,最好使用fill_parent

我记得 Roman Guy(Google 的 Android 开发人员)说过,他们更改名称是因为"fill_parent"让开发人员感到困惑。事实上,"fill_parent"它不会填充剩余空间(因为您使用 weight 属性),但它占用的空间与其布局父级一样多。这就是为什么新名字是"match_parent"

于 2012-06-28T03:24:57.840 回答
2

两者都是static final表示值的常量-1。它们在编译时被硬编码到字节码.apk中,因此没有区别,并且都与所有 Android SDK 版本完全兼容。

您会看到它们在文档中都代表相同的值:

public static final int FILL_PARENT

视图请求的高度或宽度的特殊值。FILL_PARENT 表示视图希望与其父级一样大,减去父级的填充(如果有)。从 API 级别 8 开始不推荐使用此值,并替换为 MATCH_PARENT。

常数值:-1 (0xffffffff)

public static final int MATCH_PARENT

视图请求的高度或宽度的特殊值。MATCH_PARENT 表示视图希望与其父级一样大,减去父级的填充(如果有)。在 API 级别 8 中引入。

常数值:-1 (0xffffffff)

于 2012-06-28T03:25:09.170 回答
2

澄清是这样的:

  • Fill parent 暗示(或可能暗示)多个并排视图将扩展以完全填充它们的容器。因此,人们可能会认为将“fill_parent”添加到父视图的两个视图都将调整为父视图大小的 50%。
  • 匹配父级更清晰,因为将视图设置为 fill_parent 实际上将大小设置为容器的大小。

正如其他用户所说(以及文档所述),这纯粹是一种更改,以使使用“fill_parent”的结果更加明显。

于 2012-06-28T03:28:36.363 回答