如何设置按钮始终在底部布局 android

How to set button always in bottom layout android

我有一个寄存器布局,我想将按钮始终设置在底部,但是当我单击其中一个文本字段时,按钮不在最后一个元素/文本字段下方,而是在文本字段上方。我打算让它相对,如果键盘没有出现,它会像图片中那样出现,文本字段和按钮之间有一个space,但是当键盘出现时,我打算消除space.

这是我的布局 xml:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/login_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <include layout="@layout/padding" />

        <EditText
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:layout_marginTop="20dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textEmailAddress"
            android:ems="10"
            android:id="@+id/editText"
            android:layout_gravity="center_horizontal"
            android:hint="Email Address"/>

        <EditText
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:layout_marginTop="20dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textPassword"
            android:ems="10"
            android:id="@+id/editText2"
            android:layout_gravity="center_horizontal"
            android:hint="Password"/>

        <EditText
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:layout_marginTop="20dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="text"
            android:ems="10"
            android:id="@+id/editText3"
            android:layout_gravity="center_horizontal"
            android:hint="First Name"/>

        <EditText
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:layout_marginTop="20dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="text"
            android:ems="10"
            android:id="@+id/editText4"
            android:layout_gravity="center_horizontal"
            android:hint="Last Name"/>

        <EditText
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:layout_marginTop="20dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="phone"
            android:ems="10"
            android:id="@+id/editText5"
            android:layout_gravity="center_horizontal"
            android:hint="Phone"/>

    </LinearLayout>

    <TextView
        android:id="@+id/forgottext"
        android:layout_below="@+id/login_layout"
        android:layout_marginRight="20dp"
        android:layout_marginTop="20dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Forgot?"
        android:autoLink="web"
        android:layout_alignParentRight="true"/>

    <com.gc.materialdesign.views.ButtonRectangle
        android:id="@+id/login_bt"
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:text="Sign Up"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:background="@color/material_deep_teal_500"
        android:layout_weight="1"
        android:layout_gravity="bottom"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"/>

</RelativeLayout>

制作一个包含两个布局的 LinearLayout(1. 包含所有 editView 的布局,2. 按钮)。给主要的 LinearLayout

android:layout_weight="1"

和内部布局

android:layout_weight="1"

两个内部都应该是match_parent,那么你的按钮总是在底部(即使键盘显示)