PushModalAsync页面更改动画是滞后的

时间:2017-07-22 17:55:37

标签: c# xamarin xamarin.forms

我想在两个页面之间进行简单的转换,但每当我使用PushModalAsync时,我都会遇到大量的帧丢失。

我已经在多部手机上测试了这个问题,三星Galaxy A3(2016)和三星Galaxy A5(2016)上的问题仍然存在,但华为P9 Lite没有。需要注意的是,这三款手机之间的规格差别不大。

有什么方法可以让转换顺利进行或根本不显示动画?

我使用以下代码:

var newPage = new NewPage();
await PushModalAsync(newPage);

2 个答案:

答案 0 :(得分:2)

嗯,我猜这是旧设备的GPU的一个问题,它很难在没有帧丢失的情况下渲染动画。此外,我认为很难优化PushModalAsync代码超出其当前状态。

您可以使用PushModalAsync(Page, bool) overload。只需使用false即可避免动画page。这将避免动画GPU上的额外负载。最后,您应该不再遇到帧丢失。

答案 1 :(得分:0)

尝试在后台运行......

Task.Factory.StartNew(()=>{
var newPage = new NewPage();
return newPage;
}).ContinueWith(tnp=>{PushModalAsync(tnp.Result);});