每当我想导航到另一个片段并使用后退键返回时,我将此事务添加到backstack.有了这个,我还将过渡动画设置为该事务,这样当用户按下时,它会显示一个反转动画(popBackStackImmIEdiate()的效果),当用户转到上一个片段时.
我通过以下方式添加这些动画:
fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
让我们称之为A – > B – >导航.因此,当A移动到B时,会显示一个开始动画,然后当我们返回A时,会显示一个反转动画.
然而问题是,当我遇到需要从A到B的情况,将此事务添加到后台堆栈(能够返回带有后退按钮的A),然后从B到C(不添加此事务到后退堆栈),按下后退按钮时从C到A.这种情况下的问题是,当我按下该C片段上的后退按钮时,我希望用户可以毫不费力地被带到A片段.但是,因为从A到B的事务中添加了动画,并且该事务被添加到后栈,当用户按下片段C上的按钮时,正在显示反转事务A-> B(实际上,片段B在显示片段A之前,在屏幕上闪烁几分之一秒.
如果我能够在A-> B事务中到达事务对象并禁用该过渡动画,那么它将全部运行良好.但是,在commit()完成后,此 *** 作似乎无效.
反正我可以禁用那个动画吗?
解决方法 首先想到的是在转到片段C之前调用popBackStackImmediate().这样当你从C返回时你会直接进入A.现在关于动画的事情,你可以尝试this answer.
它基本上表示你创建一个布尔标志,当你不想看到动画时,你设置为true.
然后,如果上述条件为真,则片段的onCreateAnimation方法返回一个空动画.
总结以上是内存溢出为你收集整理的android – 在提交后禁用片段事务动画全部内容,希望文章能够帮你解决android – 在提交后禁用片段事务动画所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)