Android: Как я могу помешать мягкой клавиатуре выдвинуть мой взгляд?
У меня есть вертикальный скользящий ящик внизу моего приложения. Когда открывается мягкая клавиатура, она выдвигает вкладку для выдвижного ящика, поэтому она сидит на клавиатуре. Я действительно хочу, чтобы он оставался в нижней части экрана, скрываясь при отображении клавиатуры.
Кто-нибудь еще сталкивается с этой проблемой? Знаете, как это исправить?
Ответы
Ответ 1
Вы можете просто переключить свой флаг Activity windowSoftInputMode
на adjustPan
в файле AndroidMainfest.xml
внутри тега активности.
Проверьте официальную документацию для получения дополнительной информации.
<activity
...
android:windowSoftInputMode="adjustPan">
</activity>
Ответ 2
Ни один из ответов не работал у меня, но это сделало трюк:
android:windowSoftInputMode="adjustNothing"
Ответ 3
В моем случае причина, по которой кнопки были выдвинуты, заключалась в том, что вид над ними был ScrollView
, и он обрушился с кнопками, выдвинутыми вверх над клавиатурой, независимо от того, какое значение android:windowSoftInputMode
я устанавливал.
Мне удалось избежать того, что нижняя строка кнопок была нажата мягкой клавиатурой, установив android:isScrollContainer="false"
на ScrollView
, который находится над кнопками.
Ответ 4
Вы можете попытаться добавить этот атрибут динамически, поместив следующий код в метод onCreate
вашей деятельности:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
Это сработало для меня, а именно:
android:windowSoftInputMode="adjustPan"
техника его подводит.
Ответ 5
Эти ответы здесь мне не помогли. Поэтому я попробовал это:
android:windowSoftInputMode="adjustResize"
Это работало как шарм. Теперь заголовок моего приложения не исчезает. Его более гладкая.
Ответ 6
Чтобы сделать это программно в фрагменте, вы можете использовать следующий код
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
Поместите это в onResume()
Ответ 7
Добавлена только одна строка...
Добавьте android:windowSoftInputMode="stateHidden|adjustPan"
в требуемую активность вашего manifest file
.
Я только что решил:):)
Ответ 8
Для будущих читателей.
Мне нужен конкретный контроль над этой проблемой, поэтому я это сделал:
Из фрагмента или действия скройте другие виды (которые не нужны, когда клавиатура встала), , затем восстановите их, чтобы решить эту проблему: p >
rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect r = new Rect();
rootView.getWindowVisibleDisplayFrame(r);
int heightDiff = rootView.getRootView().getHeight() - (r.bottom - r.top);
if (heightDiff > 100) { // if more than 100 pixels, its probably a keyboard...
//ok now we know the keyboard is up...
view_one.setVisibility(View.GONE);
view_two.setVisibility(View.GONE);
}else{
//ok now we know the keyboard is down...
view_one.setVisibility(View.VISIBLE);
view_two.setVisibility(View.VISIBLE);
}
}
});
Ответ 9
Пользователи xamarin добавят этот код в атрибут Activity класса MainActivity,
WindowSoftInputMode =Android.Views.SoftInput.AdjustNothing
или вы можете добавить этот код Window.SetSoftInputMode(Android.Views.SoftInput.AdjustNothing)
к методу OnCreate класса MainActivity.
Ответ 10
Пока ответы не помогли мне, так как у меня есть кнопка и поле textInput (рядом) под текстовым элементом, который скрывал клавиатуру, но это решило мою проблему:
android:windowSoftInputMode="adjustResize"
Ответ 11
android:windowSoftInputMode="stateHidden|adjustNothing"
Этот код работает.
Ответ 12
Добавьте следующий код в "действие" файла манифеста.
android:windowSoftInputMode="adjustResize"
Ответ 13
Это было лучшее, что сработало для меня
android:windowSoftInputMode="adjustNothing"
Попробуйте!
Ответ 14
Это работало для меня
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
Ответ 15
Для просмотра прокрутки:
если после добавления android:windowSoftInputMode="stateHidden|adjustPan"
в ваш манифест Android и по-прежнему не работает.
Это может быть затронуто, потому что, когда клавиатура появляется, она будет в виде прокрутки, и если ваша кнопка/любые объекты не находится в вашем прокрутке, объекты будут следовать за клавиатурой и перемещать ее положение.
Проверьте свой xml, где находится ваша кнопка, и убедитесь, что она находится под вашим прокруткой. Найдите скобу, а не из нее.
Надеюсь, что это поможет.: D
Ответ 16
Ну, я смотрел эти ответы, но в моем случае я попал в одну и ту же проблему и нашел убежище благодаря очень удобному и простому решению, которое включает в себя очень маленький невинный атрибут в вашем теге Scrollview, находящемся в вашем XML файле. Это
android:isScrollContainer="false"
Удачи!
Ответ 17
В моем случае мне нужно, чтобы клавиатура оставалась скрытой, и сразу после нажатия кнопки мой макет должен быть настроен, поэтому я просто добавил эту команду в манифест, и он получил супер право.
android:windowSoftInputMode="stateHidden|adjustResize"
Ответ 18
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
Этот работает для меня.
Ответ 19
Когда вы хотите скрыть вид при открытой клавиатуре.
Добавьте это в свою активность в файле манифеста
android:windowSoftInputMode="stateHidden|adjustPan"
Ответ 20
Основное окно операции не будет изменяться, чтобы освободить место для мягкой клавиатуры. Скорее, содержимое окна будет автоматически разворачиваться таким образом, чтобы текущий фокус никогда не скрывался клавиатурой, и пользователи всегда могут видеть, что они набирают.
android:windowSoftInputMode="adjustPan"
Это может быть лучшим решением для желаемого.
Ответ 21
Попробуйте использовать это:
android:windowSoftInputMode="stateHidden|adjustPan"
Ответ 22
Этот код может вам помочь. Используйте его в методе oncreate
.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
Ответ 23
Включите в свой файл манифеста под действие, которое вы хотите отобразить. Но убедитесь, что не используете полноэкранную активность.
android:windowSoftInputMode="adjustPan"
Ответ 24
@manifest в вашей деятельности:
android:windowSoftInputMode="stateAlwaysHidden|adjustPan"