2017-12-15 15 views
0

私はあるページから別のページ(アンドロイドデバイスのxamarinフォーム)にナビゲートしていますが、いくつかの操作の後にUIにマップを追加しています。 UIが1秒間点滅しているのを感じることができます。我々は適切にUIに影響を与えることなく、UI正しくページにUIビューを追加する方法後ろのコードでUIにマップを追加するときにアプリケーションがフリーズする

 private void SetMaptoUI() 
      { 
       //add map to UI 
       mapHolder.Children.Add(map); 
       mapHolder.Children.Add(new Image() { Source = "redpin.png", HeightRequest = 50, WidthRequest = 33, Margin = Device.OnPlatform(new Thickness(0, 0, 0, 60), new Thickness(0, 0, 0, 25), 0), 
        VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center }); 
} 

にマップを追加するappication

public Constructor(string _jobOrderId, JobOrder jobOrderDetails) 
     { 
      InitializeComponent(); 
      NavigationPage.SetHasNavigationBar(this, false); 
      vm = new OrderAssignmentDetailsVM(); 
      this.BindingContext = vm; 

     } 


protected override void OnAppearing() 
     { 
      base.OnAppearing(); 
      ClickEvent(); 
      SetUiElements(); 
      GoogleMapData(); 
      SetMaptoUI(); 
      List.ItemsSource = vm.OrderStatusList; 
     } 

のパフォーマンスに影響を与えることなく、ページに新しいビューを追加することができますどのようにパフォーマンス?

答えて

0

あなたは、グリッド内の要素を変更した後、あなたのメインビューを割り当てる必要があり:

Content = null; //now mapHolder is detached from your main view hierarchy 

mapHolder.Children.Add(map); 
    mapHolder.Children.Add(new Image() { Source = "redpin.png", HeightRequest = 50, WidthRequest = 33, Margin = Device.OnPlatform(new Thickness(0, 0, 0, 60), new Thickness(0, 0, 0, 25), 0), 
     VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center }); 

Content = mapHolder; 
+0

私がnullにコンテンツを作るならば、ビューの残りの部分が削除され、地図だけを右に追加されますか? –

+0

それはあなたのビューの構造に依存します。 mapHolderがルートである例を追加しました。 –

+0

また、問題がある、私はUIの他の要素を持っている –

関連する問題