Я пытаюсь реализовать FragmentTabs как illiustrated в http://developer.android.com/resources/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentTabs.html. Все прошло хорошо, пока я не сделал это:
Я начал много разных фрагментов с одной вкладки, например:
tab1 → fragment1 --- > FRAGMENT2 --- > fragment3
Таб2
Но когда я переключился на tab2 и снова вернулся к tab1, у меня был экран фрагмента1, а не фрагмент3 (т.е. у меня есть 3 фрагмента на первой вкладке, а пока я на третьем фрагменте, и я снова заходил на первую вкладку после перехода на вторую вкладку, Я попал в 1-й фрагмент, а не третий). Может ли кто-нибудь сказать, что может быть проблемой?
@Override
public void onTabChanged(String tabId) {
TabInfo newTab = mTabs.get(tabId);
if (mLastTab != newTab) {
FragmentTransaction ft = mActivity.getSupportFragmentManager().beginTransaction();
if (mLastTab != null) {
if (mLastTab.fragment != null) {
ft.detach(mLastTab.fragment);
}
}
if (newTab != null) {
if (newTab.fragment == null) {
newTab.fragment = Fragment.instantiate(mActivity,
newTab.clss.getName(), newTab.args);
ft.add(mContainerId, newTab.fragment, newTab.tag);
} else {
ft.attach(newTab.fragment);
}
}
mLastTab = newTab;
ft.commit();
mActivity.getSupportFragmentManager().executePendingTransactions();
}
}
Когда я комментирую attach() и detatch(), я получаю следующее: