知道为什么以下布局不可滚动?我在RelativeLayout
中有一个ScrollView
。视图适合屏幕。但是只要键盘弹出就会被覆盖。当键盘弹出时我想让屏幕可滚动,因为它覆盖了登录名和密码EditBoxes所以很难看到有人在键入什么
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<com.alarm.alarmmobile.android.view.RobotoLightTextView
android:id="@+id/passcode_login_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="20dp"
android:text="@string/passcode_login_body"
android:textAppearance="?android:attr/textAppearanceSmall" />
<EditText
android:id="@+id/passcode_login_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/passcode_login_text"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="20dp"
android:hint="@string/login_textview_username"
android:singleLine="true" />
<EditText
android:id="@+id/passcode_login_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/passcode_login_username"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:hint="@string/login_textview_password"
android:inputType="textPassword"
android:singleLine="true" />
<com.alarm.alarmmobile.android.view.RobotoLightButton
android:id="@+id/passcode_login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@id/passcode_login_password"
android:layout_marginRight="16dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:text="@string/login_button_login" />
</RelativeLayout>
</ScrollView>
答案 0 :(得分:1)
将此包含在您的清单中:
<activity android:name="..." // your activity here
....
android:windowSoftInputMode="adjustResize|adjustPan">
/>
注意:不确定添加adjustPan
是否会导致问题再次出现。
答案 1 :(得分:1)
在此布局的活动或片段类上,您必须调用它:
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
答案 2 :(得分:0)
如果屏幕上的所有内容都适合,则ScrollView
将无法在任何位置滚动。如果有一个组件不完全可见,则滚动应该可用于查看组件的其余部分。没有能够看到问题是什么,很难找到确切的解决方案。