为什么在我使用 add 时之前的片段没有动画?

Why previous fragment does not animate when I'm using add ?

我不明白为什么我这样做:

FragmentTransaction transaction = activity.getFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.animator.slide_in_from_left,R.animator.slide_in_from_right,R.animator.slide_out_to_left,R.animator.slide_out_to_right);
transaction.replace(id, fragment);
transaction.addToBackStack(null);
transaction.commit();

新的Fragment从右边来,之前的Fragment在左边,动画结束后消失。

但是当我使用添加时:

transaction.add(id, fragment);

之前的片段没有动画,只有新片段有动画。 为什么 ?我想使用 add 并让这个片段像他用 replace

做的那样动画

我认为 this 应该可以回答您的问题。 要点是 transaction.add 使旧片段与新片段一起保持活动状态,因此旧片段并没有真正退出。