Ich habe eine Xamarin Formularseite, die ein absolutes Layout enthält, das alles umschließt. Im Inneren, dass habe ich Inhalte, die den ganzen Raum füllt und hat Polsterung von 80 links, und dann habe ich eine Sidebar links nav, die 80 breit und sitzt oben auf dem Hauptinhalt ist:Xamarin.Forms - 2 Dinge zur gleichen Zeit animieren (Push Animation)
Ich möchte eine Art von modifizierten "push" Animation, die zwei Dinge zu tun bedeutet:
- von 100 (180), um die Breite des linken nav erhöhen sich um 100
(Beachten Sie, dass die Verwendung von TranslateTo() sehr einfach wäre, aber das linke nav muss in der Breite zunehmen, nicht nach rechts verschieben, und es gibt keine WideTo() -Methode).
Ich kann # 1 allein gut tun.
Ich kann # 2 allein gut tun.
Aber ich kann sie nicht beide animieren. Wenn ich zuerst die linke Navigationsanimation (über .Commit()) starte, wird nur der Hauptinhalt animiert. Wenn ich die Hauptinhaltsanimation zuerst ausführe, animiert keiner. Seltsam! Was geht hier vor sich?
Hier ist der grundlegende Code Ich verwende:
var leftNavAnimation = new Animation(
callback: x => leftNav.WidthRequest = x,
start: 80,
end: 180,
easing: Easing.Linear
);
var mainContentAnimation = new Animation(
callback: x => mainContent.TranslationX = x,
start: 0,
end: 100,
easing: Easing.Linear
);
leftNavAnimation.Commit(this, "leftNavAnimationName", length: animationLength);
pageContentAnimation.Commit(this, "mainContentAnimationName", length: animationLength);