Xamarin.Android中如何等待LottieAnimationView结束后启动主Activity
在Xamarin.Android中实现Lottie动画完成后跳转主Activity
实现步骤:
绑定布局中的Lottie控件
在闪屏Activity的OnCreate方法中,获取布局里的LottieAnimationView实例。添加动画完成监听器
给Lottie控件绑定动画结束的回调,在回调中启动主Activity并关闭当前闪屏页。
完整代码示例:
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.SplashLayout); // 替换为你的闪屏布局文件名 var lottieView = FindViewById<LottieAnimationView>(Resource.Id.SplashAnimationView); // 添加动画完成监听器 lottieView.AddAnimatorListener(new AnimatorListenerAdapter { public override void OnAnimationEnd(Animator animation) { // 启动主Activity StartActivity(new Intent(this, typeof(MainActivity))); // 关闭当前闪屏Activity,避免返回键回到闪屏页 Finish(); } }); }
另一种Lottie专用监听器实现方式:
如果需要监听更多Lottie动画事件(如开始、重复等),可以实现ILottieAnimationListener接口:
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.SplashLayout); var lottieView = FindViewById<LottieAnimationView>(Resource.Id.SplashAnimationView); lottieView.AddOnLottieAnimationListener(new LottieAnimationCallback(this)); } // 自定义Lottie动画回调类 private class LottieAnimationCallback : Java.Lang.Object, ILottieAnimationListener { private readonly Activity _activity; public LottieAnimationCallback(Activity activity) { _activity = activity; } public void OnAnimationCancel(LottieAnimationView animationView) { } public void OnAnimationEnd(LottieAnimationView animationView) { _activity.StartActivity(new Intent(_activity, typeof(MainActivity))); _activity.Finish(); } public void OnAnimationRepeat(LottieAnimationView animationView) { } public void OnAnimationStart(LottieAnimationView animationView) { } public void OnAnimationProgress(LottieAnimationView animationView) { } }
注意事项:
- 确保
MainActivity已在AndroidManifest.xml中正确注册。 - 布局中已设置
app:lottie_loop="false",动画仅播放一次,符合闪屏场景需求。 - 调用
Finish()可防止用户按下返回键回到闪屏页面。
内容的提问来源于stack exchange,提问作者Nabeel Jaber
相关产品推荐
相关产品推荐

