显示的离子键盘延迟 - 隐藏在一个大的HTML文档中

时间:2016-10-10 14:50:00

标签: android cordova ionic-framework

我有一个html页面,里面有一本非常大的书,有一个很大的垂直滚动。

当我打开输入文本时,键盘需要很长时间才能显示和写入, 似乎当我打开和关闭键盘时,离子调整视口大小,重新计算整本书的位置,造成过度延迟。

有没有人有这方面的解决方案,或者我可以关注的来源?

[Ionic,Cordova]

2 个答案:

答案 0 :(得分:1)

删除“ion-content”并使用“ion-scroll”。也许它可以帮助你。

您可以在此链接中找到更多详细信息; http://ionicframework.com/docs/api/directive/ionScroll/

答案 1 :(得分:1)

您可以通过禁用键盘打开时滚动来解决此问题。 Ionic的Keyboard plugin允许您指定键盘是否应弹出内容或滚动页面以容纳新的较小视口。要实现这一点,以下是Ionic v2的一些步骤,但您也可以将此插件用于Ionic v1项目。

禁用键盘滚动

  1. 安装插件将键盘插件添加到您的Ionic应用程序。您不必使用CLI,但我个人觉得这种方式最简单。

    $ ionic plugin add ionic-plugin-keyboard
    $ npm install --save @ionic-native/keyboard
    
  2. 添加到文件将插件导入您的app.component.ts文件。此文件应位于src/app/app.components.ts下。使用其他import语法在文件顶部添加import参数。

    import { Keyboard } from '@ionic-native/keyboard';
    

    您还需要将Keyboard添加到@Component下的提供商列表中。以下是添加后的内容:

    @Component({
      templateUrl: 'app.html',
      providers: [
        Keyboard
      ]
    })
    

    请注意,这是在app.component.ts文件中,而不是您要调整行为的特定页面的.ts文件。

    < / LI>
  3. 禁用滚动app.component.ts文件中定义的类中,应该有一个名为initializeApp()的函数,其中可能包含其他首选项,例如隐藏隐藏屏幕和调整状态栏样式。在this.platform.ready().then()回调中添加以下行。

    this.keyboard.disableScroll(true);
    

    您的initializeApp函数现在看起来应该是这样的:

    initializeApp() {
      this.platform.ready().then(() => {
        this.keyboard.disableScroll(true);
      });
    }
    
  4. 请注意,如果您使用的是<ion-searchbar>而不是<input>,那么似乎有一些操作会导致Ionic到resize容器,导致空格出现在应用程序的顶部或底部。使用<ion-searchbar>的取消按钮或单击某些其他非标准离子元素时可能会发生这种情况。