Как перемещать макет, когда отображается мягкая клавиатура 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, где вы объявляете ее активность. Это позволит отрегулировать содержимое макета, когда клавиатура отображается в макете.