移除片段动画开关盒

Remove fragment animation switch case

我正在使用以下代码显示片段中的子片段:

getChildFragmentManager().beginTransaction()
            .setCustomAnimations(android.R.animator.fade_in, R.animator.slide_out)
            .replace(R.id.container, detailFragment, "MAP_DETAIL")
            .commit();

目标是仅在按下视图上的后退按钮时让片段执行退出动画。

现在,问题是当我通过侧边导航菜单导航到另一个视图时它正在执行。这看起来不太好,因为在主片段被另一个视图替换之前子片段被弹出。

我想在父片段被替换时删除动画,但在用户点击后退按钮时保留它(从细节到主片段)

我在网上找不到关于这个案例的任何信息,但如果有答案,我深表歉意。

如有任何帮助或指导,我们将不胜感激。

(注意,我确实有一个视频要分享,其中显示了替换父片段时调用的子片段退出动画。如有需要可提供)

为此,您可以使用带有 4 个参数的 setCustomAnimations 方法:

  • 进入动画
  • 退出动画
  • 弹出进入动画
  • 弹出退出动画

enter”动画在片段出现时显示,例如在提交交易时。

退出”动画显示为片段被另一个片段替换(即 replace() 事务)。

当用户弹出返回堆栈时显示“pop enter”动画,并且此 Fragment 正在返回前台(即当前前台 Fragment 正在消失) ).

当用户弹出返回堆栈时显示“弹出退出”动画,并且此片段正在离开前台。

我相信 pop(enter/exit) 动画应该提供您在这里需要的行为。