Hi.
I am building a Xamarin.Forms app using PRISM and I am getting the weirdest behavior.
I am pretty sure that it started right after I updated PRISM when the made their IInitialize
breaking change.
Here is the flow of my app.
The first screen is the Login page and I am navigating to it in my OnInitialized
method in App.xaml.cs
await NavigationService.NavigateAsync("NavigationPage/MainPage");
Once the user is logged in I am using the following line to navigate to the "home" page:
await NavigationService.NavigateAsync("/MainMasterPage/NavigationPage/PlayersHomePage");
This is where I get the white screen for a second and then the tabbed page loads up OK.
I notices that if I remove the Navigation page the white screen does not show up, but I cant do without it.
the PlayersHomePage
is a TabbedPage
with 3 tabs:
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms" xmlns:views="clr-namespace:FplMatchdayLive.Views" prism:ViewModelLocator.AutowireViewModel="True" Title="{Binding Title}" x:Class="xxx.Views.PlayersHomePage"> <TabbedPage.Children> <views:TeamPage></views:TeamPage> <views:LeaguesPage></views:LeaguesPage> <views:FixturesPage></views:FixturesPage> </TabbedPage.Children> </TabbedPage>
in the PlayersHomePage
code behinde I am using IInitalize
to initialize all the tabs:
public partial class PlayersHomePage : TabbedPage, IInitialize { public PlayersHomePage() { InitializeComponent(); } public void Initialize(INavigationParameters parameters) { if (parameters.GetNavigationMode() == NavigationMode.New) { // Prism always raises OnNavigatedTo on 1st tabbed page so this prevents the first tab being initialised twice if (Children.Count == 1) { return; } for (var pageIndex = 1; pageIndex < Children.Count; pageIndex++) { var page = Children[pageIndex]; (page?.BindingContext as INavigationAware)?.OnNavigatedTo(parameters); } } } }
I tried removing all the tabs from the TabbedPage thinking its the initialization that is causing this but it did not help.
Any ideas as to how to solve it?