在我的应用中,屏幕中间附近有一个登录名和密码字段。我在清单中有这个
android:windowSoftInputMode="adjustResize|stateHidden"
这样在键盘显示时字段仍然可见。但问题是,有一个底部对齐的textview,当键盘显示时,这个视图与用户名/密码字段下的登录按钮重叠,有没有办法,所以设置textview字段不受影响adjestResize?
感谢。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/credentailsLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background_home"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".ActivityHome" >
<ImageView
android:id="@+id/imageLogo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/username"
android:layout_alignParentTop="true"
android:layout_marginBottom="50dp"
android:layout_marginTop="10dp"
android:scaleType="centerInside"
android:contentDescription="@+strings/logoimage"
android:src="@drawable/logo_2_scale" />
<EditText
android:id="@+id/username"
android:layout_width="480dp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginBottom="10dp"
android:layout_centerInParent="true"
android:background="@drawable/bg_edit_text"
android:gravity="center"
android:hint="@string/login_username"
android:inputType="textEmailAddress"
android:text="@string/DEBUG_login_username"
android:textColor="#000000" >
</EditText>
<EditText
android:id="@+id/password"
android:layout_width="480dp"
android:layout_height="wrap_content"
android:layout_below="@+id/username"
android:layout_marginBottom="10dp"
android:layout_centerInParent="true"
android:background="@drawable/bg_edit_text"
android:gravity="center"
android:hint="@string/login_password"
android:inputType="textPassword"
android:text="@string/DEBUG_login_password"
android:textColor="#000000" />
<Button
android:id="@+id/logInMode"
style="@style/loginButtonStyle"
android:layout_width="480dp"
android:layout_height="43dp"
android:layout_below="@+id/password"
android:layout_centerInParent="true"
android:background="@drawable/button_selector"
android:gravity="center"
android:onClick="ValidateLogin"
android:text="@string/loginonline" />
<TextView
android:id="@+id/advancedMenu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_gravity="bottom"
android:background="@drawable/advmenu_button_selector"
android:clickable="true"
android:gravity="center"
android:onClick="ShowAdvancedMenu"
android:paddingBottom="3dp"
android:paddingLeft="3dp"
android:paddingRight="3dp"
android:paddingTop="2dp"
android:text="@string/advancedmenu"
android:textColor="#FFFFFF"
android:textSize="17sp" />
</RelativeLayout>
答案 0 :(得分:0)
编辑:
显然,Android团队成员表示没有直接的方法可以做到这一点。我搜索了Google上的“android check if keyboard键盘是否可见”并得到了以下已回答的问题:
How do I Detect if Software Keyboard is Visible on Android Device?
根据链接的答案,您可以通过检查#onMeasure中窗口大小是否更改来间接检测它。见How to check visibility of software keyboard in Android?