Xamarin.Forms, Prism.Forms, Android Lolliop 5.1.1, переходы / анимация навигации

У меня проблема при использовании Xamarin.Forms вместе с Prism.Forms (Unity) на устройстве Android 5.1.1 (Lollipop).

В частности, если я перехожу к формам с помощью «animation: true», эти формы не всегда работают правильно впоследствии - в частности, формы не всегда обновляются в ответ на событие PropertyChanged. Формы отлично работают на Android 6.0 и 7.1 (это единственные устройства, доступные для тестирования).

Если я изменю все свои вызовы на INavigationService.NavigateAsync так, что «анимация» будет ложной, эти формы будут вести себя правильно до тех пор, пока я не буду использовать аппаратную кнопку «назад» для выхода из формы (поскольку она затем снова анимируется). Я даже создал переопределение «UnityPageNavigationService», которое переопределяет «анимированный» параметр при вызовах «DoPop», «DoPush» и «GoBackAsync» (я почти уверен, что метод NavigateAsync в конечном итоге вызывает один из них для всех требований, кроме в случае изменения содержимого MasterDetailPage).

Я почти уверен, что это проблема Xamarin, а не проблема Prism, поскольку, просмотрев код на GitHub, мне кажется, что реализация Prism INavigationService в конечном итоге возвращается к методам Page.Navigation.PushAsync (...) и т. Д. и я также почти уверен, что служба навигации Prism не перехватывает кнопку возврата и не взаимодействует с ней.

  • Есть ли способ отключить анимацию, когда навигация запускается аппаратной кнопкой возврата?

  • Есть ли способ переопределить реализацию INavigation для платформы (в данном случае, очевидно, Android)?

  • Есть ли здесь известная проблема и / или обходной путь для Xamarin Forms на Lollipop 5.1.1?

Я использую Xamarin Forms 2.3.4.231, Prism.Forms 6.3 и Prism.Unity.Forms 6.3.


person Martin Robins    schedule 10.05.2017    source источник


Ответы (1)


В конце концов я решил эту проблему, и это не имело ничего общего с Prism Navigation или Xamarin.Forms, а было вызвано тем, что элемент AndroidManifest.xml не был первым дочерним элементом элемента.

Я отсортировал дочерние элементы элемента по алфавиту, образуя последний элемент, и это сломало его (но не в более поздних версиях Android).

person Martin Robins    schedule 02.06.2017