2016-03-10 27 views
0

我想了解Android佈局如何工作。如果我製作一個簡單的線性佈局並添加一些文本字段,並將線性佈局的寬度設置爲wrap_content,則在更改文本字段的寬度時,我注意到了一種不尋常的效果。如果文本字段的寬度是wrap_content,那麼文本字段的大小與預期的一樣(文本的寬度)。但是,如果將文本字段的寬度設置爲match_parent,則文本字段的大小會增加爲設備屏幕的寬度。我預計文本視圖的大小是文本的寬度,而不是屏幕顯示的大小。混淆android:width = match_parent與wrap_content

換句話說,如果父佈局的寬度是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> 
+0

可能的重複[有什麼區別fill \ _parent和wrap \ _content?](http://stackoverflow.com/questions/432763/whats-the-difference-between-fill-parent-and-wrap-content ) –

+0

不會發生在我身上。當父母包裝內容並且孩子與父母相匹配或包裝內容時,父母的範圍與最寬的孩子一樣寬。 Android棉花糖。也許這取決於Android版本? – AlbAtNf

回答

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"> 

你會看到,「KUNAL」和「kagure」把所有的屏幕寬度 但「VIP名單」和「萊拉」獲得塔它需要的寬度。