2016-05-18 12 views
0

Ich versuche eine Aktivitätsanzeige in meiner App anzuzeigen, für die ich den folgenden Code geschrieben habe, aber die Anzeige wird nicht auf dem Bildschirm gerendert. Kann jemand bitte vorschlagen, was falsch gelaufen ist?Aktivitätsanzeige wird im absoluten Layout nicht gerendert

private ActivityIndicator indicator = new ActivityIndicator 
{ 
    HorizontalOptions = LayoutOptions.CenterAndExpand, 
    Color = Color.Black, 

    IsVisible = false 
}; 



StackLayout stack = new StackLayout 
       { 
        VerticalOptions=LayoutOptions.FillAndExpand, 
        HorizontalOptions=LayoutOptions.FillAndExpand, 
        Padding=0, 
        Spacing=0, 
       }; 

       AbsoluteLayout absolute = new AbsoluteLayout 
       { 
        VerticalOptions = LayoutOptions.FillAndExpand, 
        HorizontalOptions = LayoutOptions.FillAndExpand, 
       }; 


    stack.Children.Add(map); 
    stack.Children.Add(browser); 

AbsoluteLayout.SetLayoutFlags(stack, AbsoluteLayoutFlags.PositionProportional); 
AbsoluteLayout.SetLayoutBounds(stack, new Rectangle(0f, 0f, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize)); 

AbsoluteLayout.SetLayoutFlags(indicator, AbsoluteLayoutFlags.PositionProportional); 
AbsoluteLayout.SetLayoutBounds(indicator, new Rectangle(0.5f, 0.5f, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize)); 


    absolute.Children.Add(indicator); 
    absolute.Children.Add(stack); 



*//When Some activity occurs.....Indicator is shown like this* 

indicator.SetBinding(ActivityIndicator.IsVisibleProperty, "IsBusy", BindingMode.OneWay); 
      indicator.SetBinding(ActivityIndicator.IsRunningProperty, "IsBusy", BindingMode.OneWay); 
      indicator.IsRunning = true; 
      indicator.IsVisible = true; 
+0

Probieren Sie 'AbsoluteLayout.SetLayoutBounds (Stapel, neues Rechteck (0f, 0f, 1f, 1f));' zu 'stack' und' AbsoluteLayout.SetLayoutBounds (Indikator, neues Rechteck (0.5f, 0.5f, -1f , -1f)); zum "Indikator". Fügen Sie auch 'AbsoluteLayout.SetLayoutFlags (stack, AbsoluteLayoutFlags.All);' zum Stack hinzu. –

+0

Nein, @Akash Es wird immer noch nicht gerendert. –

+0

Fügen Sie den Indikator nach dem Stapel hinzu. 'absolute.Children.Add (stack);' vor 'absolute.Children.Add (Indikator);' –

Antwort

1

Versuchen Sie, diese

AbsoluteLayout.SetLayoutBounds(stack, new Rectangle(0f, 0f, 1f, 1f)); 
AbsoluteLayout.SetLayoutBounds(indicator, new Rectangle(0.5f, 0.5f, -1f, -1f)); 
AbsoluteLayout.SetLayoutFlags(stack, AbsoluteLayoutFlags.All); 

die Anzeige nach dem Stapel hinzufügen. absolute.Children.Add(indicator) nach absolute.Children.Add(stack);

Überprüfen Sie, ob Ihre IsVisible wahr ist.

+0

thnx Akash, Es löste das Problem –