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


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

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

16 80

16 ответов:

Set windowSoftInputMode свойство adjustPan и adjustResize

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

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

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

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

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

только

android:windowSoftInputMode="adjustResize"

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

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

<android:windowSoftInputMode="adjustPan">

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

android:fitsSystemWindows="true"

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

android:windowSoftInputMode="adjustResize"

добавить строку в Манифесте.xml-файл на вашем Activty

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

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

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

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

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

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

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

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

    </activity>

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

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

    [Activity(WindowSoftInputMode =Android.Views.SoftInput.AdjustPan | Android.Views.SoftInput.AdjustResize)]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
    {
        //some code here.
    }

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

это работает как шарм для меня

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

вы должны использовать

android:windowSoftInputMode="adjustPan|stateHidden"

в своем AndroidManifest.xml файл, в котором вы объявляете свою деятельность. Это позволит настроить содержимое макета, когда клавиатура отображается в макете.

Это определенно будет работать для вас.

android: windowSoftInputMode= "adjustPan"