2013-02-07 214 views
1

我有一個相對佈局,內部有多個TextView。該佈局在其高度上具有「wrap_content」。當按下某些導航按鈕時,我將更改TextView的可見性,以顯示所需的內容。Android相對佈局高度

但是,當下一個顯示的內容小於上一個顯示的內容時,佈局不收縮,並且留下大量空白空間。佈局保持最大顯示內容的高度,並保持這種狀態。

我想縮小此佈局,使其包裝顯示的內容,並且沒有額外的空間。

這裏的佈局代碼:

<RelativeLayout 
     android:id="@+id/brief_box" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     android:background="#7A08AB" 
     android:layout_below="@+id/description_navigation"> 

     <ImageView 
      android:id="@+id/dot_separator_1" 
      android:layout_height="1dp" 
      android:layout_width="fill_parent" 
      android:background="@drawable/dot_separator" 
      android:layout_alignParentTop="true" 
      android:layout_marginTop="2dp"/> 

     <TextView 
      android:id="@+id/brief_about_text" 
      android:layout_height="wrap_content" 
      android:layout_width="fill_parent" 
      android:layout_below="@+id/dot_separator_1" 
      android:layout_marginLeft="20dp" 
      android:layout_marginRight="14dp" 
      android:layout_marginTop="4dp" 
      android:textColor="#FFFFFF" 
      android:textSize="16sp" 
      android:textStyle="bold" 
      android:text="Venga a drogarse compipa! Venga a drogarse compipa! Venga a drogarse compipa! Venga a drogarse compipa! Venga a drogarse compipa!"/> 

     <TextView 
      android:id="@+id/brief_about_update_time" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_below="@+id/brief_about_text" 
      android:layout_alignParentRight="true" 
      android:layout_marginRight="6dp" 
      android:textSize="12sp" 
      android:textColor="#DFCAE8" 
      android:text="Hace 3 horas"/> 

     <TextView 
      android:id="@+id/brief_menu_update_time" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_below="@+id/brief_menu_text" 
      android:layout_alignParentRight="true" 
      android:layout_marginRight="6dp" 
      android:textSize="12sp" 
      android:textColor="#DFCAE8" 
      android:text="Última actualización hace 2 días." 
      android:visibility="gone"/>   

     <TextView 
      android:id="@+id/brief_menu_title" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_below="@+id/dot_separator_1" 
      android:layout_marginLeft="20dp" 
      android:layout_marginTop="4dp" 
      android:textColor="#FFFFFF" 
      android:textSize="18sp" 
      android:textStyle="bold" 
      android:text="Menú cachero" 
      android:visibility="gone"/>   

     <TextView 
      android:id="@+id/brief_menu_price" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_below="@+id/dot_separator_1" 
      android:layout_alignParentRight="true" 
      android:layout_marginTop="4dp" 
      android:layout_marginRight="10dp" 
      android:textColor="#FFFFFF" 
      android:textSize="18sp" 
      android:textStyle="bold" 
      android:text="$4.500" 
      android:visibility="gone"/> 

     <TextView 
      android:id="@+id/brief_menu_text" 
      android:layout_height="wrap_content" 
      android:layout_width="fill_parent" 
      android:layout_below="@+id/brief_menu_title" 
      android:layout_marginTop="4dp" 
      android:layout_marginLeft="20dp" 
      android:layout_marginRight="10dp" 
      android:textColor="#FFFFFF" 
      android:textSize="12sp" 
      android:textStyle="bold" 
      android:text="Fantástico menú que contiene ilimitadas posibilidades de contraer una diarrea que durará mas de una semana. Contiene cochayuyo con guatitas y caca, sopa, ensalada, y bebida." 
      android:visibility="gone"/>       

     <TextView 
      android:id="@+id/brief_where_title" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_below="@+id/dot_separator_1" 
      android:layout_marginLeft="20dp" 
      android:layout_marginTop="6dp" 
      android:textColor="#FFFFFF" 
      android:textSize="14sp" 
      android:text="Encuéntranos en:" 
      android:visibility="gone"/>   

     <TextView 
      android:id="@+id/brief_where_text" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_below="@+id/brief_where_title" 
      android:layout_marginLeft="20dp" 
      android:layout_marginBottom="8dp" 
      android:textColor="#FFFFFF" 
      android:textSize="18sp" 
      android:text="Lota 3495, Providencia" 
      android:visibility="gone"/> 

     <ImageView 
      android:id="@+id/brief_where_how_to_arrow" 
      android:layout_width="11dp" 
      android:layout_height="20dp" 
      android:layout_alignParentRight="true" 
      android:layout_below="@+id/dot_separator_1" 
      android:layout_marginRight="4dp" 
      android:layout_marginTop="20dp" 
      android:background="@drawable/arrow_tag" 
      android:visibility="gone"/>         

     <TextView 
      android:id="@+id/brief_where_how_to" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_below="@+id/dot_separator_1" 
      android:layout_toLeftOf="@+id/brief_where_how_to_arrow" 
      android:layout_marginTop="16dp" 
      android:textColor="#FFFFFF" 
      android:textSize="11sp" 
      android:textStyle="bold" 
      android:text="content" 
      android:visibility="gone"/>   



    </RelativeLayout> 

以下是問題的一些截圖。

這是大內容:

http://i46.tinypic.com/29xwuw0.png

這是含量少,大的內容佈局:

http://i47.tinypic.com/29gbogm.png

我希望得到任何幫助。

回答

0

一定要使用View.GONE使視圖消失(而不是View.INVISIBLE)。

而且,在查看您的XML佈局時,似乎一個垂直的LinearLayout對於您想要完成的任務會更好。

+0

這工作像一個魅力。我使用View.INVISIBLE,我認爲這是問題所在。謝謝! – Sebiwi

0

更改值後,請在ViewGroup(您的情況下爲RelativeLayout)上調用invalidate()。這應該強制View/ViewGroup重新測量其子項。