当Virtual Keyboard出现时,Android 2.2 Web View窗口会向上移动

时间:2011-02-23 09:46:03

标签: javascript android scroll cordova

我正在Android上使用Phonegap开发应用程序。在操作系统2.1上一切正常,但在OS 2.2上,当我们点击任何输入类型的文本字段时,键盘出现,整个窗口移动到UP侧,输入类型字段变为不可见。任何人都能告诉我究竟是什么问题,可以用javascript解决吗?如何在Android 2.2上停止Windows大小调整功能?

我在Text Input on android phone is not in view when the keyboard for webview comes up?上也发现了同样的问题,但不是解决方案。

5 个答案:

答案 0 :(得分:11)

添加此

android:windowSoftInputMode="adjustPan"

到您的AndroidManifest.xml将解决问题

答案 1 :(得分:6)

我尝试使用以下css属性,它在Android 2.2上为我工作

html,body {overflow:hidden;}

不确定它为什么有效,但它正在运作......

注意:我使用“iScroll”插件在我的应用程序中滚动。

答案 2 :(得分:2)

我从未使用过PhoneGap,但我去了他们的网站,我明白它仍然可以通过Eclipse和ADT工作;如果是这种情况,则可以通过AndroidManifest.xml文件解决此问题,方法是将以下内容添加到调用软键盘的活动的<activity>标记中:

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

实际上情况似乎并非如此。我正在阅读的API文件实际上是针对Honeycomb的,这个标志不在2.2中。抱歉。我最近的所有工作都是在平板电脑上进行的,我忘记了自从我最近准备阅读以来,我为哪些版本的SDK添加了书签。

答案 3 :(得分:1)

您可能必须启用此脚本,以避免在文本输入字段获得焦点时滚动应用:)

function preventBehavior(e) 
{ 
  e.preventDefault(); 
};document.addEventListener("touchmove", preventBehavior, false);

答案 4 :(得分:0)

当在页面中有一个带有“transform”css属性的元素时(例如transform:translate3d(0px,0px,0px);),在Android 2.2上附加此行为 删除这些声明为我解决了问题。 (溢出:隐藏了,但你不能再滚动应用程序了)

PS:覆盖声明并不会令人不幸