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

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

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

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"