Android片段`setEnterTransition`不起作用

时间:2017-07-31 18:00:50

标签: android android-fragments

我试图以非常基本的方式制作片段的动画,但它不起作用:

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>

1 个答案:

答案 0 :(得分:0)

setCustomAnimation 可以解决问题。

FragmentManager.beginTransaction()

.replace(R.id.fragment, new Fragment)

.setCustomAnimations(R.anim.slide_out_left, R.anim.slide_in_right).commit();