2013-06-19 65 views
0

我想在将片段附加到包含FragmentPager的活动时播放自定义动画。不幸的是,使用FragmentTransaction.setCustomAnimations(int, int)的正常方式只能部分工作。无论我做什么只是外面的动画或过渡动画显示。打开/关闭FragmentAdapter时的动画

这是我到目前为止有:

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
    transaction.setCustomAnimations(R.anim.fadein, R.anim.fadeout, R.anim.fadein, R.anim.fadeout); 
    transaction.add(R.id.fragmentSpace, hostingFragment, CURRENT_FRAGMENT); 
    transaction.addToBackStack(null); 
    transaction.commit(); 

在这种情况下,刚刚在新片段的动画显示,老段下的新连接的一个保持可见。再加上弹出后退栈时不播放动画。

transaction.replace(..)替换transaction.add(..)有助于删除底层片段,但仍然存在未显示其动画的问题。在这种情况下,底层片段就会消失。至少弹出式动画显示在.replace案例中。

举一个例子项目看:github(动画分支)

回答

0

你应该在片段事务中使用remove()replace()摆脱其他片段。

+0

正如我上面提到的:transaction.replace()也没有帮助。它无法显示替换片段的动画。刚刚测试组合删除(Fragment)并添加(Fragment),但它实际上与调用replace相同。 – Paul