我用下面的代码显示了一个来自片段的子片段:
getChildFragmentManager().beginTransaction()
.setCustomAnimations(android.R.animator.fade_in, R.animator.slide_out)
.replace(R.id.container, detailFragment, "MAP_DETAIL")
.commit();目标是只有当按下视图上的后退按钮时,片段才能执行exit动画。
现在,问题是当我通过侧导航菜单导航到另一个视图时,它正在执行。这看起来不太好,因为子片段是在主片段被替换为另一个视图之前弹出的。
如果要替换父片段,我希望删除动画,但是当用户单击后退按钮(从细节到主要片段)时,保留它。
我在网上找不到关于这个案子的任何东西,但是如果有答案,我道歉。
如有任何帮助或指导,将不胜感激。
(注意,我确实有一个视频要分享,它显示当父片段被替换时被调用的子片段退出动画。如有需要,可提供)
发布于 2019-04-04 15:25:25
为此,可以使用接受4个参数的setCustomAnimations方法:
"enter“动画显示在片段出现时,例如在提交事务时。
"exit“动画显示为将片段替换为另一个片段(即replace()事务)。
当用户弹出后台堆栈时,将显示"pop enter“动画,该片段将返回到前台(即当前的前景片段正在消失)。
当用户弹出后台堆栈时,将显示"pop exit“动画,该片段将离开前台。
我认为pop(输入/退出)动画应该提供您在这里需要的行为。
https://stackoverflow.com/questions/55519307
复制相似问题