Android - 如何使可见元素推送其他元素

时间:2015-07-06 08:51:20

标签: android android-layout android-view

我得到了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,但这不起作用。

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

1 个答案:

答案 0 :(得分:0)

如果这些元素彼此相邻,则可以使用线性布局并将重力设置为右。线性布局自动推动元素。

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