Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何知道洛蒂动画何时完成?_Android_Android Fragments_Lottie Android - Fatal编程技术网

Android 如何知道洛蒂动画何时完成?

Android 如何知道洛蒂动画何时完成?,android,android-fragments,lottie-android,Android,Android Fragments,Lottie Android,我有一个片段,下面是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, co

我有一个片段,下面是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;

}
我需要使用
getActivity().getSupportFragmentManager().beginTransaction().remove(this.commit())删除该片段动画结束时。如果我理解正确,当
isAnimating()
Lottie方法返回false时,动画已经结束,并且由于在我的配置中动画没有循环,因此我应该删除当前片段。但是我不能只使用if语句,因为当它被执行时,动画可能仍然在运行


我需要一种方法在乐蒂动画结束时删除片段,我该如何做?

此代码适用于我:

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");
        }
    });

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

Kotlin动画代码完成:

successAnimation.addAnimatorListener(object : Animator.AnimatorListener{
            override fun onAnimationRepeat(animation: Animator?) {
            }

            override fun onAnimationEnd(animation: Animator?) {
                //Add your code here for animation end
            }

            override fun onAnimationCancel(animation: Animator?) {
            }

            override fun onAnimationStart(animation: Animator?) {
            }

        })

C#Android Xamarin的解决方案会是什么样子?@Chefes:在第一个动画结束时,我试着运行第二个动画。但第二个动画在完成第一轮后继续循环。是否有其他方法可以实现链式动画?@K.Dexter您是否找到了Xamarin Android的解决方案?@Gold.strike no sorryNote:如果您已将乐天视图的可见性设置为不可见或消失,则不会触发动画侦听器