Прокрутка страницы, когда всплывает мягкая клавиатура

У меня есть <ScrollView> :

 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/my_scrollview" android:layout_width="fill_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <EditText android:id="@+id/input_one" android:layout_width="300dp" android:layout_height="wrap_content" android:layout_gravity="center" android:inputType="number" > <EditText android:id="@+id/input_two" android:layout_width="300dp" android:layout_height="wrap_content" android:layout_gravity="center" android:inputType="number" > <EditText android:id="@+id/input_three" android:layout_width="300dp" android:layout_height="wrap_content" android:layout_gravity="center" android:inputType="number" > <Button android:id="@+id/ok_btn" android:layout_width="200dp" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="20dp" android:text="@string/ok_str" /> </LinearLayout> </ScrollView> 

Как вы видите выше, простой макет состоит из трех полей ввода и кнопки «ОК».

Я запускаю свое приложение с вышеуказанной компоновкой, когда я нажимаю на 1-ое поле ввода ( @+id/input_one ), мягкая клавиатура появится из нижней части экрана, она скрывает 3-е поле ввода и кнопку «ОК» ,

Поскольку я использую <ScrollView> , я думал, что могу прокручивать страницу, чтобы увидеть 3-е поле ввода и кнопку «ОК», которые скрываются с помощью мягкой клавиатуры, но страница не прокручивается . Зачем? Как избавиться от него? В основном, я хотел бы видеть все поля ввода и кнопку «Ok», даже если на клавиатуре появилась мягкая клавиатура.

Solutions Collecting From Web of "Прокрутка страницы, когда всплывает мягкая клавиатура"

Я исправил свою проблему, определив следующий атрибут в <activity> AndroidManifest.xml

 android:windowSoftInputMode="stateVisible|adjustResize" 

Хорошо, я искал несколько часов, чтобы найти проблему, и я нашел ее.

Ни одно из изменений, таких как fillViewport="true" или android:windowSoftInputMode="adjustResize" помогло мне.

Я использую Android 4.4, и это большая ошибка :

 android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" 

Так или иначе, Полноэкранные темы не позволяют прокручивать ScrollViews при видимости SoftKeyboard.

На данный момент я использовал это вместо этого:

 android:theme="@android:style/Theme.Black.NoTitleBar 

Я не знаю, как избавиться от верхней панели системы со временем и отображением батареи, но по крайней мере у меня возникла проблема.

Надеюсь, это поможет другим, у кого такая же проблема.

EDIT: У меня есть небольшое обходное решение для моего дела, поэтому я разместил его здесь :

Я не уверен, что это сработает для вас, но это определенно поможет вам в понимании и прояснить некоторые вещи.

EDIT2: Вот еще одна хорошая тема, которая поможет вам пойти в правильном направлении или даже решить вашу проблему.

В вашем Manifest define windowSoftInputMode свойство <activity android:name=".MyActivity" android:windowSoftInputMode="adjustNothing">

Поместите это внутри вашего манифеста, как это, без полноэкранного режима

 android:windowSoftInputMode="stateVisible|adjustPan" 

В вашем манифесте

 <activity android:windowSoftInputMode="stateVisible|adjustPan" android:name="com.example.patronusgps.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

Проверьте это.

 <activity android:name=".Calculator" android:windowSoftInputMode="stateHidden|adjustResize" android:theme="@android:style/Theme.Black.NoTitleBar"></activity> 

Для меня единственное, что работает, заключается в том, что в манифесте проявляется этот атрибут:

 android:windowSoftInputMode="stateHidden|adjustPan" 

Не показывать клавиатуру при открытии операции и не перекрывать нижнюю часть представления.

  <activity android:name=".DonateNow" android:label="@string/title_activity_donate_now" android:screenOrientation="portrait" android:theme="@style/AppTheme" android:windowSoftInputMode="stateVisible|adjustPan"> </activity> 

Это работало только для меня:

 android:windowSoftInputMode="adjustPan" 

Работает:

 android:windowSoftInputMode="stateVisible|adjustPan" 
  <activity android:name=".DonateNow" android:label="@string/title_activity_donate_now" android:screenOrientation="portrait" android:theme="@style/AppTheme" android:windowSoftInputMode="stateVisible|adjustPan"> </activity>