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

时间:2015-02-02 10:25:20

标签: android android-layout

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

image1 image2

这是我的布局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>

1 个答案:

答案 0 :(得分:5)

使用两个布局创建一个LinearLayout(1.布局包含所有editViews,2。按钮)。给出主要的LinearLayout

android:layout_weight="1"

和内部布局

android:layout_weight="1"

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