Мягкая клавиатура Android покрывает поле edittext

Есть ли способ заставить прокрутку экрана разрешить просмотр текстового поля?

Ответ 1

Вы спрашиваете, как контролировать то, что видно, когда открывается мягкая клавиатура? Возможно, вы захотите сыграть с windowSoftInputMode. Подробнее см. документы разработчика.

Ответ 2

У меня были такие же проблемы. Попробуйте ввести следующий код:

android:windowSoftInputMode="adjustPan"

добавьте его в свой манифест .xml в теге активности активности, которая содержит вход. Пример:

<activity
            android:name=".Activities.InputsActivity"
            ...
            android:windowSoftInputMode="adjustPan"
            />

Ответ 3

У меня была такая же проблема, когда экранная панель находилась поверх представлений EditText, которые были помещены в нижней части экрана. Я смог найти решение, добавив одну строку в мою активность в файле AndroidManifest.xml.

android:windowSoftInputMode="adjustResize|stateHidden"

Вот как выглядит весь тег активности:

<activity
        android:name="com.my.MainActivity"
        android:screenOrientation="portrait"
        android:label="@string/title_activity_main"
        android:windowSoftInputMode="adjustResize|stateHidden" >
    </activity>

Здесь самое важное значение - adjustResize. Это сдвинет весь пользовательский интерфейс, чтобы дать место для экранной клавиатуры.

Ответ 4

Почему бы не попытаться добавить ScrollView для переноса всего, что вы хотите прокрутить. Вот как я это сделал, когда на самом деле я оставляю заголовок сверху, который не прокручивается, а виджеты диалогового окна (в частности, EditTexts) прокручиваются при открытии программной клавиатуры.

<LinearLayout android:id="@+id/HeaderLayout" >
  <!-- Here add a header or whatever will not be scrolled. -->
</LinearLayout>
<ScrollView android:id="@+id/MainForm" >
  <!-- Here add your edittexts or whatever will scroll. -->
</ScrollView>

У меня обычно есть LinearLayout внутри ScrollView, но это зависит от вас. Кроме того, установка стиля полосы прокрутки в externalInset помогает, по крайней мере, на моих устройствах.

Ответ 6

Извините за восстановление старого потока, но никто не упоминал установку android:imeOptions="flagNoFullscreen" в элементе EditText

Ответ 7

android:windowSoftInputMode="adjustPan"
android:isScrollContainer="true"

работает для android EditText, пока он не работает для просмотра веб-страниц или xwalkview. Когда мягкая клавиатура скрывает ввод в webview или xwalkview, вы используете android:windowSoftInputMode="adjustResize"

Ответ 8

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

Ответ 9

добавьте эту единственную строку в свою относительную активность, когда обложка основной панели редактирует метод text.inside onCreat().

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

Ответ 10

Я знаю, что это старо, но ни одно из вышеперечисленных решений не помогло мне. После обширной отладки я разобрался с проблемой. Решением является установка для атрибута android:windowTranslucentStatus false в моем файле styles.xml.

Ответ 11

Измените свой AndroidManifest.xml

android:windowSoftInputMode="adjustResize"

Добавьте это в корневой вид файла макета.

android:fitsSystemWindows="true"

Все это.