Xamarin Form:如何加快内容页面的创建

Xamarin Form: How to speed up the creation of the content page

目前我正在为我的应用程序使用 MasterDetailPage,我意识到页面的创建可能需要很长时间,大约一秒钟,这使得应用程序在从母版页中选择菜单后会冻结片刻。

var TimeA = DateTime.Now;
                var page = (Page)item.GetPage.Invoke();
                System.Diagnostics.Debug.WriteLine("Time A Taken to change = " + DateTime.Now.Subtract(TimeA).TotalMilliseconds);

                var TimeB = DateTime.Now;
                var navigationPage = new NavigationPage(page); 
                navigationPage.BarBackgroundColor = ((NavigationPage)Detail).BarBackgroundColor;
                navigationPage.BarTextColor = ((NavigationPage)Detail).BarTextColor;
                System.Diagnostics.Debug.WriteLine("Time B Taken to change = " + DateTime.Now.Subtract(TimeB).TotalMilliseconds);

                var TimeC = DateTime.Now;
                Detail = navigationPage;
                Detail.Title = item.Title;
                System.Diagnostics.Debug.WriteLine("Time C Taken to change = " + DateTime.Now.Subtract(TimeC).TotalMilliseconds);

我之前 post 提出过一个问题,但我认为这是主要细节问题,我已将其删除 post。现在我意识到问题出在 item.GetPage.Invoke.

Func<Page> GetPage = () => { return new DemoPage(); }

即使我直接使用new关键字创建,而不是调用GetPage,耗时还是一秒。

时间B和时间C都只需要50ms到100ms,我可以接受。时间A是最糟糕的。

有没有办法加快速度或异步进行。

在iOS,时间A和时间C花费的时间可能会更长。两次我都会达到 340 毫秒。我不确定,因为 iPhone 上的应用程序不多 运行。 iPhone这部分的表现还可以,至少我不用等一秒钟。

虽然我不能加快不同navigationPage之间的转换速度,但我决定在后台任务中进行,并且MasterDetailPage的背景设置为与新页面相同,这样看起来不会很别扭。