使用TranslateTo通过Xamarin.Forms.Core.Animation进行动画制作?

时间:2018-04-24 14:25:09

标签: animation xamarin xamarin.forms

目前我正在努力使我们的应用程序对用户非常敏感, 在进行此操作时,我遇到了以下代码,向用户显示无限进度条

Task.Run(async () => {
    while (!_progressCts.IsCancellationRequested)
    {
        await (box as BoxView).TranslateTo(this.Width, 0, 1200);
        await (box as BoxView).TranslateTo(-this.Width, 0, 0);
    }
}, _progressCts.Token); 

这个动画看起来很简单但是从文档中我知道有一个单独的类叫做'Xamarin.Forms.Core.Animation'来处理动画。 我的问题是哪个方面在使UI响应用户方面更好。

上面的代码是在ListView上显示一个不确定的进度条但是它根本不会干扰ListView的滚动体验。

1 个答案:

答案 0 :(得分:2)

TranslateTo是使用Xamarin.Forms.Core.Animation资源的特定实现。两者都响应用户,他们不冻结应用程序流。实际上,第二个是在一个单独的线程中完成工作,SO可以快速平滑地处理界面。

Look my answer here,它显示了使用相同方法更改按钮背景颜色的替代实现。