【问题标题】:Phonegap keyboard cover input fieldPhonegap 键盘盖输入框
【发布时间】:2016-01-17 20:00:35
【问题描述】:

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

android:configChanges="screenSize|locale"

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

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

android:windowSoftInputMode="value1|value2|valueN"

在我的 config.xml 中?

任何帮助表示赞赏 提前感谢

【问题讨论】:

  • 需要在AndoridMainfest.xml上设置
  • 就像我说的,反正我没有 AndoridMainfest.xml,谢谢
  • 你有andorid项目?
  • 不,我只是简单地按照Phonegap安装并在命令行中使用phonegap run android。我在目录中只有 config.xml
  • 根据这个github.com/phonegap/build/issues/160我可以在config.xml中添加。我该怎么做?

标签: android cordova


【解决方案1】:

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

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

您的应用程序顶部确实有“状态栏”,但我没问题...希望对您有所帮助

【讨论】:

  • 上述设置和“android-windowSoftInputMode”的组合对我有用
  • 但是如果我们想保持应用的全屏呢?!
【解决方案2】:

为什么不直接使用 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

祝你好运。

【讨论】:

【解决方案3】:

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

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

当屏幕大小低于任意值(例如 600 像素)时,键盘会调整屏幕大小,因此上面的 css 会隐藏“登录标题”。这样可以看到隐藏的输入。

【讨论】:

  • 您好,感谢您对 StackOverflow 的贡献。您正在回答的问题已经过时并且已经回答了 - 如果您也能努力解决更紧迫的问题,我们将很高兴。
  • 出现键盘时不触发媒体查询!
【解决方案4】:

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

我需要做以下两个

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

b.将下面的代码添加到 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
}

【讨论】:

    【解决方案5】:

    您在 plaforms/android 中有清单文件继续添加您的选项

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

    【讨论】:

    • 您好,我收到“[phonegap] 成功编译的 Android 应用程序”,但在我的系统上无论如何都找不到 apk 文件。因为我正在使用外部 Android 选项卡进行测试并且它不支持 USB,因此我需要手动将 apk 文件发送到我的 android 选项卡。
    • 在我安装 SDK 之前,当我运行“phonegap run android”时,它会给我一个二维码扫描码,因此很容易安装到我的 Android 设备上。但是现在当我在使用本地 SDK 构建后再次运行时,没有任何二维码可以扫描了,哈哈。请帮忙:(
    • 基本上您将设备与计算机连接并运行“phonegap run android”。这将自动在设备上部署 apk。 docs.phonegap.com/en/3.0.0/guide_cli_index.md.html
    • 哦,好的,我现在明白了。谢谢!
    【解决方案6】:

    您的 AndroidMainFest 位置:项目名称 -> 平台 -> android -> AndroidMainFest.xml 您的 apk 位置:Project->bin->projectname.apk

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

    【讨论】:

      【解决方案7】:

      只有一个解决方案适用于我的全屏应用程序,它是添加到 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

      【讨论】:

      • 你能发布一个用 CSS “调整视图”的例子吗?我认为您的回答很有希望,但并不完整。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多