Окно Android не изменяет размер/панорамирование при открытии softinput из WebView
Моя проблема следующая.
- Приложение использует тему
android:Theme.NoTitleBar.Fullscreen
, и есть только один Activity
, все остальные представления Fragment
- У меня
WebView
внутри ViewPager Fragment
, который находится внутри ScrollView
- Содержимое HTML имеет поля ввода
- Я нажимаю поле ввода, которое находится внизу
WebView
- Откроется мягкий ввод, но
Window
не изменен и не изменен.
Я пробовал установку android:windowSoftInputMode="adjustResize"
или android:windowSoftInputMode="adjustPan"
в моем манифесте для Activity
. Также попытался установить один из них в java.
Обычный EditText
внутри a ScrollView
в моем приложении правильно настраивает панорамирование, чтобы пользователь мог видеть, куда он/она печатает.
UPDATE:
Если нет рабочего решения для настройки окна, есть ли способ получить WebView
, думаю, что контент похож на половину высоты экрана больше, чтобы пользователь мог хотя бы прокручивать видимый вход.
Ответы
Ответ 1
Хорошо, так что это была проблема с самого начала, и Google еще не исправил ее, может быть, никогда. Но из проблемы: http://code.google.com/p/android/issues/detail?id=5497 Я нашел потенциальное обходное решение для этого: fooobar.com/questions/16389/...
Я переопределил WebView
, и я просто добавил код для него, и он работает достаточно хорошо, чтобы настроить окно. Это возможно, хотя код не всегда работает из-за различных высот экрана и может потребоваться некоторые настройки, но во многих случаях он работает нормально, и я согласен с этим, поскольку это единственное рабочее решение, которое я видел.
Ответ 2
Попробуйте android:isScrollContainer="false"
в ScrollView. Согласно Android docx.
Установите это, если представление будет представлять собой прокручивающийся контейнер, что означает, что его можно изменить, чтобы уменьшить его общее окно, чтобы пространство для метода ввода
Надеюсь, что это решит вашу проблему.
Ответ 3
Вот что мы сделали, чтобы заставить его работать.
Как и в случае с дизайном, FLAG_FULLSCREEN не позволяет регулировать представления при видимости клавиатуры, мы применили подход с пользовательским прослушивателем уведомлений клавиатуры и прослушивателем OnTouch Webview.
KeyboardHelper.java - чтобы узнать видимость клавиатуры
Настройка полноэкранного режима просмотра Webview - Чтобы настроить веб-просмотр на основе уведомления и точки касания.
Надеюсь, что это поможет!