如何对齐RelativeView以坚持到底部

时间:2011-09-06 19:11:39

标签: android xml layout

我有一个相当大的布局文件,它是TabHost的一部分,我的问题是,无论我使用什么属性,最后的RelativeLayout(@ id / footbar)都不会粘在我的视图底部。

请让我知道这一点。我希望ListView在 占位符(hline)和footbar之间。

目前,足栏粘在List上,该列在顶部正确对齐,但随其内容延伸。当我选择列表的高度为“match_parent”“fill_parent”时,它会占用所有空间到底部并将足栏移出视图:(

顺便说一句:有没有办法让缩放的ImageButton适合微调器的高度或圆形?

提前感谢

以下是列表:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:id="@+id/abrtimer">

    <TextView android:id="@+id/username_timer"
              android:layout_height="wrap_content"
              android:layout_width="wrap_content"
              android:layout_alignParentTop="true"
              android:layout_alignParentRight="true"
    />

    <ImageView android:id="@+id/hline"
               android:layout_width="fill_parent"
               android:layout_height="2dip"
               android:background="#544444"
               android:layout_below="@id/username_timer" />

    <RelativeLayout android:layout_width="fill_parent"
                  android:layout_height="fill_parent"
                  android:layout_below="@id/hline"
                  android:orientation="vertical">
         <ExpandableListView android:id="@+id/timerList"
                            android:layout_height="wrap_content"
                            android:layout_width="match_parent"
                            android:drawSelectorOnTop="true"
                            android:gravity="top"/>

         <LinearLayout android:orientation="horizontal"
                     android:layout_below="@id/timerList"
                     android:id="@+id/footbar"
                     android:layout_width="fill_parent"
                     android:layout_height="fill_parent"
                     android:layout_alignParentBottom="true"
                     android:gravity="bottom"
                     android:weightSum="10">

             <Spinner android:layout_height="wrap_content"
                android:id="@+id/projectSpinner"
                android:layout_width="fill_parent"
                android:layout_gravity="left"
                android:layout_weight="8"/>
            <ImageButton android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@android:drawable/ic_menu_add"
                android:id="@+id/addButton"
                android:scaleType="centerCrop"
                android:layout_gravity="right"
                android:layout_weight="2"/>      
         </LinearLayout>
     </RelativeLayout>

</RelativeLayout>

1 个答案:

答案 0 :(得分:2)

我认为这段代码就是您所需要的。它简化了一点。您实际上不需要使用RelativeLayout来实现此布局。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:id="@+id/abrtimer">

    <TextView android:id="@+id/username_timer"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_gravity="top|right" />

    <ImageView android:id="@+id/hline"
        android:layout_width="match_parent"
        android:layout_height="2dip"
        android:background="#544444" />

    <ExpandableListView android:id="@+id/timerList"
        android:layout_height="0dip"
        android:layout_width="match_parent"
        android:layout_weight="1"
        android:drawSelectorOnTop="true" />

    <LinearLayout android:orientation="horizontal"
        android:layout_below="@id/timerList"
        android:id="@+id/footbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:gravity="bottom"
        android:weightSum="10">

        <Spinner android:layout_height="wrap_content"
            android:id="@+id/projectSpinner"
            android:layout_width="fill_parent"
            android:layout_gravity="left"
            android:layout_weight="8"/>
        <ImageButton android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@android:drawable/ic_menu_add"
            android:id="@+id/addButton"
            android:scaleType="centerCrop"
            android:layout_gravity="right"
            android:layout_weight="2"/>      
    </LinearLayout>
</LinearLayout>