片段过渡动画 vs 片段视图渲染

Fragment transition animation vs fragment view rendering

我找不到任何答案,所以这是问题。

当使用某些动画从 Fragment A 移动到 Fragment B 时,动画是在目标片段已经渲染之后执行还是在目标片段渲染期间执行?因此,如果我的 Fragment B 需要大约 2 秒来完全渲染(忽略设备参数)并且我想确保它在过渡动画完成后准备就绪,那么我可以简单地将动画持续时间设置为大约 3 秒。它实际上是如何工作的?

它是同时发生的,你不能保证哪个先出现。但是如果你在目标片段中有一些视图或一些数据需要在转换之前存在,你可以在进入片段的 onViewCreated() 中调用 Fragment.postponeEnterTransition()。例如,如果您从片段 A 导航到 B:

public class FragmentB extends Fragment {
@Override
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
    ...
    postponeEnterTransition();
    }
}

加载数据并准备开始转换后,请调用 Fragment.startPostponedEnterTransition()