如何在android中替换片段时检查完成setCustomAnimations

时间:2017-05-22 06:27:38

标签: android android-fragments

在我的活动或片段中,我使用了方法:



 public void replaceFragment(Fragment fragment, boolean addToBackStack) {
        FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); transaction.setCustomAnimations(R.anim.slide_in_right, 0);
        if (addToBackStack) {
            transaction.addToBackStack(null);
        }
        transaction.replace(R.id.mFrameContainer, fragment);
        transaction.commitAllowingStateLoss();
    }




替换片段时。我运行但是在某些屏幕上有来自服务器的加载数据,它在显示片段时滞后所以我想在动画完成时我会调用方法加载数据。那我怎么能检查完成动画替换片段。我在堆栈中搜索并查看,但我仍然无法做到。 如果您有我的问题的答案,请分享给我! 非常感谢你!

1 个答案:

答案 0 :(得分:0)

使用import android.app.Fragment;而不是导入import android.support.v4.app.Fragment;。使用getFragmentManager更改replaceFragment方法中的getSupportFragmentManager。然后,在您的片段类中,添加以下内容:

@Override
public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) {

    Animation anim = AnimationUtils.loadAnimation(getActivity(), nextAnim);

    anim.setAnimationListener(new Animation.AnimationListener() {

        @Override
        public void onAnimationStart(Animation animation) {

        }

        @Override
        public void onAnimationRepeat(Animation animation) {

        }

        @Override
        public void onAnimationEnd(Animation animation) {
            // TODO: This is where you will put your code for when the animation is finished
        }
    });

    return anim;
}

将您要执行的代码放在onAnimationEnd

之后