Как переместить макет вверх, когда отображается мягкая клавиатура 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);
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);