显示和隐藏没有自定义动画的片段

时间:2016-01-17 10:10:50

标签: android fragment fragmenttransaction

我的活动中有3个片段。我打算隐藏2并显示1.下面是有效的代码。

        getFragmentManager().beginTransaction().setCustomAnimations(android.R.animator
            .fade_in, android.R.animator.fade_out).show(fragment1)
                        .hide(fragment2).hide(fragment3).commit();

由于我不想要动画,我会从链中删除setCustomAnimations,如下所示。

        getFragmentManager().beginTransaction().show(fragment1)
                        .hide(fragment2).hide(fragment3).commit();

然而,在删除它之后,现在不再显示片段,即片段1也未显示。我们真的需要setCustomAnimations才能工作吗?

1 个答案:

答案 0 :(得分:0)

假设您的片段类是A,B,C。尝试这样的事情:

void switchFragment(int fragmentId){
getFragmentManager().beginTransaction() 
.replace(R.id.placeHolder, getFragment(fragmentId))
.setCustomAnimations(...)
.commit();
}

Fragment getFragment(int id){
return id==1? A.newInstance() : id==2 ? 
B.newInstance() : C.newInstance();
}