私はすべてをラップする絶対レイアウトを含むXamarinフォームページを持っています。その内部では、私は、全体のスペースを埋め、80のパディングを残しているコンテンツを持っている、そして私は80広く、メインのコンテンツの上に座って左側のナビゲーションサイドバーがあります。Xamarin.Forms - 2つのものを同時にアニメーション化する(アニメーションをプッシュする)
私が欲しいです二つのことをやって意味修正された「プッシュ」アニメーション、一種の:
- は移動Xに
- (180)100 100
(TranslateTo()を使用すると非常に簡単ですが、左のナビゲーションは幅を増やし、右に移動する必要はなく、WidthTo()メソッドはありません)。
私は自分で1番良いことができます。
私はそれだけで問題なく#2を行うことができます。
しかし、私は両方のアニメーションにそれらを得ることはできません。最初に(.Commit()経由で)左側のナビゲーションアニメーションを実行すると、メインコンテンツだけがアニメーション化されます。メインコンテンツのアニメーションを最初に実行すると、アニメーション化されません。奇妙な!ここで何が起こっているのですか?
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);