フラグメントを非表示にすることができます。交換する必要はありません。例として、私は2つのフラグメントFragmentFeedとFragmentNotificationを持っています。私たちは表示/非表示またはフラグメントを追加できます。
ハンドルクリックメニュー:
if (tabId.equals(AppConstants.FEED)) {
pushFragments(tabId, getFragmentFeed());
} else if (tabId.equals(AppConstants.NOTIFICATION)) {
pushFragments(tabId, getFragmentNotification());
}
ハンドルの表示/非表示およびフラグメントを追加します。
public void pushFragments(String tag, Fragment fragment) {
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
if (manager.findFragmentByTag(tag) == null) {
ft.add(R.id.realtabcontent, fragment, tag);
}
Fragment fragmentFeed = manager.findFragmentByTag(TAG_FEED);
Fragment fragmentNoti = manager.findFragmentByTag(TAG_NOTIFICATION);
// Hide all Fragment
if (fragmentFeed != null) {
ft.hide(fragmentFeed);
}
if (fragmentNoti != null) {
ft.hide(fragmentNoti);
}
// Show current Fragment
if (tag == TAG_FEED) {
if (fragmentFeed != null) {
ft.show(fragmentFeed);
}
}
if (tag == TAG_NOTIFICATION) {
if (fragmentNoti != null) {
ft.show(fragmentNoti);
}
}
ft.commitAllowingStateLoss();
}
あなたがロードするための – EpicPandaForce
など、代わりにデタッチの表示/非表示のフラグメントトランザクションを使用し、取り外し、交換する必要がありますアクティビティが再作成された場合でも保存することができます。これは、AsyncTaskLoaderなどのローダーを使用して行うことができます。ここでは、その使用例を示します。http://stackoverflow.com/a/22675607/878126 –