显示键盘时无法在 LinearLayout 内滚动内容
Cannot scroll content inside LinearLayout when keyboard is shown
我在 ScrollView
中使用背景图像,背景中已有该图像。我希望 LinearLayout
中的内容可以滚动并且背景图像不应该缩小。
这是我的 xml 文件 :-
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/login_form"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/login_background"
android:fillViewport="true"
android:gravity="center_horizontal"
android:orientation="vertical"
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="com.appzoy.croatiaapp.LoginActivity">
<LinearLayout
android:id="@+id/email_login_form"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="50dp"
android:gravity="bottom"
android:orientation="vertical">
<EditText
android:id="@+id/userId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:background="@drawable/user_name_background"
android:hint="@string/hint_name"
android:paddingBottom="15dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="15dp" />
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginTop="30dp"
android:background="@drawable/user_name_background"
android:hint="@string/hint_password"
android:inputType="textPassword"
android:paddingBottom="15dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="15dp" />
<Button
android:id="@+id/email_sign_in_button"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="30dp"
android:background="@drawable/login_button_background"
android:enabled="false"
android:gravity="center"
android:text="@string/action_sign_in"
android:textColor="@color/textColor"
android:textSize="20sp" />
</LinearLayout>
</ScrollView>
我使用 stateVisible|adjustPan
作为 windowSoftInputMode
属性值。
你可以尝试只保留属性 adjustPan
<application
android:windowSoftInputMode="adjustPan"/>
您可以尝试 NestedScrollView
而不是 ScrollView
。这是第一个解决方案。
你也可以试试这个。
将此添加到您的清单中。
android:windowSoftInputMode="adjustResize"
我在 ScrollView
中使用背景图像,背景中已有该图像。我希望 LinearLayout
中的内容可以滚动并且背景图像不应该缩小。
这是我的 xml 文件 :-
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/login_form"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/login_background"
android:fillViewport="true"
android:gravity="center_horizontal"
android:orientation="vertical"
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="com.appzoy.croatiaapp.LoginActivity">
<LinearLayout
android:id="@+id/email_login_form"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="50dp"
android:gravity="bottom"
android:orientation="vertical">
<EditText
android:id="@+id/userId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:background="@drawable/user_name_background"
android:hint="@string/hint_name"
android:paddingBottom="15dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="15dp" />
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginTop="30dp"
android:background="@drawable/user_name_background"
android:hint="@string/hint_password"
android:inputType="textPassword"
android:paddingBottom="15dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="15dp" />
<Button
android:id="@+id/email_sign_in_button"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="30dp"
android:background="@drawable/login_button_background"
android:enabled="false"
android:gravity="center"
android:text="@string/action_sign_in"
android:textColor="@color/textColor"
android:textSize="20sp" />
</LinearLayout>
</ScrollView>
我使用 stateVisible|adjustPan
作为 windowSoftInputMode
属性值。
你可以尝试只保留属性 adjustPan
<application
android:windowSoftInputMode="adjustPan"/>
您可以尝试 NestedScrollView
而不是 ScrollView
。这是第一个解决方案。
你也可以试试这个。 将此添加到您的清单中。
android:windowSoftInputMode="adjustResize"