android中的fill_parent和match_parent之间的区别

时间:2012-06-28 03:22:27

标签: android

  

可能重复:
  what is the difference between match_parent and fill_parent property in android
  FILL_PARENT and MATCH_PARENT

我已经浏览了android开发者网站,他们给出了以下不同之处:

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

但是有人用例子解释。所以事情可能会清楚。

3 个答案:

答案 0 :(得分:10)

它们是相同的(在API级别 8 + )。使用match_parent。

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

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

替换

对于Android API 1.6 2.1 match_parent会引发错误,因此请在这些情况下使用fill_parent。为了支持向后兼容性,最好使用fill_parent

我记得Roman Guy(Google的Android开发人员)说,他们更改了名称,因为"fill_parent"让开发人员感到困惑。事实上,"fill_parent"没有填充剩余的空间(因为你使用了weight属性),但它占用了与布局父级相同的空间。这就是新名称为"match_parent"

的原因

答案 1 :(得分:2)

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

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

  

<强> .apk

     

视图请求的高度或宽度的特殊值。 FILL_PARENT   意味着视图想要与其父级一样大,减去   父母的填充,如果有的话。从API开始,不推荐使用此值   等级8,由MATCH_PARENT替换。

     

常数值:-1(0xffffffff)

     

<强> public static final int FILL_PARENT

     

要求的高度或宽度的特殊值   一个看法。 MATCH_PARENT意味着视图要像它一样大   parent,减去父级的填充,如果有的话。在API Level 8中引入。

     

常数值:-1(0xffffffff)

答案 2 :(得分:2)

澄清是:

  • 填充父级意味着(或可能暗示)多个并排视图将扩展为完全填充其容器。因此,人们可能认为两个视图使用&#34; fill_parent&#34;添加到父视图将调整为父级大小的50%。
  • 匹配父级更清晰,因为将视图设置为fill_parent实际上会将大小设置为容器的大小。

正如其他用户所说(以及文档所述),这纯粹是一种改变,使得使用&#34; fill_parent&#34;的结果变得更加明显。将是。