Android - 如何让可见元素推动其他元素

Android - How to make a visible element push other elements

我得到了一个 RelativeLayout:

<RelativeLayout
    android:id="@+id/RelativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <AutoCompleteTextView
        android:id="@+id/auto_edit_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center|left"
        android:layout_marginBottom="5sp"
        android:layout_marginTop="5sp"
        android:layout_toLeftOf="@+id/ButtonBackspace"
        android:completionHint="@string/a_string"
        android:completionThreshold="1"
        android:gravity="center"
        android:hint="@string/a_string"
        android:textAppearance="@android:style/TextAppearance.Large" />

    <ImageButton
        android:id="@+id/ButtonBackspace"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/myButton"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:background="@android:color/white"
        android:soundEffectsEnabled="true"
        android:src="@drawable/dialer_btn_bks" />

    <Button
        android:id="@+id/myButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:text="New"
        android:visibility="gone" />

</RelativeLayout>

myButton 的可见性一开始是消失的。我希望当我在 运行 时间内将按钮的可见性更改为 Visible 时,它​​会将 ImageButtonAutoCompleteTextView 推向左侧,但按钮和 imageButton 都出现在彼此,因为他们都得到了 android:layout_alignParentRight="true"。我尝试将 android:layout_toLeftOf="@+id/myButton" 添加到 ImageButton,但这没有用。

当按钮变得可见并拥有自己的 space 时,如何让按钮推动其他元素?

如果这些元素紧挨着,你可以使用线性布局并将重力设置为右。线性布局自动推动元素。

在相对布局中,所有元素都"relative"到另一个元素或父视图,但每个方向只到一个元素。如果这个对象是 "gone" 这个方向的关系也消失了。