Клавиатура Android покрывает поле редактирования текста - PullRequest
152 голосов
/ 21 июля 2010

Есть ли способ сделать прокрутку экрана, чтобы текстовое поле было видно?

Ответы [ 11 ]

154 голосов
/ 14 февраля 2014

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

android:windowSoftInputMode="adjustPan"

добавьте его в файл manifest.xml в теге активности, содержащей входные данные.пример:

<activity
            android:name=".Activities.InputsActivity"
            ...
            android:windowSoftInputMode="adjustPan"
            />
154 голосов
/ 21 июля 2010

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

53 голосов
/ 25 июня 2013

У меня была та же проблема, когда программная клавиша находилась поверх представлений 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.Это сместит весь пользовательский интерфейс вверх, чтобы освободить место для Softkeyboard.

25 голосов
/ 19 августа 2010

Почему бы не попробовать добавить 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, но это зависит от вас. Кроме того, установка стиля полосы прокрутки на outsideInset помогает, по крайней мере, на моих устройствах.

14 голосов
/ 02 февраля 2016

Все, что вам нужно сделать, это

android:isScrollContainer="true"

источник: http://www.davidwparker.com/2011/08/25/android-fixing-window-resize-and-scrolling/

13 голосов
/ 07 июня 2014

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

5 голосов
/ 07 декабря 2016
android:windowSoftInputMode="adjustPan"
android:isScrollContainer="true"

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

4 голосов
/ 21 июля 2010

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

0 голосов
/ 19 апреля 2019

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

0 голосов
/ 09 июля 2018

Отредактируйте свой AndroidManifest.xml

android:windowSoftInputMode="adjustResize"

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

android:fitsSystemWindows="true"

Вот и все.

...