我有一个Xamarin表单页面,其中包含一个包装所有内容的绝对布局。在其中,我有填充整个空间的内容,并留下了80的填充,然后我有一个80宽的左侧导航侧边栏,位于主要内容的顶部:
我想要一种修改过的" push"动画,这意味着做两件事:
(请注意,使用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);
答案 0 :(得分:0)
我发现.Commit()
的第一个参数需要引用你动画的元素。所以改变:
mainContentAnimation.Commit(this, "mainContentAnimationName", length: animationLength);
要:
mainContentAnimation.Commit(mainContent, "mainContentAnimationName", length: animationLength);
修正了它。