Phonegap键盘盖输入字段

时间:2013-09-11 04:36:00

标签: android cordova

我是Android应用程序开发的新手,我遇到了键盘覆盖输入字段的问题,我进行了搜索,然后才知道我需要添加

  

机器人:configChanges = “屏幕尺寸|区域设置”

到xml文件。但是我的目录中没有AndroidManifest.xml。我只有config.xml哪个phonegap提供给我。

然后我发现了这个https://github.com/phonegap/build/issues/160,但我不知道在哪里放这个

  

机器人:windowSoftInputMode = “VALUE1 |值2 |值N”

在我的config.xml中?

感谢任何帮助 谢谢你

7 个答案:

答案 0 :(得分:8)

尝试了@markj接受的答案,但它对我不起作用。 DID的工作是将其添加到我的config.xml中:

<preference name="fullscreen" value="false" />

你确实在应用程序的顶部获得了“状态栏”但对我来说没问题...希望有所帮助

答案 1 :(得分:3)

为什么不使用PhoneGap Build网站上传zip文件?并忘记Amit正在谈论的清单文件。我认为他只会让一切更加混乱。您需要了解本地开发版本和PhoneGap在线版本之间的区别。如果您只想测试应用程序,则无需拥有本地开发环境。您可以压缩www文件夹并将其上传到PhoneGap Build服务。没有命令行的东西,没有复杂的设置。如果要编辑软键盘设置,可以编辑config.xml并插入以下内容:

<preference name="android-windowSoftInputMode" value="stateVisible|adjustResize" />

...或者windowSoftInputMode所需的任何选项。

文档在这里:

https://build.phonegap.com/docs/config-xml#platform

http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft

祝你好运。

答案 2 :(得分:2)

我使用css媒体查询解决了这个问题。

@media (max-height: 600px) {
  .login-header i {
    display: none;
  }
}

键盘调整屏幕大小,因此上面的css隐藏了“登录标题”&#39;当屏幕尺寸低于任意值(例如600px)时。这允许隐藏输入进入视图。

答案 3 :(得分:2)

使用

<preference name="fullscreen" value="true" />

我需要做以下两个

一个。使用https://github.com/madebycm/AndroidBug5497Workaround/blob/master/AndroidBug5497Workaround.java确保cordova / phonegap可以看到窗口高度的变化

湾将以下代码添加到js。根据html的编写方式,这一步是必需的

document.addEventListener('deviceready', onDeviceReady, false);

function onDeviceReady () {
    document.addEventListener('hidekeyboard', onKeyboardHide, false);
    document.addEventListener('showkeyboard', onKeyboardShow, false);
}

function onKeyboardHide() {
    console.log('onKeyboardHide');
}

function onKeyboardShow(e) {
  console.log('onKeyboardShow');
  setTimeout(function() {
    e.target.activeElement.scrollIntoViewIfNeeded()
  }, 500) //needed timeout to wait for viewport to resize
}

答案 4 :(得分:0)

你有平台/ android中的清单文件继续并添加你的选项

phonegap run android会将您的phonegap项目的android版本添加到平台目录,请阅读http://docs.phonegap.com/en/edge/guide_platforms_android_index.md.html#Android%20Platform%20Guide

答案 5 :(得分:0)

您的AndroidMainFest位置:Projectname - &gt;平台 - &gt; android - &gt; AndroidMainFest.xml 您的apk位置:Project-&gt; bin-&gt; projectname.apk

设置android:windowSoftInputMode="stateVisible|adjustResize" . . . >

答案 6 :(得分:0)

只有一个解决方案适用于我的全屏应用,它是添加到Cordova应用程序ionic-plugin-keyboard插件

cordova plugin add com.ionic.keyboard

JS代码:

// This event fires when the keyboard will hide
window.addEventListener('native.keyboardshow', keyboardShowHandler);

function keyboardShowHandler(e){
    $("body").addClass("keyboardOn");
}

// This event fires when the keyboard will show
window.addEventListener('native.keyboardhide', keyboardHideHandler);

function keyboardHideHandler(e){
    $("body").removeClass("keyboardOn");
}

之后您可以使用CSS调整视图。

参考:https://stackoverflow.com/a/25823491/634275