我有一个登录表单的简单视图。在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
我还有什么需要做的吗?
答案 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都会尝试阻止键盘 从出现时隐藏输入和可聚焦元素 将它们滚动到视图中。为了使这个工作,任何焦点 元素必须位于滚动视图或指令(如内容)中 有滚动视图。
答案 3 :(得分:0)
在我的情况下,有一个页脚在键盘显示时隐藏输入。
看到github.com/driftyco/ionic/issues/2151,虽然它是一个封闭的错误,但它仍然是一个问题。
对我而言,滚动似乎并不知道如何正确计算它是否应该滚动,因为它在计算时并没有考虑到页脚。如果内容从第一个位置足够大,那么它知道它必须滚动。
我最终使用
$timeout(function() {
$ionicScrollDelegate.scrollBottom(true);
}, 300);
并在<br/>
的底部添加了一些ion-content
。
有足够的空间,所以它不会对我有任何影响,bug会导致滚动正常工作。