【发布时间】:2014-03-11 06:05:37
【问题描述】:
我正在为 android 创建一个 web 应用程序。每当我点击一个文本字段时,键盘就会出现,它会调整屏幕内的应用程序组件的大小。
如何避免这种情况?
我知道对于原生 android,我们有 android:windowSoftInputMode,但我正在使用 sencha 来开发应用程序。 webapp 是否也有类似的可用..
请帮忙。
【问题讨论】:
标签: javascript android html extjs
我正在为 android 创建一个 web 应用程序。每当我点击一个文本字段时,键盘就会出现,它会调整屏幕内的应用程序组件的大小。
如何避免这种情况?
我知道对于原生 android,我们有 android:windowSoftInputMode,但我正在使用 sencha 来开发应用程序。 webapp 是否也有类似的可用..
请帮忙。
【问题讨论】:
标签: javascript android html extjs
将此代码放入 app.js 的启动函数中对我有用:
if (Ext.os.is.Android) {
Ext.Viewport.on('painted', function () {
Ext.Viewport.setHeight(window.innerHeight);
});
}
if (Ext.os.is.iOS) {
Ext.Viewport.on('painted', function () {
Ext.Viewport.setHeight(window.innerHeight);
});
}
【讨论】:
我假设您正在使用带有 Phonegap 的 Sencha。
要处理android键盘,在原生环境中,您需要更改AndroidManifest.xml中的“android:windowSoftInputMode”属性。在 Sencha 项目中,您需要做的就是更改 config.xml 文件(在应用根目录中)。
在此处查找文档:
http://docs.build.phonegap.com/en_US/#googtrans%28en%29
http://docs.build.phonegap.com/en_US/configuring_basics.md.html#The%20Basics
【讨论】:
我找到了解决办法。
编辑Android清单文件中的主要活动添加此属性。 android:windowSoftInputMode="adjustNothing"
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:windowSoftInputMode="adjustNothing" android:label="@string/app_name" android:launchMode="singleTop" android:name="com.company.appName.MainActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.Black.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
【讨论】: