Android Xamarin:检测 Lottie 动画结束

Android Xamarin: Detect Lottie Animation End

我想在我的 DialogFragment 中膨胀一个布局文件,它只包含一个 LottieAnimationView

<com.airbnb.lottie.LottieAnimationView
  android:id="@+id/animViewTest1"
  android:layout_height="100dp"
  android:layout_width="100dp"
  app:lottie_fileName="json_Saved.json"
  app:lottie_loop="false"
  app:lottie_autoPlay="false"
  />

我想要Fragment出现,播放一次动画,动画结束后自动关闭。

我可以访问动画视图

animView = view.FindViewById<LottieAnimationView>(Resource.Id.animViewTest1);
animView.PlayAnimation();

但我找不到找到 onAnimationEnd 方法或类似方法的方法。

我发现了这个类似的问题:

但这并没有帮助我让它在我的案例中发挥作用。

您需要使用 IAnimatorListener 侦听器,只需通过您的 class:

实现即可
YourClass : IAnimatorListener

所有需要的方法,其中之一就是您所追求的:

public void OnAnimationEnd(Animator animation)
{
// your logic on animation end
}

然后将您的 IAnimatorListener 实现分配为您的 lottie 视图的动画监听器:

this.animationView.AddAnimatorListener(implementationOfIAnimatorListener);

您可以在 Lottie Xamarin github 上找到完整示例:https://github.com/martijn00/LottieXamarin/blob/develop/Samples/Native/Example.Droid/AnimationFragment.cs