Nativescript - мигающий переход Tabview - PullRequest
0 голосов
/ 17 октября 2018

У меня возникла проблема с шаблоном 'Tab Navigation' Nativescript (V4) с Angular , с Android, на эмуляторе ( Nougat v7.1.1 ) или наустройство ( Oreo 8.1 ).

При переходе между вкладками экран «мигает».Поведение кажется связанным с использованием нескольких «page-router-outlet».

Я попробовал решение, описанное Nativescript Forum , но безуспешно.

С <item name=“android:windowAnimationStyle”>@null</item> в AppThemeBase я вижу ошибку типа

System.err: com.tns.NativeScriptException:
System.err: Calling js method onViewAttachedToWindow failed
System.err:
System.err: TypeError: Cannot set property 'transitionType' of null

(как на эмуляторе, так и на устройстве).

небольшое видео, показывающее проблему

Если у кого-то есть идея?:)

1 Ответ

0 голосов
/ 25 октября 2018

Мы обнаружили, что эта проблема связана с двумя ключевыми моментами в основных модулях NativeScript:

  • Для iOS нам нужен способ установить панель навигации скрытой намного раньше и без анимации, то есть:

constructor(frame: Frame) { this._controller = UINavigationControllerImpl.initWithOwner(new WeakRef(frame)); // This needs to be set early to avoid white flashes when changing page-router-outlets preferably in the constructor for iOS frame this._controller.setNavigationBarHiddenAnimated(true, false); }

Мы также обнаружили, что iOS помогает установить прозрачный фон на контроллерах при их создании, т. Е. В page.ios.ts, где это происходит:

const controller = UIViewControllerImpl.initWithOwner(new WeakRef(this)); this.viewController = this._ios = controller; // controller.view.backgroundColor = whiteColor; (This is what it's doing now which obviously could cause a white flash) controller.view.backgroundColor = new Color("#00000000").ios; // instead could ensure transparent to start

Подробнее здесь: https://github.com/NativeScript/NativeScript/issues/6454#issuecomment-433176056

...