我有一个Xamarin Forms应用程序,目前,我正在改善该应用程序的用户体验。我为动画添加了以下代码。问题是它只能在设备上运行一次。在Simulator上运作良好。可能是什么问题?如果有人发现问题,那就太好了。
var gestureRecognizer = new TapGestureRecognizer();
gestureRecognizer.Tapped += async (s, e) =>
{
var task1 = this.PlaceHolderTextLabel.TranslateTo(0, -12, 250, Easing.SinInOut);
var task2 = this.InputControl.TranslateTo(0, 6, 250, Easing.SinInOut);
await Task.WhenAll(new Task[] { task1, task2 });
this.InputControl.IsEnabled = true;
this.InputControl.Focus();
};
答案 0 :(得分:0)
您应该每次使用TranslationX
和TranslationY
,因为视图的位置每次都会改变。但是您可以通过TranslationX
获得元素的X或Y平移增量和TranslationY
。
例如,您可以这样使用:
var task1 = this.mLabel.TranslateTo(0, mLabel.TranslationY - 12, 250, Easing.SinInOut);
var task2 = this.mInputView.TranslateTo(0, mInputView.TranslationY + 6, 250, Easing.SinInOut);
await Task.WhenAll(new Task[] { task1, task2 });
有关此的更多信息: