match_parent和fill_parent有什么区别?

1471

我对两个XML属性有点困惑:match_parentfill_parent。它们似乎是相同的,它们之间有什么区别吗?


请返回仅翻译的文本:https://developer.android.com/reference/android/view/ViewGroup.LayoutParams - Shomu
17个回答

4

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所取代。 希望这能帮到你。


3

对我来说,fill parentmatch parent的作用是相同的,只是:

fill parent: 在API 8之前使用

match parent 从API 8+开始使用 两者的功能 填充父视图,除了填充内边距


2

FILL_PARENT在API Level 8及以上版本中被更名为MATCH_PARENT,意味着视图希望尽可能大(减去padding)与其父视图相同- Google


2

FILL_PARENT在API级别8及以上已被弃用,并且在更高版本中更名为MATCH_PARENT

两者都是相同的FILL_PARENTMATCH_PARENTFILL_PARENT在低于API级别8的较低版本中使用,而MATCH_PATENT在高于8的API级别中使用。

FILL_PARENT(在API Level 8及更高版本中更名为MATCH_PARENT),这意味着视图希望与其父视图一样大(减去填充)

fill_parent:视图应与其父视图一样大(减去填充)。此常量从API级别8开始已被弃用,并由match_parent替换。

有关详细信息,请访问此页面


1

它们是相同的属性(在API Level 8及以上版本中)。请使用match_parent。

FILL_PARENT和MATCH_PARENT是相同的属性。FILL_PARENT已在API Level 8中被弃用。


1

FILL_PARENTMATCH_PARENT 都是相同的属性。在 API 等级 8 中,FILL_PARENT 已被弃用。


0

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. fill_parent:

这与match_parent相同,但fill_parent在API级别8中已被弃用。因此,如果您使用的是API级别8或更高版本,则必须避免使用fill_parent。

让我们按照与match_parent相同的步骤进行操作,只需在所有地方使用fill_parent即可。

您会发现,在fill_parent和match_parent之间的行为没有任何区别。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接