如何推迟在Android棒棒糖的片段的input转换?

在Android Lollipop中, Activity#postponeEnterTransition()Activity#startPostponedEnterTransition()方法为Activity提供了延迟启动进入和退出共享元素转换的能力,直到加载所有数据。 这些工作很适合Activity转换。

使用Fragment过渡时,有没有办法达到同样的效果?

Solutions Collecting From Web of "如何推迟在Android棒棒糖的片段的input转换?"

在片段转换中没有直接的等价物,因为片段使用FragmentTransaction,我们不能真正推迟应该在事务中发生的事情。

为了获得相同的效果,你可以添加一个Fragment并将其隐藏在一个事务中,然后当Fragment准备就绪时,移除旧的Fragment并在事务中显示新的Fragment。

 getFragmentManager().beginTransaction() .add(R.id.container, fragment2) .hide(fragment2) .commit(); 

之后,当fragment2准备就绪时:

 getFragmentManager().beginTransaction() .addSharedElement(sharedElement, "name") .remove(fragment1) .show(fragment2) .commit();