如何将相对布局停靠在屏幕底部

6

我希望将按钮始终停靠在屏幕底部。我已经将android:gravity="bottom"更改为bottom。

我对android:gravity和layout gravity感到困惑。我的问题是如何将按钮停靠在底部?

    <Spinner android:id="@+id/alphabets" android:layout_height="wrap_content"
        android:layout_width="match_parent">
    </Spinner>
    <TextView android:layout_width="wrap_content" android:text="TextView"
        android:layout_height="wrap_content" android:id="@+id/textView1"
        android:editable="false" android:textSize="50sp" android:gravity="center_horizontal"
        android:layout_gravity="center_horizontal">
    </TextView>

    <RelativeLayout android:id="@+id/relativeLayout1"
        android:layout_height="wrap_content" android:gravity="bottom"
        android:layout_width="fill_parent" android:layout_gravity="fill">
        <ImageButton android:layout_width="wrap_content"
            android:id="@+id/imageButton1" 
            android:src="@drawable/arrow_button_left"
            android:layout_height="wrap_content" />
        <ImageButton android:layout_width="wrap_content"
            android:id="@+id/imageButton2" 
            android:src="@drawable/arrow_button_right"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true" />
    </RelativeLayout>
</LinearLayout>

enter image description here


2
嗨,将此属性设置为您的两个按钮“android:layout_alignParentBottom =”true“”,并告诉是否实现了输出。 - Dinash
4个回答

12
<RelativeLayout 
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent" >

<RelativeLayout android:id="@+id/relativeLayout1"
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent" android:layout_alignParentBottom="true">

<ImageButton android:layout_width="wrap_content"
            android:id="@+id/imageButton1" 
            android:src="@drawable/arrow_button_left"
            android:layout_height="wrap_content" />
        <ImageButton android:layout_width="wrap_content"
            android:id="@+id/imageButton2" 
            android:src="@drawable/arrow_button_right"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true" />

</RelativeLayout>
</RelativeLayout>

不要使用线性布局,而是使用相对布局作为父布局


1

在垂直线性布局中,垂直重力不起作用。你应该想办法填充相对布局和文本视图之间的空间。例如,为文本视图设置android:layout_height="fill_parent",或者在它们之间放置一些带有layout_height="fill_parent"的虚拟视图。


我应该使用Linerlayout吗? - Gainster
这个解决方案适用于线性布局,是的。 - Dmitry Ryadnenko

0

试试这个...

<RelativeLayout android:id="@+id/relativeLayout1"
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" android:layout_alignParentBottom="true">
<ImageButton android:layout_width="wrap_content"
        android:id="@+id/imageButton1" 
        android:src="@drawable/arrow_button_left"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_height="wrap_content" />
    <ImageButton android:layout_width="wrap_content"
        android:id="@+id/imageButton2" 
        android:src="@drawable/arrow_button_right"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true" />
       </RelativeLayout> 

0
如果您计划在底部停靠处使用带有一些选择器的列表视图,请尝试这个方法。请注意相对布局1的android:layout_above和android:layout_alignParentTop属性。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <RelativeLayout android:id="@+id/relativeLayout1"
            android:layout_height="wrap_content" 
            android:layout_width="fill_parent" 
            android:layout_alignParentTop="true"
            android:layout_above="@+id/footerRow" >

        <ListView
            android:id="@+id/summaryListView"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"

            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:choiceMode="singleChoice"
            android:drawSelectorOnTop="true" >

        </ListView>

    </RelativeLayout>

    <TableRow
        android:id="@+id/footerRow"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:baselineAligned="true"
        android:layout_alignParentBottom="true" >

        <Spinner
            android:id="@+id/_ddlPeriod"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:entries="@array/Period_Selector"
             />
    </TableRow>

</RelativeLayout>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接