Android 中 match_parent 和 fill_parent 的区别是什么?


简介

Android 应用程序包含不同类型的视图,例如图像视图、文本视图、按钮等等。对于这些不同类型的视图,我们必须指定要在屏幕上显示的视图的大小。我们可以为该视图提供自定义大小以获取特定的高度和宽度。但是,如果我们想为这些视图提供大小,以便它们可以轻松处理不同屏幕尺寸的变化。我们可以为这些视图提供宽度和高度,例如 match_parent 或 fill_parent。添加 match_parent 和 fill_parent 将帮助您为不同的屏幕尺寸对齐特定的视图。在本文中,我们将了解 Android 中 match_parent 和 fill_parent 之间的区别。

match_parent 的含义是什么?

Match_parent 是一个属性,用于定义视图的宽度或高度等于其父视图的宽度或高度。这意味着该视图将占用与其父视图相同的空间。这通常用于创建包含多个视图的布局,因为它可以确保视图大小相等。例如,如果我们将任何文本视图的宽度指定为 match_parent,则该视图将扩展到整个屏幕宽度,并且它也将针对不同的屏幕尺寸进行对齐,类似地,如果我们将高度指定为 match_parent,它将占用屏幕从上到下的完整高度。

此属性在 size 参数中给出。以下是通过将宽度和高度指定为 match_parent 来创建文本视图的简单示例。

<!-- creating a text view for displaying a text message with match_parent-->
<TextView
   android:id="@+id/idTVMessage"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:gravity="center"
   android:text="Hello World!"
   android:textAlignment="center"
   android:textSize="20sp"
   android:textStyle="bold" />

解释 - 在上面的代码中,我们将文本视图的宽度和高度指定为 match_parent,这将使该文本视图占用屏幕的完整区域,并且文本将对齐到屏幕的中心,因为我们将文本对齐方式设置为居中。

fill_parent 的含义是什么?

Fill_parent 类似于 match_parent,但它用于旧版本的 Android。效果相同,但语法略有不同。此属性在 API 级别 8(Android 2.2)中已弃用,并替换为 match_parent。例如,如果我们将任何文本视图的宽度指定为 fill_parent,则该视图将扩展到整个屏幕宽度,并且它也将针对不同的屏幕尺寸进行对齐,类似地,如果我们将高度指定为 fill_parent,它将占用屏幕从上到下的完整高度。

此属性在 size 参数中给出。以下是通过将宽度和高度指定为 fill_parent 来创建文本视图的简单示例。

<!-- creating a text view for displaying a text message with fill_parent-->
<TextView
   android:id="@+id/idTVMessage"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:gravity="center"
   android:text="Hello World!"
   android:textAlignment="center"
   android:textSize="20sp"
   android:textStyle="bold" />

解释 - 在上面的代码中,我们将文本视图的宽度和高度指定为 fill_parent,这将使该文本视图占用屏幕的完整区域,并且文本将对齐到屏幕的中心,因为我们将文本对齐方式设置为居中。

match_parent 和 fill_parent 之间有什么区别?

match_parent 和 fill_parent 之间存在一些关键区别。首先,match_parent 是首选,因为它更新且使用与其他属性相同的语法。其次,fill_parent 稍微更严格,因为它只允许视图占用与其父视图相同空间。Match_parent 稍微灵活一些,因为它允许视图占用比其父视图更大的空间。

在使用哪个属性方面,match_parent 是首选,因为它是最新的版本。但是,如果您需要支持旧版本的 Android,则可能需要使用 fill_parent。

还需要注意的是,match_parent 和 fill_parent 不应互换使用。如果您在旧版本的 Android 中使用 match_parent,则不会达到预期效果。同样,如果您在新版本的 Android 中使用 fill_parent,则也不会达到预期效果。

总之,match_parent 和 fill_parent 是 Android 中用于定义视图大小的两个属性。它们具有相同的效果,但 match_parent 是首选,因为它更新且使用与其他属性相同的语法。还需要注意的是,它们不应互换使用,因为不会达到预期效果。

match_parent

fill_parent

从 API 级别 8 开始使用。

从 API 级别 8 开始使用。

等效于 LayoutParams.MATCH_PARENT。

等效于 LayoutParams.FILL_PARENT。

布局中宽度和高度的值将分别设置为其父视图宽度或高度的完整尺寸。

布局中宽度和高度的值将设置为尽可能填充父视图容器中的剩余空间,无论这对内部元素的大小和位置意味着什么。

结论

在本文中,我们了解了 Android 中 match_parent 和 fill_parent 的含义以及如何在应用程序中使用它们。此外,我们还了解了 match_parent 和 fill_parent 之间的区别。

更新于: 2023年3月30日

2K+ 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告