Окна Android 2.2 Web View перемещаются вверх, когда появляется виртуальная клавиатура - PullRequest
5 голосов
/ 23 февраля 2011

Я разрабатываю приложение с помощью Phonegap на Android. Все работает нормально в OS 2.1, но в OS 2.2, когда мы щелкаем по любому текстовому полю ввода, появляется клавиатура, и все окно перемещается в сторону ВВЕРХ, и поле типа ввода становится невидимым. Кто-нибудь может сказать мне, в чем именно проблема, и можно ли ее решить с помощью javascript? Как остановить функцию изменения размера окон на Android 2.2?

Я обнаружил ту же проблему на Ввод текста на телефоне Android не отображается, когда появляется клавиатура для веб-просмотра? также, но не решение.

Ответы [ 5 ]

11 голосов
/ 22 сентября 2011

Добавление этого

android:windowSoftInputMode="adjustPan"

чтобы ваш AndroidManifest.xml решил проблему

6 голосов
/ 21 марта 2011

Я пытался установить следующее свойство css, и оно работало для меня на Android 2.2

html, body {overflow: hidden;}

Не уверен, почему это работает, но этоработает ...

Примечание: я использовал плагин "iScroll" для прокрутки в моем приложении.

2 голосов
/ 24 февраля 2011

Я никогда не использовал PhoneGap, но я зашел на их сайт и должен понять, что он все еще работает через Eclipse и ADT; если это так, то эту проблему можно решить с помощью файла AndroidManifest.xml, добавив в тег <activity> следующее действие для действия, вызывающего программную клавиатуру:

<activity android:windowSoftInputMode="adjustNothing"
          //other flags
/>  

На самом деле, похоже, это не так. Документ API, который я читал, был на самом деле для Honeycomb, этот флаг отсутствует в 2.2. Сожалею. Вся моя работа недавно была на планшетах, и я забыл, какую версию SDK я добавил в закладки для чтения с тех пор, как готовил в последнее время.

1 голос
/ 24 февраля 2011

Возможно, вам придется включить этот сценарий, чтобы избежать прокрутки приложения, когда поле ввода текста получает фокус:)

function preventBehavior(e) 
{ 
  e.preventDefault(); 
};document.addEventListener("touchmove", preventBehavior, false);
0 голосов
/ 23 января 2014

это поведение на Android 2.2 добавляется, когда на странице есть один элемент с атрибутом css «transform» (например, transform: translate3d (0px, 0px, 0px);) удаление этих объявлений исправило проблему для меня. (переполнение: скрыто, но вы больше не можете прокручивать приложение)

PS: переопределение деклараций, к сожалению, не работает

...