您必须为键盘交互添加一个事件监听器,以向 body-tag 添加(或删除)一些 css 类。在 ionic1 中,默认情况下从框架中添加了“hide-on-keyboard-open”类。在 ionic2 中,您必须走“自定义实现路径”。所以,这就是你要找的东西:
1)如ionic2文档中所述安装键盘插件和node_modules:
ionic plugin add ionic-plugin-keyboard
npm install --save @ionic-native/keyboard
https://ionicframework.com/docs/native/keyboard/
2) 将插件添加到您的 app.modules.ts
3) 在 app.component.ts 的 device-ready 事件中添加所需的事件列表:
this.platform.ready().then(() => {
// Okay, so the platform is ready and our plugins are available.
// Here you can do any higher level native things you might need.
this.statusBar.styleDefault();
this.keyboard.onKeyboardShow().subscribe(() => {
document.body.classList.add('keyboard-is-open');
});
this.keyboard.onKeyboardHide().subscribe(() => {
document.body.classList.remove('keyboard-is-open');
});
})
4) 使用附加的类属性 (hideElementOnKeyboardShown) 将类定义添加到您的 app.scss
body.keyboard-is-open .hideElementOnKeyboardShown{
display: none;
}
5) 将类添加到所需的元素,例如页脚、div 或其他:
<ion-footer class="hideElementOnKeyboardShown">
<button round ion-button (click)="onLogin()" block>
<ion-icon name="logo-facebook" padding></ion-icon>
Login
</button>
</ion-footer>
6) 在这种情况下,将 ion-footer 标签放在 content-tag 中,否则在显示键盘时计算的 viewheight 不正确。
祝你今天过得愉快!