我正在构建的APP有一个登录屏幕,其中包含徽标,用户名的编辑文本,密码的编辑文本和登录按钮。
以前我有一个ScrollView并且同时使EditText singleline = true。因此,用户可以输入详细信息并在键入时点击下一步。然后点击完成然后选择登录按钮或向下滑动以选择登录。
但是,客户希望从登录页面中删除ScrollView。因此,如果键盘已启动,则按钮和两个编辑文本始终位于屏幕底部或键盘上方。
我可以将按钮保持在顶部,但第二个EditText被覆盖,或者我已经设法将两个EditText保留在屏幕上,但随后按钮进入屏幕。 如何阻止键盘覆盖登录页面的第二个EditText 和按钮?
以下是我的代码:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/loginButton"
android:orientation="vertical"
android:layout_weight="1">
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/mainLogoImageView"
android:src="@drawable/ic_logo_main"
android:layout_alignParentRight="true"
android:layout_alignParentLeft="true"
android:layout_above="@+id/usernameEditText"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="false" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="0">
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/usernameEditText"
android:hint="@string/username"
android:layout_alignParentLeft="true"
android:maxLines="1"
android:singleLine="true"
android:layout_alignParentRight="true"
android:layout_above="@+id/passwordEditText"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="0">
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:ems="10"
android:id="@+id/passwordEditText"
android:hint="@string/password"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
android:singleLine="true"
android:layout_alignParentRight="true"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="0">
<ImageButton
android:layout_width="150dp"
android:layout_height="wrap_content"
android:src="@drawable/ic_signin"
android:text="Sign In"
android:id="@+id/loginButton"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:onClick="attemptLogin"
android:background="@color/orange_button_bg"
style="?android:attr/borderlessButtonStyle"
android:layout_gravity="center_horizontal"/>
</LinearLayout>
我曾试图从其他论坛问题的建议中使用线性加权: - Push button above soft keyboard
如果您遇到类似问题,这些问题可能会有所帮助: