NativeScript - android: windowSoftInputMode = "AdjustResize" не вызывает событие изменения макета в примере проекта - PullRequest
0 голосов
/ 30 апреля 2020

Я пишу приложение с использованием NativeScript 6 и Angular 8.

Я предоставил мой пример кода.

У меня есть страница входа с текстовым полем.

В моем демонстрационном проекте android:windowSoftInputMode="adjustResize" не вызывает событие изменения макета.

Обычно, когда пользователю отображается клавиатура, я хочу прослушать событие layoutChanged: https://docs.nativescript.org/ui/components/page#page -events

Так что я могу рассчитать sh мой макет.

Вот мой репозиторий: https://github.com/aubrey-fowler/KeyBoardHelp

В моем В производственном проекте он работает по той же методике.

Почему layoutChanged не вызывается? Похоже, что android:windowSoftInputMode="adjustResize" никак не влияет на мой проект. Представление не увеличивается sh.

private onLayoutChanged(args: EventData) {

    console.log(' on layout changed ');

    const screenHeight = screen.mainScreen.heightPixels;

    const pageHeight = (args.object as View).getMeasuredHeight();

    const diff = screenHeight - pageHeight;

    if (diff > screenHeight * 0.15) {
        this.setIsKeyboardShowing(true);
    } else {
        this.setIsKeyboardShowing(false);
    }
    console.log(' this.isKeyboardShowing ', this.isKeyboardShowing);
}

private setIsKeyboardShowing(showing: boolean) {
    this.ngZone.run( () => {
        this.isKeyboardShowing = showing;
     });
}

Я попытался пересобрать проект и добавить / удалить папку платформ, но безрезультатно.

...