.net maui 动画在使用动画调用时出现卡顿。Commit

问题描述 投票:0回答:1

我正在尝试创建一个随着高度增加而动画的扩展标签,随着高度的增加,它下面的所有内容也会自动向下重新定位,因为它位于 VerticalStackLayout 内。我用以下代码创建了一个

new Animation
,它可以工作,但是动画不流畅并且断断续续。

public void LabelHeightAnimTest(Label label, double newHeight, uint length)
{
var animation = new Animation(d => label.HeightRequest = d, label.Height, newHeight, Easing.SinInOut);
animation.Commit(label, "HeightAnimation", length: length, finished: (d, b) => { });
}

有谁知道如何在不卡顿的情况下对标签等项目的高度进行动画处理?安卓需要开启硬件加速吗?我已经在我的手机和模拟器上测试过这个,两者都有口吃。在发布模式下测试,仍然卡顿。

我尝试在代码中创建动画并使用 Animation.Commit 和 Microsoft.Maui.Controls 提交它们

android .net animation maui
1个回答
0
投票

我正在制作很多不同的动画,甚至是 3D,而且我没有口吃。检查主线程中是否没有发生太多事情。还可以尝试不同的缓动。始终使用加速。

这就是我调整按钮大小的方法,与您所做的类似。

TextColor = Colors.Transparent;
Text = "Clear";
new Animation(v => WidthRequest = v, width, 70).Commit(this, "Animate", 16, 200, Easing.SinOut, finished: (v, c) =>
{
    FontFamily = _fontFamily;
    TextColor = Colors.Black;
    FontSize = 14;
    CornerRadius = 18;
    _canExecutCommand = true;
});

如果你想了解更多关于动画的内容,你可以在我的repo中找到完整的代码。

© www.soinside.com 2019 - 2024. All rights reserved.