我发现fill_parent
和match_parent
都意味着同样的事情
我发现的唯一区别是从API级别8开始不推荐使用fill_parent
,而是由match_parent
替换
但是,我没有注意到这两者之间有任何区别。如果两者相同,那么为什么fill_parent
被弃用。任何人都可以解释这两者之间的任何差异,除了一个被弃用而另一个不被批准的事实?
我已经完成了http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html
答案 0 :(得分:88)
正如你所说,他们完全一样。正如Romain Guy所说,他们更改了名称,因为"fill_parent"
让开发人员感到困惑。事实上,"fill_parent"
没有填充剩余的空间(因为你使用了weight属性),但它占用了与布局父级相同的空间。这就是新名称为"match_parent"
的原因。
答案 1 :(得分:9)
据this视频中的Romain Guy说,这些词语标记的行为相同。但许多开发人员误解了fill_parent的含义,因此他们提出了一个别名。
答案 2 :(得分:7)
我在Android中开发的时间足够长,也意识到除了你想在旧的API上运行之外似乎没什么区别。我会使用fill_parent
,因为我使用最少的API 7创建了所有应用程序。另外,在旁注中,由于Android是向前兼容的,因此这是可行的方法。
答案 3 :(得分:3)
除现有答案外。以下是LayoutParams
类的源代码的一部分,FILL_PARENT和MATCH_PARENT常量都映射到相同的值。所以我们有完全相同的功能。
public static class LayoutParams {
/**
* Special value for the height or width requested by a View.
* FILL_PARENT means that the view wants to be as big as its parent,
* minus the parent's padding, if any. This value is deprecated
* starting in API Level 8 and replaced by {@link #MATCH_PARENT}.
*/
@SuppressWarnings({"UnusedDeclaration"})
@Deprecated
public static final int FILL_PARENT = -1;
/**
* Special value for the height or width requested by a View.
* MATCH_PARENT means that the view wants to be as big as its parent,
* minus the parent's padding, if any. Introduced in API Level 8.
*/
public static final int MATCH_PARENT = -1;
...