【发布时间】:2011-08-11 08:13:24
【问题描述】:
我对两个 XML 属性有点困惑:match_parent 和 fill_parent。似乎两者都是一样的。它们之间有什么区别吗?
【问题讨论】:
我对两个 XML 属性有点困惑:match_parent 和 fill_parent。似乎两者都是一样的。它们之间有什么区别吗?
【问题讨论】:
它们是相同的东西(在 API 级别 8+ 中)。使用match_parent。
FILL_PARENT(在 API 级别 8 及更高版本中重命名为 MATCH_PARENT),这意味着视图希望与其父级一样大(减去填充)
...
fill_parent: 视图应该和它的父级一样大(减去填充)。从 API 级别 8 开始不推荐使用此常量,并替换为match_parent。
http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html
【讨论】:
-1。我你感觉好多了,我也没有得到改善...... :-)
-1。您收到错误是因为旧平台不知道相同常量的新名称。
Google 更改了名称以避免混淆。
旧名称 fill parent 的问题在于它暗示它会影响父级的维度,而 match parent 更好地描述了结果行为 - 将维度与父级匹配。
这两个常量最终都解析为-1,因此在应用程序中产生了相同的行为。具有讽刺意味的是,为了澄清事情而进行的名称更改似乎增加了而不是消除了混乱。
【讨论】:
功能上没有区别,Google 只是从 API 级别 8 (Android 2.2) 将名称从 fill_parent 更改为 match_parent。出于兼容性原因,FILL_PARENT 仍然可用。
LayoutParams.FILL_PARENT 和 LayoutParams.MATCH_PARENT 的值都为 -1。不确定是什么诱使谷歌从 Fill Parent 更改为 Match Parent :)
由于大多数 phones are >= Android 2.2 .. 您应该使用 Match Parent 以实现未来兼容性...不确定他们何时会停止使用旧的 Fill Parent 常量!
【讨论】:
FILL_PARENT 在 API 级别 8 中已弃用,MATCH_PARENT使用更高级别的 API
【讨论】:
match_parent 用于代替 fill_parent 并将其设置为与父级一样远。只需使用 match_parent 并忘记 fill_parent。我完全放弃了 fill_parent,一切都像往常一样完美。
查看here 了解更多信息。
【讨论】:
两者具有相似的功能,唯一的区别是fill_parent在API级别8之前使用,而match_parent在API级别8或更高级别之后使用。
【讨论】:
当您在XML属性中将布局width和height设置为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>
野兔父母是红色的,孩子是绿色的。孩子占据所有区域。因为它是width 和height 是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 高度 = 300dp(父高度) - (20(paddingTop)+10(paddingBottom)) = (300 - 30) 分 = 270 dp
fill_parent 是 match_parent 的旧名称
对于 API 级别 8 及更高级别,fill_parent 重命名为 match_parent,fill_parent 现在已弃用。
所以fill_parent 和match_parent 是相同的。
视图应该与其父视图一样大(减去填充)。从 API 级别 8 开始不推荐使用此常量,并替换为 {@code match_parent}。
【讨论】:
只是为了给它起一个更接近实际操作的名称。 "fill_parent" 不会像名称所暗示的那样填充剩余空间(为此,您使用 weight 属性)。相反,它占用与其布局父级一样多的空间。这就是为什么新名称是"match_parent"
【讨论】:
fill_parent:视图应该和它的父级一样大。
现在该内容 fill_parent 已被弃用并被 match_parent 取代。
【讨论】:
【讨论】:
match_parent(您已涵盖)和fill_parent(您未提及)之间的区别。相反,您将其与 wrap_content 进行了比较,而问题并未提及。
match_parent 和fill_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 和 match parent 只执行相同的功能:
填写父项: 在 API 8 之前使用
匹配父级 这是从 API 8+ 使用的 两者的功能 在填充之外填充父视图
【讨论】:
FILL_PARENT 在 API 级别 8 及更高级别中重命名为 MATCH_PARENT,这意味着视图希望与其父级一样大(减去填充)-Google
【讨论】:
FILL_PARENT 已从 API 级别 8 及更高版本中弃用,对于更高版本,它被重命名为 MATCH_PARENT
两者相同 FILL_PARENT 和 MATCH_PARENT,FILL_PARENT 用于低于 API 级别 8 的较低版本,而 MATCH_PATENT 用于高于 API 级别 8 的较高版本。
FILL_PARENT(在 API 级别 8 及更高版本中重命名为 MATCH_PARENT),这意味着视图希望与其父级一样大(减去填充)
fill_parent: 视图应该和它的父级一样大(减去填充)。从 API 级别 8 开始不推荐使用此常量,并替换为 match_parent。
更多详情请访问this页面
【讨论】:
FILL_PARENT 和 MATCH_PARENT 是相同的属性。 FILL_PARENT 在 API 级别 8 中已弃用。
【讨论】:
它们是相同的东西(在 API 级别 8+ 中)。使用 match_parent。
FILL_PARENT 和 MATCH_PARENT 是相同的属性。 FILL_PARENT 在 API 级别 8 中已被弃用。
【讨论】:
1. match_parent
当你将布局宽度和高度设置为match_parent时,它将占据父视图拥有的整个区域,即它与父视图一样大。
注意:如果父级应用了填充,则该空间将不包括在内。
当我们默认创建一个 layout.xml 时,我们将 RelativeLayout 作为默认父视图,其中 android:layout_width="match_parent" 和 android:layout_height="match_parent" 即它占据了移动屏幕的完整宽度和高度。
还要注意,填充应用于所有边,
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
现在让我们添加一个子视图 LinearLayout 并设置它的 layout_width="match_parent" 和 layout_height="match_parent",图形视图将显示如下内容,
match_parent_example
代码
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.code2care.android.togglebuttonexample.MainActivity" >
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="11dp"
android:background="#FFFFEE"
android:orientation="vertical" >
2。填充父:
这和 match_parent 一样,fill_parent 在 API 级别 8 中被贬值了。所以如果你使用 API 级别 8 或更高级别,你必须避免使用 fill_parent
让我们遵循与 match_parent 相同的步骤,只是在所有地方都使用 fill_parent。
您会看到 fill_parent 和 match parent 的行为没有区别。
【讨论】: