我有一个寄存器布局,我想总是在底部设置按钮,但是当我单击其中一个文本字段时,按钮不在最后一个元素/文本字段下,而是在文本字段之上。我打算让它相对,如果键盘没有出现,它会像在图片中一样,文本字段和按钮之间有一个空格,但是当键盘出现时,我打算消除空间。
这是我的布局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>
答案 0 :(得分:5)
使用两个布局创建一个LinearLayout(1.布局包含所有editViews,2。按钮)。给出主要的LinearLayout
android:layout_weight="1"
和内部布局
android:layout_weight="1"
两个内部都应该是match_parent,那么你的按钮总是在底部(即使显示了keyBoard)