match_parent和fill_parent有什么区别?

我有点困惑两个XML属性: match_parentfill_parent 。 看来,两者都是一样的。 他们之间有什么区别?

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

FILL_PARENT(在API级别8和更高版本中重命名为MATCH_PARENT),这意味着该视图要与其父级(减填充)一样大,

fill_parent :这个视图应该和它的父类一样大(减去填充)。 该常数从API Level 8开始被弃用,并由match_parent取代。

http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html

谷歌改变了名字,以避免混淆。

旧名称fill parent是,它意味着影响父项的维度,而match parent更好地描述了结果行为 – 将维度与父项匹配。

这两个常量最终解析为-1 ,并在应用程序中导致相同的行为。 具有讽刺意味的是,这个名称变更澄清了事情似乎增加了混淆,而不是消除它。

在功能上没有什么区别,Google只是从fill_parent改成了match_parent,从API级别8(Android 2.2)开始。 由于兼容性原因,FILL_PARENT仍然可用。

LayoutParams.FILL_PARENTLayoutParams.MATCH_PARENT值均为-1。 不知道什么诱惑谷歌改变从填写家长匹配父:)

由于大多数phones are >= Android 2.2 ..你应该使用匹配父未来的兼容性…不知道什么时候他们将停止旧的填充父常量!

为了兼容性,最好坚持fill_parent,即支持API 8以下的设备。 但是,如果您的应用程序的目标是API 8以上,则应该使用match_parent。

fill_parent (在API级别8和更高版本中重命名为MATCH_PARENT ),这意味着该视图的大小与其父级(减去填充)

fill_parent :这个视图应该和它的父类一样大(减去填充)。 该常数从API Level 8开始被弃用,并由match_parent取代

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

  • 两者都是表示值-1的静态最终常数
  • FILL_PARENT在API级别8中已被弃用

所以MATCH_PARENT和FILL_PARENT是一样的吗?

是的, MATCH_PARENTFILL_PARENT只是用于指定一个视图的父视图布局模式的同一个整数值的常量名(如果你好奇的话-1)。

那么为什么添加了MATCH_PARENT?

我记得罗马人(Android开发人员)说,他们已经改变了名字,因为“ fill_parent ”令开发人员感到困惑。 就事实而言,“ fill_parent ”不会填充剩余的空间(为了使用weight属性),但是它占用了与其父布局相同的空间。 这就是为什么新名称是“ match_parent

MATCH_PARENTFILL_PARENT是一样的吗?

是的, MATCH_PARENTFILL_PARENT只是用于指定一个视图的父视图布局模式的同一个整数值的常量名(如果你好奇的话-1)。

那么为什么添加了MATCH_PARENT

Android团队发现开发人员误解FILL_PARENT意味着一个View会填充剩下的剩余空间。 事实上,通过指定FILL_PARENTView请求的大小与父View一样大。 因此,(如罗曼·盖伊本人在本视频中10:56左右所解释的那样)将这个常量改名为MATCH_PARENT以阐明其用法。

好的,我得到FILL_PARENT/MATCH_PARENT工作原理。 如果我使用其中一个,那有什么关系?

FILL_PARENT已被弃用。 被弃用不会使它成为魔鬼,但最终它会消失。 您的应用程序使用MATCH_PARENT 。 为什么当前选项的行为完全相同时使用不推荐使用的选项?

此外, FILL_PARENT实际上是误导性的。 我亲眼看到人们感到困惑,因为它不像他们认为的那样工作。 实际上,我已经看到了一个使用FILL_PARENTMATCH_PARENT标签,因为开发者认为(可以理解)他们是两种不同的布局模式。

你可以FILL_PARENT吗?

以下是一个MATCH_PARENT/FILL_PARENT混淆如何导致人们反复将头MATCH_PARENT/FILL_PARENT在办公桌上的简单示例。 首先,获取一个包含几个View实例的非常简单的布局。

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <View android:layout_width="match_parent" android:layout_height="100dp" android:background="#FFFF00" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:background="@android:color/black" android:text="@string/hello_world" android:padding="50dp" /> <View android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FF0000" /> </LinearLayout> 

