Fragment间的切换经常使用在规模较大的项目中,下面是常见的方式:
首先新建 FragmentController.java
public class FragmentController {
int containerId;
ArrayList<Fragment> fragments;
private FragmentManager fm;
private static FragmentController controller;
private FragmentController(int containerId, Activity activity) {
this.containerId = containerId;
fm = activity.getFragmentManager();
initFragment();
}
public static FragmentController getInstance(int containerId, Activity activity) {
if (controller == null) {
controller = new FragmentController(containerId, activity);
}
return controller;
}
private void initFragment() {
fragments = new ArrayList<Fragment>();
fragments.add(new FirstFragment());
fragments.add(new SecondFragment());
fragments.add(new ThirdFragment());
FragmentTransaction ft = fm.beginTransaction();
for(Fragment fragment : fragments) {
ft.add(containerId, fragment);
}
ft.commit();
}
public void showFragment(int position) {
hideFragment();
FragmentTransaction ft = fm.beginTransaction();
ft.show(fragments.