删除片段动画开关盒

时间:2019-04-04 15:05:47

标签: android android-fragments android-animation

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

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

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

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

如果要替换父片段,我想删除动画,但是当用户单击后退按钮(从细节到主要片段)时,请保留动画。

关于此案,我无法在线找到任何内容,但如果有答案,我深表歉意。

任何帮助或指导将不胜感激。

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

1 个答案:

答案 0 :(得分:1)

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

  • 输入动画
  • 退出动画
  • 弹出式动画
  • 弹出动画

输入”动画随着片段的出现而显示,例如提交交易后。

显示“ 退出”动画,因为Fragment被另一个Fragment替换(即replace()事务)。

当用户弹出后退堆栈时,将显示“ 弹出式输入”动画,并且此Fragment返回到前台(即,当前的前台Fragment正在消失)。

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

我相信pop(输入/退出)动画应该可以提供您此处所需的行为。