Текстовое поле скрыто под клавиатурой в Android webview
Я создал простое приложение для iPhone / Android, содержащее обычный webview. Этот webview вызывает мой веб-сайт.
на моем сайте есть несколько форм с типом ввода=text или textarea. У меня проблема с теми, когда они находятся в нижней части страницы!
1) в моем приложении iPhone клавиатура автоматически появится и переместит текстовое поле в видимую область экрана телефона. Так что делать нечего.
2) но в моем приложении для Android текстовое поле будет оставайтесь на том же месте и в конечном итоге скрыты моей клавиатурой. Поэтому единственный вариант, который есть у пользователей, - это ввести "слепой".
Как я могу это исправить? Кто-нибудь еще сталкивался с этой проблемой?
7 ответов
вот как я решил проблему. Как сказал венки, вы должны добавить
android:windowSoftInputMode="adjustResize"
к вашему тегу в AndroidManifest.XML-файл. Но в нашем случае этого было недостаточно. Убедитесь, что вы делаете это с вашими взглядами, этого и т. д. Тогда мы, наконец, сделали это.
Я сходил с ума, ничего не работает android:windowSoftInputMode="adjustResize"
может помочь, но убедитесь, что ваше приложение не в полноэкранном режиме.
удаление полного экрана для моего приложения решило проблему с изменением размера макета с помощью softkeyboard.
<item name="android:windowFullscreen">false</item>
Это будет работать:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
несколько вещей, которые я узнал, решая эту проблему --- 1. Стиль темы не должен содержать полноэкранный True 2. Добавить android: windowSoftInputMode= " adjustResize" 3. Удалить android: полосы прокрутки= " нет " - это любой.. . Ура!
Да, была такая же проблема при работе с Webview, моя была с вводом, поданным на modal. Textfield не "фокусировался" над клавиатурой. Решение состояло в том, чтобы задержать вызов функции. Надеюсь, кто-то найдет это полезным.
$("body").on("click", ".jstree-search-input", function () {
setTimeout(function(){
androidScroll();
}, 500);
});
Как вы можете видеть, он используется для ввода jstree...
function androidScroll() {
// Webview focus call (pushes the modal over keyboard)
$('.control-sidebar-open ').scrollTop($('.control-sidebar-open ')[0].scrollHeight);
}
остерегайтесь, что помимо предложенных ответов
android:windowSoftInputMode="adjustResize"
Is не работать, когда вы находитесь в погружение режим
в моем случае успехи, достигнутые:
-
добавление ниже для манифеста, webview и фрагмента:
android:windowSoftInputMode="adjustResize"
-
использование не полноэкранной темы, такой как ниже:
<style name="AppTheme" parent="android:Theme.Black.NoTitleBar"> <item name="android:windowNoTitle">true</item> <item name="android:windowActionBar">false</item> <item name="android:windowFullscreen">false</item> </style>
- не использовать ScrollView через WebView.