2016-12-12 14 views
1

現在、私は自分のアプリケーションにMasterDetailPageを使用しています。ページの作成に非常に時間がかかることがわかったので、アプリケーションを選択した後、メニューをマスターページから選択します。Xamarinフォーム:コンテンツページの作成をスピードアップする方法

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); 

私はその記事を削除した、私は前に質問を掲載しているが、私はそれがマスター・ディテールの問題だと思いました。今問題はitem.GetPage.Invokeから発生したことに気付きました。

GetPageを呼び出す代わりに直接新しいキーワードを使用して作成した場合でも、1秒以上かかることがあります。

時間Bと時間Cはどちらも50ms〜100msしかかかりません。時間Aは最悪です。

高速化または非同期化を行う方法はありますか。

iOSでは、時刻Aと時刻Cにかかる時間が長くかかることがあります。私は両方の時間で340msになるだろう。私はiPhone上で実行されている多くのアプリがないため、わからない。この部分のiPhoneのパフォーマンスは許容されます。少なくとも、1秒待つ必要はありません。

答えて

0

異なるナビゲーションページ間の移行をスピードアップできないにしても、私はバックグラウンドタスクでそれを行うことにしました。そして、MasterDetailPageのバックグラウンドは新しいページと同じに設定されているので、見苦しくはありません。

関連する問題