очень наивная реализация:
- добавьте переменную, которая будет вашим логическим флагом для состояния (показано / скрыто)
- добавьте ссылку на детектор изменений в ваш компонент (каквам нужно изменить cdr этого логического значения для распространения пользовательского интерфейса)
- связать свой верхний / нижний колонтитул с помощью директивы * ngIf
Примерно так:
import { Component, ChangeDetectorRef } from '@angular/core';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage2 {
headerVisible: boolean = false;
constructor(
public cdr: ChangeDetectorRef
) {
}
scrollState(event) {
if (event.directionY == "up") {
this.headerVisible = false;
} else {
this.headerVisible = true;
}
this.cdr.detectChanges();
}
}
И в вашем шаблоне:
<ion-header *ngIf="headerVisible">
<ion-navbar>
<ion-title>
Ionic Blank
</ion-title>
</ion-navbar>
</ion-header>
Но, скорее всего, вместо * ng, если вы захотите изменить высоту верхнего / нижнего колонтитула, чтобы ваш общий шаблон работал лучше с полями.
Также обратите внимание, чтов идеале вы не хотите, чтобы событие прокрутки "спам", поэтому вам нужно реализовать правильный способ захвата состояния (вверх или вниз) без него (debounce / throttle it)