FILL_PARENT在API级别8中被弃用, MATCH_PARENT使用高级别API

match_parent被用来代替fill_parent,并且把它设置成和parent一样远。 只要使用match_parent,并忘记fill_parent 。 我完全抛弃了fill_parent ,一切都像往常一样完美。

在这里检查更多。

只是给它一个更接近它的实际行动的名称"fill_parent"不会填充剩余的空间,因为名称意味着(为此使用weight属性)。 相反,它占用了与其布局父母一样多的空间。 这就是为什么新名称是"match_parent"

当您在XML属性中将布局widthheight设置为match_parent时,它将占据父视图所具有的完整区域,即它将与父视图一样大。

 <LinearLayout android:layout_width="300dp" android:layout_height="300dp" android:background="#f9b0b0"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:background="#b0f9dc"/> </LinearLayout> 

野兔是红色的,孩子是绿色的。 小孩占据了整个地区。 因为它的widthheight都是match_parent

在这里输入图像描述

注意:如果父项被应用填充,那么该空间将不被包含。

 <LinearLayout android:layout_width="300dp" android:layout_height="300dp" android:background="#f9b0b0" android:paddingTop="20dp" android:paddingBottom="10dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:background="#b0f9dc"/> </LinearLayout> 

在这里输入图像描述

所以TextView hight = 300dp(父hight) – (20(paddingTop)+10(paddingBottom))=(300 – 30)dp = 270 dp

fill_parent与match_parent

fill_parentmatch_parent以前的名字

对于API级别8及更高级别的fill_parent重命名为match_parentfill_parent现在已弃用。

所以fill_parentmatch_parent是一样的。

API文档fill_parent

该视图应该与其父(减去填充)一样大。 这个常量从API Level 8开始被弃用,并被替换为{match_parent}。

两者都具有相似的功能,唯一不同的是fill_parent用于API级别8,match_parent用于API级别8或更高级别之后。

fill_parent(在API级别8和更高版本中重命名为MATCH_PARENT),这意味着该视图的大小与其父级(减去填充)

fill_parent:这个视图应该和它的父类一样大(减去填充)。 该常数从API Level 8开始被弃用,并由match_parent取代

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

两者都是表示值-1的静态最终常数

FILL_PARENT在API级别8中已被弃用

所以MATCH_PARENT和FILL_PARENT是相同的?

是的,MATCH_PARENT和FILL_PARENT只是用于指定一个视图的父视图布局模式的同一个整数值的常量名(如果你好奇的话-1)。

那么为什么MATCH_PARENT增加了?

正如Roman Guy(Android开发人员)说的,他们已经改变了名字,因为“fill_parent”让开发人员感到困惑。 就事实而言,“fill_parent”不会填充剩余的空间(为了使用weight属性),但是它需要

match_parentfill_parent是相同的属性,用于以全屏水平或垂直方式定义视图的宽度或高度。

这些属性被用在android xml文件中。

  android:layout_width="match_parent" android:layout_height="fill_parent" 

要么

  android:layout_width="fill_parent" android:layout_height="match_parent" 

以前的版本中使用了fill_parent ,但现在它已被弃用,并由match_parent取代。 我希望它会帮助你。

fill_parent:视图应该和父视图一样大。

现在这个内容fill_parent被弃用,并被match_parent取代。

给我填充父母匹配父母执行相同的功能只有:

填充父项 :在API 8之前使用

匹配父项这是从API 8+ 函数使用填充父视图旁边填充

match_parent,这意味着该视图要像其父(减填充)一样大。

wrap_content,这意味着视图要足够大以包含其内容(加上填充)

为了更好的说明,我创建了一个示例布局来展示这个概念。 为了看到它的效果,我添加了每个textView内容的边框。

在“匹配父级”textView内容中,我们可以看到它的布局宽度分布在它的父级整体长度之外。

但是我们可以在“Wrap Content”中看到textView的内容,它的内容(Wrap Content)长度就是布局宽度。

Android布局

FILL_PARENT在API级别8和更高级别中被重命名为MATCH_PARENT,这意味着该视图要像父级(减去填充)一样大 – Google