Как перемещать макет, когда отображается мягкая клавиатура Android

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

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

Ответ 1

i каким-то образом достиг этого, зная состояние мягкой клавиатуры на устройстве. Я перемещаю макет в позицию y, когда клавиатура отображается и возвращается в исходное положение, когда она не показана. это отлично работает, следуйте рекомендациям из /questions/16169/how-to-check-visibility-of-software-keyboard-in-android/118696#118696

Ответ 2

Установить свойство SoftInput Mode окна Window для настройкиPan и adjustResize

<activity android:windowSoftInputMode="adjustPan|adjustResize"> </activity>

Ответ 3

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

<activity android:windowSoftInputMode="adjustPan"> </activity>

Ответ 4

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

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

Ответ 5

только

android:windowSoftInputMode="adjustResize"

в вашем теге активности внутри файла манифеста сделают трюк

Ответ 6

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

<android:windowSoftInputMode="adjustPan">

Ответ 7

Поместите это в ваше объявление активности в файл манифеста <activity android:windowSoftInputMode="adjustPan|adjustResize"> </activity>

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

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

Ответ 8

android:fitsSystemWindows="true"

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

android:windowSoftInputMode="adjustResize"

добавьте строку в свой файл Manifest.xml на свою Activity

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

Ответ 9

Это все, что необходимо:

<activity android:windowSoftInputMode="adjustResize"> </activity>

Ответ 10

Соглашаясь с этим guide, правильный способ достичь этого - объявить в вашем манифесте:

<activity name="EditContactActivity"
        android:windowSoftInputMode="stateVisible|adjustResize">

    </activity>

Ответ 11

Когда появляется экранная клавиатура, он изменяет размер основного макета, и вам нужно сделать это для прослушивания этого основного и внутри этого слушателя, добавьте код scrollT0(x,y) для прокрутки вверх.

Ответ 12

Если вы работаете с 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.
    }

Ответ 13

Используйте Relative layout, он отрегулирует представление, чтобы вы могли видеть этот вид при вводе текста

Ответ 14

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

getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

Ответ 15

вы должны использовать "android: windowSoftInputMode =" adjustPan | stateHidden "в вашем файле android Mainfest.xml, где вы объявляете ее активность. Это позволит отрегулировать содержимое макета, когда клавиатура отображается в макете.