gpt4 book ai didi

android - 如何知道 Lottie 动画何时完成?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:35:33 25 4
gpt4 key购买 nike

我有一个 fragment ,这里是 onCreateView 方法:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

// Inflate the layout for this fragment
mView = inflater.inflate(R.layout.fragment_added_to_cart_anim, container, false);
ButterKnife.bind(this, mView);

mAddedToCartAnimation.setAnimation("checked_done_.json");
mAddedToCartAnimation.loop(false);
mAddedToCartAnimation.playAnimation();

// Remove fragment when the animation is finished.

return mView;

}

lottie 时,我需要使用 getActivity().getSupportFragmentManager().beginTransaction().remove(this).commit(); 删除 fragment 动画已经结束。如果我理解正确,当 isAnimating() Lottie 方法返回 false 时,动画已经结束,因为在我的配置中动画不会循环,这是我应该删除当前 fragment 的时候。但我不能只使用 if 语句,因为执行它时动画可能仍在运行。

我需要一种方法来在 Lottie 动画结束时删除 fragment ,我该怎么做?

最佳答案

这段代码对我有用:

mAddedToCartAnimation.addAnimatorListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
Log.e("Animation:","start");
}

@Override
public void onAnimationEnd(Animator animation) {
Log.e("Animation:","end");
//Your code for remove the fragment
try {
getActivity().getSupportFragmentManager()
.beginTransaction().remove(this).commit();
} catch(Exception ex) {
ex.toString();
}
}

@Override
public void onAnimationCancel(Animator animation) {
Log.e("Animation:","cancel");
}

@Override
public void onAnimationRepeat(Animator animation) {
Log.e("Animation:","repeat");
}
});

我希望这能解决你的问题:)

关于android - 如何知道 Lottie 动画何时完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46180874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com