【问题标题】:Fragment.setAllowEnterTransitionOverlap(false); doesn't work (enter and exit animation overlap)Fragment.setAllowEnterTransitionOverlap(false);不起作用(进入和退出动画重叠)
【发布时间】:2015-01-23 11:29:54
【问题描述】:

我将 Fragment 替换为:

Fragment fragment = new TheFragment();
fragment.setAllowEnterTransitionOverlap(false);

getSupportFragmentManager().beginTransaction().setCustomAnimations(R.anim.fade_in, R.anim.fade_out).replace(R.id.LayoutContent, fragment).commit();

但是进退动画是同时播放的。

如何在播放新的 Fragment 进入动画之前等待退出动画完成?

【问题讨论】:

    标签: android animation android-fragments fragment fragmenttransaction


    【解决方案1】:

    我知道这已经晚了,但我想为其他有同样问题的人回答。

    fragment.setAllowEnterTransitionOverlap(false);
    fragment.setAllowReturnTransitionOverlap(false);
    

    仅适用于内容转换 - 直接在片段中设置转换。

    enteringfragment.setEnterTransition(new YourTransition())
    exitingfragment.setExitTransition(new YourTransition())
    

    不影响setCustomAnimations()处设置的动画

    【讨论】:

      【解决方案2】:

      可能有点脏,但我通过定义

      解决了这个问题

      android:startOffset

      的进入动画与

      的值相同

      机器人:持续时间

      退出动画。此外,我使用变量中的时间来确保它在两个动画中始终是相同的值,我只需要在一个地方更改它。

      【讨论】:

        【解决方案3】:

        您不需要这样做。 只需使用

        setAllowEnterTransitionOverlap(false);
        setAllowExitTransitionOverlap(false);
        

        在两个片段上都有效。

        【讨论】:

          猜你喜欢
          • 2017-06-11
          • 2013-01-17
          • 1970-01-01
          • 2020-01-30
          • 1970-01-01
          • 1970-01-01
          • 2020-12-06
          • 1970-01-01
          • 2021-07-13
          相关资源
          最近更新 更多