困惑于android:width = match_parent与wrap_content

时间:2016-03-10 16:07:56

标签: android android-layout

我试图了解Android布局的工作原理。如果我创建一个简单的线性布局并添加一些文本字段,并将线性布局的宽度设置为wrap_content,我注意到在更改文本字段的宽度时会产生异常的效果。如果文本字段的宽度为wrap_content,则文本字段的大小与预期的一样(文本的宽度)。但是,如果我将文本字段的宽度设置为match_parent,则文本字段的大小将增大为设备屏幕的宽度。我希望文本视图的大小是文本的宽度,而不是屏幕显示的大小。

换句话说,如果父布局的宽度是wrap_content并且子视图的宽度是wrap_content,那么子视图的宽度似乎会增长为设备屏幕的宽度,即与设置相同父视图的宽度为match_parent。有人可以解释为什么会发生这种情况,因为这对我来说似乎很直观。

这是一些简单的代码来说明我在说什么。将Kunal文本视图的宽度从wrap_content更改为match_parent。

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@android:color/darker_gray">

    <TextView
        android:text="VIP List"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#4CAF50"
        android:textSize="24sp" />

    <TextView
        android:text="Kunal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#4CAF50"
        android:textSize="24sp" />

    <TextView
        android:text="Kagure"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#4CAF50"
        android:textSize="24sp" />

    <TextView
        android:text="Lyla"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#4CAF50"
        android:textSize="24sp" />

</LinearLayout>

1 个答案:

答案 0 :(得分:0)

制作这个。

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/darker_gray">

你会看到&#34; kunal&#34;和&#34; kagure&#34;占据所有屏幕的宽度 但是&#34;贵宾名单&#34;和&#34; lyla&#34;得到它所需的宽度。