Android popBackStack setTransition

时间:2016-02-17 14:00:26

标签: android android-fragments fragmentmanager

我想弄清楚在调用popBacksStack时播放过渡动画的正确方法是什么。

现在我正在设置从ListFragmentSettingsFragment的过渡,就像这样

getSupportFragmentManager()
    .beginTransaction()
    .addToBackStack(null)
    .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
    .replace(R.id.fragment_holder, settingsFragment)
    .commit();

但是在弹出backstack时我应该如何进行转换(向后移动以便ListFragment再次可见)?

正如我所注意到的,弹出backstack不是fragmentManager交易,就像更换片段一样,因此在制作流行音乐之前我无法调用setTransition

我想让代码尽可能简单。没有自定义动画等。

解决方案: 我担心我已经习惯了比我聪明的Android Studio。 Android工作室没有认识到android.R作为资源所以我认为没有这样的东西,但是当我开始输入完整路径'android.R.anim.slide_in_left'Android studio捡起它。所以我的解决方案现在看起来像这样:

getSupportFragmentManager()
                    .beginTransaction()
                    .addToBackStack(null)
                    .setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right, android.R.anim.slide_in_left, android.R.anim.slide_out_right)
                    .replace(R.id.fragment_holder, settingsFragment)
                    .commit();

1 个答案:

答案 0 :(得分:1)

getSupportFragmentManager()
    .beginTransaction()
    .addToBackStack(空)
    .setCustomAnimations(R.anim.enter,R.anim.exit,R.anim.popEnter,R.anim.popExit)
    .replace(R.id.fragment_holder,settingsFragment)
    .commit();