在我的活动或片段中,我使用了方法:
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();
}

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