Как переместить раскладку вверх при показе софт-клавиатуры на андроид - PullRequest
82 голосов
/ 02 февраля 2012

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

Я не хочу использовать ScrollView, просто хочу реализовать ее без прокрутки вниз.Пожалуйста, предложите мне какой-нибудь способ сделать это.Заранее спасибо.

Ответы [ 16 ]

61 голосов
/ 02 февраля 2012

Установите для свойства windowSoftInputMode значение adjustPan и adjustResize

<activity android:windowSoftInputMode="adjustPan|adjustResize"> </activity>
32 голосов
/ 02 февраля 2012

Попробуйте это в файле манифеста Android, соответствующем активности.

<activity android:windowSoftInputMode="adjustPan"> </activity>
24 голосов
/ 25 февраля 2013

Используйте этот код в onCreate() методе:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
16 голосов
/ 23 сентября 2015

только

android:windowSoftInputMode="adjustResize"

в вашем теге активности внутри файла манифеста добьется цели

12 голосов
/ 15 января 2015

Поместите эту строку во время объявления активности в manifest.xml

<android:windowSoftInputMode="adjustPan">
10 голосов
/ 06 февраля 2012

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

8 голосов
/ 21 октября 2016
android:fitsSystemWindows="true"

добавьте свойство в основной макет файла макета и

android:windowSoftInputMode="adjustResize"

добавьте строку в ваш файл Manifest.xml в Activty

это идеальная работа для меня.

6 голосов
/ 28 мая 2015

Поместите это в декларацию своей активности в файле манифеста <activity android:windowSoftInputMode="adjustPan|adjustResize"> </activity>

или, если хотите, можете добавить в метод onCreate () своей активности

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
3 голосов
/ 25 февраля 2015

Это все, что нужно:

<activity android:windowSoftInputMode="adjustResize"> </activity>
2 голосов
/ 10 июня 2016

Если вы работаете с xamarin, вы можете поместить этот код WindowSoftInputMode =Android.Views.SoftInput.AdjustPan | Android.Views.SoftInput.AdjustResize в атрибут деятельности класса MainActivity.Например, теперь атрибут деятельности будет выглядеть ниже

    [Activity(WindowSoftInputMode =Android.Views.SoftInput.AdjustPan | Android.Views.SoftInput.AdjustResize)]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
    {
        //some code here.
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...