MAUI(iOS)中SKLottieView从其他页面返回后仅显静态图无法播放
在MAUI iOS中返回页面后重新启动SKLottieView动画
针对iOS平台从其他页面返回后SKLottieView仅显示静态图的问题,可以通过页面生命周期事件结合原生控件操作来重新启动动画,具体步骤如下:
在包含SKLottieView的页面XAML中,给控件设置命名以便后台代码访问:
<skia:SKLottieView x:Name="LottieAnim" Source="animations/loading.json" AutoPlay="True" Loop="True" />在页面的代码后台重写
OnAppearing方法,仅针对iOS平台做动画重启处理:protected override void OnAppearing() { base.OnAppearing(); #if IOS // 获取iOS原生SKLottieView控件 if (LottieAnim.Handler?.PlatformView is SkiaSharp.Views.iOS.SKLottieView nativeLottie) { // 重置动画进度并重新播放,确保从开头启动 nativeLottie.Progress = 0; nativeLottie.Play(); } #endif }
说明
iOS平台下,页面退到后台时SKLottieView的动画会被暂停,且返回页面时不会自动恢复播放。通过OnAppearing事件(页面显示时触发),直接操作原生控件重置进度并调用Play(),就能强制动画重新启动。如果你的动画不需要重置到开头,也可以仅调用nativeLottie.Play(),但重置进度能避免动画停留在中间帧的情况。
内容的提问来源于stack exchange,提问作者Nikita Khromov
相关产品推荐
相关产品推荐

