如果将位于该位置的窗口小部件设置为不可见,则如何将窗口小部件锚定到活动的底部

时间:2014-10-08 20:46:49

标签: android android-layout relativelayout android-ui

我有这种情况,我在RelativeLayout中有4个小部件,顺序如下:

  1. 的TextView
  2. 的ListView
  3. 的TextView
  4. 按钮
  5. 这是布局的XML:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" 
        android:id="@+id/pedidoClienteRelativeLayout">
    
        <TextView
            android:id="@+id/nameLabel"        
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:maxLines="4"
            android:text="Customer Name" />
    
        <LinearLayout
            android:id="@+id/ordersLayout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"        
            android:layout_below="@+id/nameLabel"
            android:layout_above="@+id/totalOrdersLabel"
            android:orientation="vertical" >
    
            <ListView
                android:id="@+id/booksListView"
                android:layout_width="match_parent"
                android:layout_height="fill_parent"
                android:dividerHeight="1dp" >
            </ListView>
        </LinearLayout>
    
        <TextView
            android:id="@+id/totalOrdersLabel"       
            android:layout_above="@+id/confirmOrderButton"
            android:layout_alignParentLeft="true"
            android:text="Total" />
        <Button
            android:id="@+id/confirmOrderButton"       
            android:layout_alignParentBottom="true"
            android:text="Confirm Order" />
    
    </RelativeLayout>
    

    这或多或少是结果:

    enter image description here

    正如你所看到的那样有用。问题来自于Java我必须根据某些条件使Button不可见。然后Button上方的TextView无法使用android:layout_above="@+id/confirmOrderButton"进行引用,因此textview显示在Layout的顶部,而ListView根本没有显示。

    我认为如果我可以从第二个TextView中删除android:layout_above="@+id/confirmOrderButton"并添加android:layout_alignParentBottom="true",那么应该解决问题。问题是我完全不知道该怎么做,所以如果你能帮助我,我真的很感激。

    提前致谢。

1 个答案:

答案 0 :(得分:2)

totalOrdersLabel TextView的android:layout_alignWithParentIfMissing设置为true。

<TextView
    android:id="@+id/totalOrdersLabel"       
    android:layout_above="@+id/confirmOrderButton"
    android:layout_alignParentLeft="true"
    android:layout_alignWithParentIfMissing="true"
    android:text="Total" />