键盘显示时,离子离子含量不会向下滚动(Android)

时间:2015-01-08 09:57:14

标签: javascript angularjs cordova ionic-framework

我有一个登录表单的简单视图。在Android上,如果打开键盘,则内容不会向上滚动以防止它进入键盘后面。

我按照文档中的键盘说明,阅读了很多论坛帖子,但我还没弄明白。

我安装了键盘插件com.ionic.keyboard

这是页面的结构:

<ion-nav-view>
  <ion-view>
    <ion-content>
       ...<form>..Login form..</form>...
    </ion-content>
  </ion-view>
</ion-nav-view>

如果我在页面中添加了一些额外的虚拟内容,则表明离子内容确实可以滚动。但是,当通过聚焦输入打开键盘时,它不会向上移动。

  • 离子版? 1.0.0-beta.13
  • 我的应用是全屏吗?否
  • 我是否测试过键盘插件是否正常工作?是

我还有什么需要做的吗?

4 个答案:

答案 0 :(得分:2)

在声明键盘插件的部分中,尝试添加:

  if (window.cordova && window.cordova.plugins.Keyboard) {
    cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
    cordova.plugins.Keyboard.disableScroll(false);

  }

答案 1 :(得分:1)

我通过在 AndroidManifest.xml 文件中设置以下值来阻止我的项目中的滚动属性。

android:windowSoftInputMode = "adjustNothing"

请在 AndroidManifest.xml 中检查android:windowSoftInputMode值是否为adjustResize。如果没有,请将其更新为adjustResize

我希望你能这样做。感谢

答案 2 :(得分:1)

  

在Android和iOS上,Ionic都会尝试阻止键盘   从出现时隐藏输入和可聚焦元素   将它们滚动到视图中。为了使这个工作,任何焦点   元素必须位于滚动视图或指令(如内容)中   有滚动视图。

description from documentation here

答案 3 :(得分:0)

在我的情况下,有一个页脚在键盘显示时隐藏输入。

看到github.com/driftyco/ionic/issues/2151,虽然它是一个封闭的错误,但它仍然是一个问题。

对我而言,滚动似乎并不知道如何正确计算它是否应该滚动,因为它在计算时并没有考虑到页脚。如果内容从第一个位置足够大,那么它知道它必须滚动。

我最终使用

$timeout(function() {
    $ionicScrollDelegate.scrollBottom(true);
}, 300);

并在<br/>的底部添加了一些ion-content。 有足够的空间,所以它不会对我有任何影响,bug会导致滚动正常工作。