/ / FragmentManager with FragmentTabHost - アンドロイド

FragmentManager with FragmentTabHost - アンドロイド

4つのフラグメントを持つViewPagerを持つアクティビティがあります。それらのフラグメントの1つにはその中に2つのタブがなければならないので、私はFragmentTabHostを試しました。

private FragmentTabHost fragmentTabHost;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_zbritjet, container, false);
fragmentTabHost = (FragmentTabHost) view.findViewById(android.R.id.tabhost);
fragmentTabHost.setup(view.getContext(), getFragmentManager(), android.R.id.tabcontent);

fragmentTabHost.addTab(fragmentTabHost.newTabSpec("tab_ofertat").setIndicator("Ofertat"), OfertatItems.class, null);
fragmentTabHost.addTab(fragmentTabHost.newTabSpec("tab_bizneset").setIndicator("Bizneset"), BiznesetItems.class, null);
return view;
}

問題はアンドロイドが投げていることです

java.lang.IllegalStateException:FragmentManagerはすでにトランザクションを実行しています

スタックトレース:

android.support.v4.app.FragmentManagerImpl。ensureExecReady(FragmentManager.java:1946) android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1992) プロパティ。 android.support.v4.app.FragmentTabHost.onAttachedToWindow(FragmentTabHost.java:289)

回答:

回答№1は1

試す getChildFragmentManager() の代わりに getFragmentManager().

ドキュメントから:

このフラグメント内にフラグメントを配置および管理するための専用のFragmentManagerを返します。