2012-10-04 35 views
2

我有一個觀點,看起來像這樣:LinearLayout不會填充父項;如果不是配合到它的最小寬度視圖

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:paddingTop="0dp" 
android:paddingLeft="0dp" 
android:paddingRight="0dp" 
android:paddingBottom="10dp" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical"> 

<RelativeLayout android:id="@+id/header" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:orientation="horizontal" 
    android:paddingTop="5dp" 
    android:paddingBottom="10dp" 
    android:paddingLeft="15dp" 
    android:paddingRight="15dp"> 

    <ImageView android:id="@+id/title_icon" 
     android:layout_width="12dp" 
     android:layout_height="12dp" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:layout_gravity="center_vertical" 
     android:src="@drawable/title_icon" /> 

    <LinearLayout android:id="@+id/title_layout" 
     android:layout_toRightOf="@id/title_icon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_gravity="center_vertical" 
     android:layout_marginLeft="10dp" 
     android:orientation="vertical" > 

     <TextView android:id="@+id/title_text" 
      android:text="@string/activity_complete" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:paddingRight="15dp" 
      android:textSize="12dp" 
      android:textStyle="bold"/> 

    </LinearLayout> 

    <TextView android:id="@+id/status_text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:textSize="8dp" /> 

</RelativeLayout> 

<TextView android:id="@+id/message_text" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:layout_marginTop="5dp" 
    android:layout_marginLeft="0dp" 
    android:layout_marginRight="0dp" 
    android:layout_marginBottom="5dp" 
    android:paddingLeft="15dp" 
    android:textSize="10dp"/> 

<ImageView android:id="@+id/main_image" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@color/grey" 
    android:padding="5dp"/> 

</LinearLayout> 

我的問題是主要的LinearLayout視圖不match_parent或FILL_PARENT。它似乎只想包含其中的最小項目。在我的情況下,它會導致與main_image相同的寬度,從而切斷其他所有內容。但是,如果我將main_image設置爲visibility.gone,那麼它將匹配message_text的寬度。

我試過刪除main_image之外的所有東西,主LinearLayout仍然只適合圖像寬度。

另一件事是,這個佈局是膨脹到另一個設置爲fill_parent的LinearLayout。

回答

3

在另一個LinearLayout中包裝ImageView解決了問題。

+0

看來這只是一些必要的時間,但我無法弄清楚條件是什麼。 – kodi

2

我剛剛遇到了這個問題 - 添加一個LinearLayout配置爲「match_parent」到另一個LinearLayout,但內部佈局沒有正確填充外部佈局。

起初,我這樣做是爲了增加布局:

LinearLayout inner = getLayoutInflater().inflate(R.layout.inner, null); 
outer.addView(inner, 0); 

惱怒幾分鐘後,我嘗試這樣做,而不是:

LinearLayout inner = getLayoutInflater().inflate(R.layout.inner, outer); 

而且inner匹配outer父的寬度和高度。