android - 如何在 Android Lollipop 中推迟 Fragment 的进入转换?

标签 android android-5.0-lollipop shared-element-transition activity-transition fragment-transitions

在 Android Lollipop 中,Activity#postponeEnterTransition()Activity#startPostponedEnterTransition()方法使 Activity 能够延迟开始进入和退出共享元素转换,直到加载所有数据。这些对 Activity 转换非常有用。

有没有办法在使用Fragment转场时达到同样的效果?

最佳答案

在 Fragment Transitions 中没有直接的等价物,因为 Fragment 使用 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();

关于android - 如何在 Android Lollipop 中推迟 Fragment 的进入转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26977303/

相关文章:

android - 如何设置 ANDROID_NDK_HOME 以便 Android Studio 不要求 ndk 位置?

android - 实现 ListFragment 时隐藏 "Loading..."指示器

ios - react-navigation-fluid-transitions 共享图像闪烁

Android 共享元素转换不适用于 <include> 标记

android - 共享元素转换不起作用 - 我无法解析方法 ActivityOptionsCompat.makeSceneTransitionAnimation(mContext, p1, p2);

当我为 textView 设置背景时,Android 如何使文本垂直居中

android - ImageButton中的透明图片不显示透明度

eclipse - Android L parseSdkContent失败无法初始化类android.graphics.Typeface

java - Pre L中的Android L Elevation Effect(仅使用elevation属性)

android-5.0-lollipop - Google Material Design Specs 的示例实现在哪里