1

我有一个内部有多个 TextView 的相对布局。此布局在其高度上有“wrap_content”。当按下某些导航按钮时,我会更改 TextView 的可见性,以便显示所需的内容。

但是,当下一个显示的内容小于上一个时,布局不会缩小,并且会留下大量的空白空间。布局保持最大显示内容的高度,并保持这种状态。

我想缩小这个布局,让它包裹显示的内容,并且没有多余的空间。

这是布局代码:

    <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

我将不胜感激任何帮助。

4

2 回答 2

0

请务必使用 View.GONE 使视图消失(而不是 View.INVISIBLE)。

而且,在查看您的 XML 布局时,垂直 LinearLayout 似乎更适合您想要完成的任务。

于 2013-02-07T21:40:27.160 回答
0

更改值后,在 ViewGroup 上调用invalidate()(在您的情况下为 RelativeLayout)。这应该强制 View / ViewGroup 重新测量其子项。

于 2013-02-07T21:44:21.813 回答