被弃用的词是fill_parent和match_parent唯一的区别

我发现fill_parentmatch_parent都是一样的

  • fill_parent意味着视图要和父视图一样大,减去父视图的填充(如果有的话)。
  • match_parent意味着视图要和父视图一样大,减去父视图的填充(如果有的话)。

我发现的唯一区别是fill_parent从API Level 8开始被弃用,并被match_parent取代

不过,我没有注意到这两者之间的区别。 如果两者都是一样的话,为什么fill_parent不推荐使用。 任何人都可以解释这两者之间的任何差异,除了一个被弃用,另一个不是?

我已经通过http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html

正如你所说,他们是完全一样的。 正如罗曼·盖伊(Romain Guy)所说,他们已经改变了名字,因为"fill_parent"让开发者感到困惑。 就事实而言, "fill_parent"不会填充剩余的空间(为了使用weight属性),但是它占用了与其父布局相同的空间。 这就是为什么新名称是"match_parent"

根据罗曼盖伊在这个video中,这些话标记相同的行为。 但是很多开发人员误解了fill_parent的含义,因此他们提出了一个别名。

我已经在Android上开发了足够长的时间,也意识到除了当你想运行在一个较老的API上时,似乎没有什么区别。 我会使用fill_parent因为我使用最less的API 7来制作所有的应用程序。另外,在附注中,因为Android是向前兼容的,所以这是要走的路。

除了现有的答案。 这是来自LayoutParams类的源代码的一部分,FILL_PARENT和MATCH_PARENT常量映射到相同的值。 所以我们有完全相同的function。

  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; ...