Android中fill_parent、match_parent和wrap_content

Android中fill_parent、match_parent和wrap_content

Android中控件和布局的尺寸一般使用fill_parent、match_parent和wrap_content进行设置。在Android2.2以后,fill_parent改名为match_parent。即可以视为fill_parent=match_parent。接下来,我来具体说说match_parent和wrap_content的用法和区别。

1、match_parent:看字面意思为填充父空间,说明match_parent是相对于布局而言的。

2、wrap_content:填充内容,即wrap_content是相对于内容而言的。

3、相关实例:

1) 实例1
布局:

<pre name="code" class="html"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_blue_dark" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@android:color/holo_red_dark" />

</RelativeLayout>
 
  

观察以上代码,布局为RelativeLayout,背景颜色为蓝色;所套控件为TextView,背景颜色为红色。RelativeLayout的宽度和高度均为match_parent,所以屏幕全为黑色。TextView的宽度和高度均为wrap_content,但由于其中内容为空,所以TextView的实际尺寸为0。效果图:

Android中fill_parent、match_parent和wrap_content_第1张图片 
2) 实例2:
代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_blue_dark" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@android:color/holo_red_dark"
        android:text="hello_world" />

</RelativeLayout>
观察可得:
RelativeLayout的宽度和高度均为match_parent,所以屏幕全为黑色。
TextView的宽度和高度均为wrap_content,但由于有了内容“hello_world”,所以TextView的实际尺寸为内容123的尺寸。
效果图:
Android中fill_parent、match_parent和wrap_content_第2张图片
3) 实例3:
代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_blue_dark" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/holo_red_dark"
        android:text="hello_world" />

</RelativeLayout>
观察可得:
RelativeLayout的宽度和高度均为match_parent,所以屏幕全为黑色。
TextView的宽度为match_parent,所以TextView的尺寸变为填充整个父布局的宽度,所以红色宽度变为整个屏幕。
效果图:
Android中fill_parent、match_parent和wrap_content_第3张图片
4) 实例4
代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_blue_dark" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/holo_red_dark"
        android:text="hello_world" />

</RelativeLayout>
观察可得:
RelativeLayout的宽度和高度均为match_parent,所以屏幕全为黑色。
TextView的宽度和高度为match_parent,所以TextView的尺寸变为填充整个父布局的宽度和高度,所以红色变为整个屏幕。
效果图:
Android中fill_parent、match_parent和wrap_content_第4张图片
5) 实例5:
代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@android:color/holo_blue_dark" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/holo_red_dark"
        android:text="@string/hello_world" />

</LinearLayout>
观察可得:
<span style="background-color: rgb(255, 255, 255);">LinearLayout <span style="font-family: Arial, Helvetica, sans-serif;">的宽度和高度均为</span><span style="font-family: Arial, Helvetica, sans-serif;font-size:14px;">wrap_content</span><span style="font-size:14px; font-family: Arial, Helvetica, sans-serif;">,所以屏幕中黑色屏幕的大小和TextView的大小相同。</span></span>
TextView的宽度和高度为match_parent,所以TextView的尺寸变为填充整个父布局的宽度和高度。
效果图:
Android中fill_parent、match_parent和wrap_content_第5张图片





你可能感兴趣的:(Android中fill_parent、match_parent和wrap_content)