1、首先在第一个Fragment 里面拿到FragmentManger 和FragmentTransaction
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
fm = getFragmentManager();
fragments[0]=new MovieFragment();
fragments[1]=new RobotFragment();
fragments[2]=new WuZiQiFragment();
fragments[3]=new SettingsFragment();
}
2 创建Fragment时传递要的数据。
private static final String BUNDLE_SPLASH = "splash";
private static final String BUNDLE_FRAGMENT = "fragment";
private AnimationSet set;
private LinearLayout layout;//要添加动画的根布局
private FragmentManager fm;
private Fragment[] fragments=new Fragment[4];
private int fragment_id;//传入要选择的哪个Fragment
public SplashFragment newInstance(int layout,int whichfragment) {
SplashFragment fragment = new SplashFragment();
Bundle bundle = new Bundle();
bundle.putInt(BUNDLE_SPLASH, layout);
bundle.putInt(BUNDLE_FRAGMENT, whichfragment);
fragment.setArguments(bundle);
return fragment;
}
3.onActivityCreated方法中添加动画
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
init();
set=(AnimationSet) AnimationUtils.loadAnimation(getActivity(),R.anim.splash_fragment);
layout.setAnimation(set);
set.setAnimationListener(this);//动画结束监听
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
fm.beginTransaction().replace(R.id.main_fragment, fragments[fragment_id]).commit();
}
这样就达到了创建一种Fragment来实现多个Fragment对应的开场动画跳转。