В моем приложении Ionic мне нужно анимировать элемент ion-content с помощью Angular animation, когда клавиатура появляется / исчезает.
У меня есть следующий код:
<ion-content padding [@shiftContent]="isKeyboardOpen">
и
@Component({
selector: 'page',
templateUrl: 'page.html',
animations: [
trigger('shiftContent', [
state('0', style({
top: '0px'
})),
state('1', style({
top: "-200px"
})),
transition('* <=> *', animate('50ms')),
])
]
})
и
ionViewDidEnter() {
this.keyboardOpenObs = this.keyboard.onKeyboardShow().subscribe(() => {
this.isKeyboardOpen = true;
});
this.keyboardCloseObs = this.keyboard.onKeyboardHide().subscribe(() => {
this.isKeyboardOpen = false;
});
}
Когда страница загружается и я открываю клавиатурув первый раз ничего не происходит, затем, когда я закрываю клавиатуру, она начинает работать, но в противоположном направлении (если я открываю, я получаю анимацию закрытия и наоборот).
Та же самая установка прекрасно работает, если я контролируюпеременная с кнопкой вместо события клавиатуры.
Слушатель клавиатуры открывает / закрывает работает, я попытался записать переменную на событие клавиатуры.