2013-02-07 178 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重新测量其子项。