2

我有一个包含一个文本视图和两个图像的相对布局(宽度固定宽度,高度 = 48dip)。当我为一张图像设置可见性 view.gone 时,它​​不会释放空间

在此处输入图像描述

<TextView
    android:id="@+id/tv_subject_name"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textSize="18dip"
    android:textColor="#333"
    android:text="This is subject name"
    android:background="@android:color/transparent"
    android:layout_toLeftOf="@+id/btn_edit"
    android:layout_centerVertical="true"
    android:layout_marginRight="10dip"
    android:maxLines="1"/>
<EditText
        android:id="@+id/et_subject_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="18dip"
        android:textColor="#333"
        android:layout_toLeftOf="@+id/btn_edit"
        android:layout_centerVertical="true"
        android:enabled="false"
        android:visibility="invisible"
        android:background="@android:color/transparent"
        android:layout_marginRight="10dp"
        android:singleLine="true"
        />

<ImageView
        android:layout_width="48dip"
        android:layout_height="48dip"
        android:id="@+id/btn_edit"
        android:layout_alignParentRight="false"
        android:layout_centerVertical="true"
        android:src="@drawable/edit_blue"
        android:background="#eee"
        android:visibility="visible"
        android:layout_toLeftOf="@+id/btn_quick_reply"/>

<ImageView
        android:layout_width="48dip"
        android:layout_height="48dip"
        android:id="@+id/btn_quick_reply"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:src="@drawable/edit_quick_reply_blue"
        android:background="#eee"
        android:visibility="visible"/>

4

1 回答 1

1

对于您想要做的事情,我会使用 aLinearLayout而不是 a RelativeLayout。类似的东西:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    ...>

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        ....>

    <ImageView
        android:id="@+id/img1"
        android:layout_width="48dip"
        android:layout_height="48dip"
        ...>
    <ImageView
        android:id="@+id/img2"
        android:layout_width="48dip"
        android:layout_height="48dip"
        ...>
</LinearLayout>
于 2013-08-14T22:40:56.627 回答