我试图以非常基本的方式制作片段的动画,但它不起作用:
MyFragment myFragment = (MyFragment) getFragmentManager().findFragmentById(R.id.myFragment);
getFragmentManager().beginTransaction()
.hide(myFragment)
.commit();
Slide slideRight = new Slide(Gravity.RIGHT);
slideRight.setDuration(3000);
Slide slideLeft = new Slide(Gravity.LEFT);
slideLeft.setDuration(3000);
myFragment.setEnterTransition(slideRight);
myFragment.setExitTransition(slideLeft);
然后再
getFragmentManager().beginTransaction()
.show(myFragment)
.commit();
但片段只是在没有任何转换的情况下出现。我无法弄清楚它为什么没有动画效果。
修改
我最终使用片段支持库setCustomAnimations
,因为本机库不支持具有相对值的动画。
同时使用setEnterTransition
的新API似乎无法与show/hide
一起使用,并且出于某种未知原因,仅适用于replace
,但这并不适合我的需求。< / p>
答案 0 :(得分:0)
setCustomAnimation 可以解决问题。
FragmentManager.beginTransaction()
.replace(R.id.fragment, new Fragment)
.setCustomAnimations(R.anim.slide_out_left, R.anim.slide_in_right).commit();