【问题标题】:Android animated nested fragmentsAndroid 动画嵌套片段
【发布时间】:2016-11-26 16:28:20
【问题描述】:

我有一个活动,里面有一个片段 A。片段 A 在其中嵌套了片段 B。我正在使用以下代码将 B 与 C 切换:

            getChildFragmentManager()
                .beginTransaction()
                .setCustomAnimations(R.anim.move_left_in, R.anim.move_left_out,R.anim.move_right_in, R.anim.move_right_out)
                .replace(R.id.container, fragmentC)
                .addToBackStack("nested")
                .commit();

在那之后我在做

        getChildFragmentManager().popBackStack();

是什么让我回到了片段 B。 之后,我使用代码将片段 A 与片段 D 切换

        getSupportFragmentManager()
            .beginTransaction()
            .setCustomAnimations(R.anim.move_up_in, R.anim.move_up_out, R.anim.move_down_in, R.anim.move_down_out)
            .replace(R.id.fragment_holder, fragmentD)
            .addToBackStack("fragments")
            .commit();

当播放 A->D 事务的动画时,B 播放事务 C->B 的动画,并且通过弹出回栈得到相同的结果,为什么?

【问题讨论】:

  • 你使用什么支持库版本?
  • 我没有得到你真正想要的东西。您能否详细说明这部分,“当播放 A->D 交易的动画时,B 播放交易 C->B 的动画,并且通过弹出回栈我得到相同的结果,为什么?”?跨度>

标签: android animation fragment android-nested-fragment


【解决方案1】:

当您将片段 A 与片段 D 切换时。

片段 A 中的内容与其父片段分离,然后发生事务 A -> D,

由于您已经为片段设置了动画,因此这些动画导致的延迟是您的原因,请先查看 B 中遗漏的动画, 然后是 A -> D 动画。

【讨论】:

    【解决方案2】:

    不要使用 getChildFragmentManager(),

    使用支持fragmnetManager意味着为什么使用getSupportFragmentManager?

    嵌套片段的Bcz

    我希望您的问题可以通过此解决方案得到解决。谢谢:)

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-19
    • 1970-01-01
    • 2013-05-16
    • 2023-04-02
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多