2017-06-27 2 views
0

Bei Verwendung von Xamarin, was ist die beste oder am meisten akzeptierte Methode zum Umgang mit Änderungen in der Ausrichtung?Umgang mit Seitenausrichtung in Xamarin ändern

Ich habe eine Karussell-Seite, die sich durch 5 Inhaltsseiten dreht (die gleiche Seite, nur verschiedene Texte/Bilder), in den Inhaltsseiten habe ich ein 6-Zeilen-Raster, jede Zeile enthält entweder ein Bild, Text oder eine Schaltfläche.

Wenn ich von Hochformat zu Querformat ändere, setze ich die Größe und das Auffüllen dieser in OnSizeAllocated zurück. Dies scheint zufällig für 3 von 5 Inhaltsseiten zu funktionieren, der Text in den anderen 2 wird nicht in der richtigen Position sein, und es sind nicht immer die gleichen 3, die auch funktionieren.

Ich vermute, es gibt einen besseren Weg, dies zu tun, als die Größe manuell zu ändern?

protected override void OnSizeAllocated(double width, double height) 
     { 
      base.OnSizeAllocated(width, height); //must be called 
      if (this.width != width || this.height != height) 
      { 
       this.width = width; 
       this.height = height; 
       //reconfigure layout 
       if (width > height) 
       { 
        img.HeightRequest = 62.5; 
        img.WidthRequest = 62.5; 
        logo.HeightRequest = 52.5; 
        logo.WidthRequest = 142.27; 
        headerStack.Padding = new Thickness(0, -60, 0, 0); 
        txtStack.Padding = new Thickness(20, -60, 20, 0); 
        sIndicator.Padding = new Thickness(20, 0, 20, 100); 
        sButton.Padding = new Thickness(0, -40, 0, 0); 
       } 
       else 
       { 
        img.WidthRequest = 250; 
        img.HeightRequest = 250; 
        logo.HeightRequest = 70; 
        logo.WidthRequest = 189.7; 
        headerStack.Padding = new Thickness(20, 40, 20, 0); 
        txtStack.Padding = new Thickness(20, 0, 20, 0); 
        sIndicator.Padding = new Thickness(20, 25, 20, 0); 
       } 
      } 
     } 

Antwort

0

Mit einem paar kleinen Änderungen an, was ich mich einstellen bekam dies ganz gut funktioniert, würde immer noch in anderen Leuten mal interessieren, wie sie es tun.

Verwandte Themen