xamarin.forms - Xamarin Forms TranslateTo Animation 只能工作一次
问题描述
我有一个 Xamarin Forms 应用程序,目前我正在改善该应用程序的用户体验。我为动画添加了以下代码。问题是它只能在设备上运行一次。在模拟器上运行良好。可能是什么问题?如果有人发现问题,那就太好了。
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();
};
解决方案
每次都应该使用TranslationX
and TranslationY
,因为视图的位置每次都会改变。但是您可以通过TranslationX
and获得元素的 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 });
有关此的更多信息:
推荐阅读
- javascript - 如何访问 DOM 中的元素
- python - 在scrapy中使用自定义方法时无法找出正确的方法
- maven - 准备分析任务失败并出现 ##[error][SQ] API GET '/api/server/version' 仅针对 Azure Devops 中的 Maven 集成失败
- flutter - 使用提示时,Flutter DropdownButton 不显示值
- php - Laravel whereIn 不返回结果
- angular - 如何在 Angular 中使用按钮作为表单控件?
- javascript - 单击时显示特定的 php 数据
- javascript - 有没有办法将特定单词超链接到 javascript 中的另一个 URL?
- odoo - 是否可以通过模型 2 中的按钮控制/更改模型 1 中状态栏的状态?(奥多 13)
- php - php 检查特定时区是否已过 24 小时