我尝试使用JavaScript实现类似于Ionic 3的WhatsApp信使功能,并遇到了键盘问题。当我单击输入文本区域时,键盘将按键盘打开的数量移动整个App。如果我使用以下代码禁用滚动功能,那么我的输入文本区域字段将隐藏在键盘后面。
我想要的是禁用Scroll但输入文本区域与键盘一起向上移动。有谁知道如何巧妙地解决这个问题?非常感谢!!
{
platforms : {
ios : {
scrollAssist: false,
autoFocusAssist: false
}
}
}
答案 0 :(得分:0)
如果我理解你正确地查看keyboard plugin它有方法disableScroll(禁用)
答案 1 :(得分:0)
要做的第一件事是使用ionic-plugin-keyboard
阻止本机浏览器向上推/滚动内容窗格,并允许键盘滑过并覆盖现有内容:
constructor(private keyboard: Keyboard) {
this.platform.ready().then(() => {
// ...
this.keyboard.disableScroll(false); // <- like this
// ...
}
注意:Keyboard.disableScroll()
ios和windows仅支持 。
是的,这解决了部分问题。另一部分是我的输入文本框现在隐藏在开始键盘后面。
就像你在this OS answer中看到的那样,我发现以下配置看起来效果更好(请记住,键盘仍然存在一些问题仍然存在):
@NgModule({
declarations: [
MyApp,
//...
],
imports: [
//...
IonicModule.forRoot(MyApp, {
scrollPadding: false,
scrollAssist: true,
autoFocusAssist: false
})
],
bootstrap: [IonicApp],
entryComponents: [
// ...
],
providers: [
// ...
]
})
export class AppModule { }
关键是scrollPadding: false
和scrollAssist: true
:通过保留scrollAssist: true
,我们可以避免键盘隐藏输入(如果它靠近页面底部),并设置{ {1}}我们还在隐藏键盘后避免了一些与空白空间相关的奇怪错误。