我已经看过几次这个问题了,但这些答案似乎都不适合我。我怀疑我做了一些令人难以置信的愚蠢的事情,并且错过了明显的(对等编程+1)。
使用PhoneGap(Cordova)2.0.0开发Android(SDK版本8+)。我有一个用户设置输入的完整页面表单,在页面上运行等间距元素,最底部有取消和提交按钮。当用户触摸上部元素时,软键盘会弹出,并且没有问题。但是,如果用户触摸了软键盘下方的元素(如果显示),则弹出键盘时会被键盘覆盖。
我尝试了清单文件中的各种咒语和化身:windowSoftInputMode =“adjustPan”(基于http://solutions.michaelbrooks.ca/2011/07/05/android-soft-keyboard-resizes-web-view/和http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft),但无济于事,键盘将隐藏元素
我的清单文件的相关部分看起来像这样
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".title"
android:label="@string/title" android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
android:windowSoftInputMode="adjustPan"
</activity>
</application>
和index.html的视口部分(我看过一些关于更改的帖子)
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
任何指针都会非常感激
欢呼声
答案 0 :(得分:4)
而不是
android:windowSoftInputMode="adjustPan"
试
android:windowSoftInputMode="adjustResize"
答案 1 :(得分:0)
android:windowSoftInputMode="adjustResize"
它在我的手机上工作正常(4.1)
答案 2 :(得分:0)
对于我来说,这也是一个很大的问题,在Android 2.x和早期的4.x.
如果我错了,请纠正我,但我认为android:windowSoftInputMode用于本机开发,并在活动开始时应用。更改该设置似乎不会影响我的PhoneGap / Cordova项目。
当编辑字段获得焦点时,我会明确地将窗口滚动到位置:
onFocusEditField = function(comp, e, eopts) {
if(Ext.os.is.Android) {
var ost = comp.element.dom.offsetTop;
this.getParent().getParent().getScrollable().getScroller().scrollTo(0, ost-50);
}
};
注意:使用Sencha Touch 2.x。