The Android Support Library also now supports nested fragments, so you can implement nested fragment designs on Android 1.6 and higher.
To nest a fragment, simply call getChildFragmentManager() on the Fragment in which you want to add a fragment. This returns a FragmentManager that you can use like you normally do from the top-level activity to create fragment transactions. For example, here’s some code that adds a fragment from within an existing Fragment class:
public class ParentFragment extends Fragment {
private static ArrayList<Fragment> fragments;
private static ViewPager viewPager;
public static ParentFragment newInstance() {
return new ParentFragment();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stu
super.onCreateView(inflater, container, savedInstanceState);
return inflater.inflate(R.layout.fragment, container,
false);
}
@SuppressWarnings(“rawtypes”)
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onViewCreated(view, savedInstanceState);
fragments = new ArrayList<Fragment>();
viewPager = (ViewPager) view.findViewById(R.id.viewpager);
anFragment fragment = new anFragment();
fragments.add(fragment);
viewPager.setAdapter(new osAdapter(getChildFragmentManager()));
}
public static class osAdapter extends FragmentPagerAdapter {
public osAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return fragments.size();
}
@Override
public Fragment getItem(int position) {
return soycarlosfragments.get(position);
}
@Override
public CharSequence getPageTitle(int position) {
return “Fragment # ” + position;
}
// @Override
// public Fragment getItem(int arg0) {
// // TODO Auto-generated method stub
// return null;
// }
}
}