我有一个html页面,里面有一本非常大的书,有一个很大的垂直滚动。
当我打开输入文本时,键盘需要很长时间才能显示和写入, 似乎当我打开和关闭键盘时,离子调整视口大小,重新计算整本书的位置,造成过度延迟。
有没有人有这方面的解决方案,或者我可以关注的来源?
[Ionic,Cordova]
答案 0 :(得分:1)
删除“ion-content”并使用“ion-scroll”。也许它可以帮助你。
您可以在此链接中找到更多详细信息; http://ionicframework.com/docs/api/directive/ionScroll/
答案 1 :(得分:1)
您可以通过禁用键盘打开时滚动来解决此问题。 Ionic的Keyboard plugin允许您指定键盘是否应弹出内容或滚动页面以容纳新的较小视口。要实现这一点,以下是Ionic v2的一些步骤,但您也可以将此插件用于Ionic v1项目。
安装插件将键盘插件添加到您的Ionic应用程序。您不必使用CLI,但我个人觉得这种方式最简单。
$ ionic plugin add ionic-plugin-keyboard
$ npm install --save @ionic-native/keyboard
添加到文件将插件导入您的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
文件。
禁用滚动在app.component.ts
文件中定义的类中,应该有一个名为initializeApp()
的函数,其中可能包含其他首选项,例如隐藏隐藏屏幕和调整状态栏样式。在this.platform.ready().then()
回调中添加以下行。
this.keyboard.disableScroll(true);
您的initializeApp
函数现在看起来应该是这样的:
initializeApp() {
this.platform.ready().then(() => {
this.keyboard.disableScroll(true);
});
}
请注意,如果您使用的是<ion-searchbar>
而不是<input>
,那么似乎有一些操作会导致Ionic到resize容器,导致空格出现在应用程序的顶部或底部。使用<ion-searchbar>
的取消按钮或单击某些其他非标准离子元素时可能会发生这种情况。