FragmentTabHost внутри фрагмента
Добавлено: 09 апр 2015, 17:20
Есть несколько фрагментов, которые расположены внутри ViewPager. Один из них тоже состоит из фрагментов, которые я пытаюсь положить во FragmentTabHost. Не получается никак. Получаю ошибку Recursive entry to executePendingTransactions при попытке перейти на этот фрагмент во ViewPager. Что происходит? Запуталась совсем. Может это вообще неправильно, тут использовать FragmentTabHost? Тогда как по-другому сделать?
Суть в том, чтобы внутри фрагмента были вкладки с другими фрагментами.
Вот код фрагмента с FragmentTabHost:
Суть в том, чтобы внутри фрагмента были вкладки с другими фрагментами.
Вот код фрагмента с 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;
}
}