【问题标题】:Fragment transition animation vs fragment view rendering片段过渡动画与片段视图渲染
【发布时间】:2021-06-29 08:46:22
【问题描述】:
我找不到任何答案,所以这是问题。
当使用一些动画从Fragment A 移动到Fragment B 时,是在目标片段已经渲染之后执行动画还是在目标片段渲染期间执行动画?因此,即如果我的Fragment B 需要 2 秒来完全渲染(忽略设备参数)并且我想确保在过渡动画完成后它准备就绪,那么我可以简单地将动画持续时间设置为 3 秒。它实际上是如何工作的?
【问题讨论】:
标签:
android
android-fragments
android-transitions
【解决方案1】:
它同时发生,您无法保证哪个先出现。但是,如果您在目标片段中有一些视图或一些数据需要在转换之前存在,您可以在进入片段的onViewCreated() 中调用Fragment.postponeEnterTransition()。例如,如果您从片段 A 导航到 B:
public class FragmentB extends Fragment {
@Override
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
...
postponeEnterTransition();
}
}
加载数据并准备好开始转换后,请致电Fragment.startPostponedEnterTransition()。