Суть в том, чтобы внутри фрагмента были вкладки с другими фрагментами.
Вот код фрагмента с FragmentTabHost:
Код: Выделить всё
public class FragmentDiary extends Fragment {
private static String TAB_TABLE = "Table";
private static String TAB_GRAPH = "Graph";
private FragmentActivity activity;
LinearLayout fragmentLayout;
private LayoutInflater inflater;
private FragmentTabHost tabHost;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
this.inflater = inflater;
fragmentLayout = (LinearLayout)inflater.inflate(R.layout.diary_fragment, null);
setupTabHost();
addTabs();
tabHost.setCurrentTabByTag(TAB_TABLE);
return fragmentLayout;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
this.activity = (FragmentActivity)activity;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
private void setupTabHost() {
tabHost = (FragmentTabHost) fragmentLayout.findViewById(android.R.id.tabhost);
tabHost.setup(activity, activity.getSupportFragmentManager(), android.R.id.tabcontent);
}
private void addTabs() {
tabHost.addTab(setupTab(TAB_TABLE, R.drawable.ic_launcher), FragmentTable.class, null);
tabHost.addTab(setupTab(TAB_GRAPH, R.drawable.ic_launcher), FragmentGraph.class, null);
}
private TabHost.TabSpec setupTab(final String tag, int imageRes) {
return tabHost.newTabSpec(tag).setIndicator(createTabView(tabHost.getContext(), imageRes));
}
private View createTabView(final Context context, int imageRes) {
View view = inflater.inflate(R.layout.upper_tab_bg, null);
View v = view.findViewById(R.id.tabsIndicator);
v.setBackground(getResources().getDrawable(imageRes));
return view;
}
}