我正在尝试按照http://developer.android.com/resources/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentTabs.html中的说明实现 FragmentTabs 。一切都很顺利,直到我这样做:
我从一个标签开始了许多不同的片段,例如:
tab1--->fragment1--->fragment2--->fragment3
选项卡2
但是当我切换到tab2并再次回到tab1时,我得到的是fragment1屏幕而不是fragment3(即我在第一个标签中有3个片段,而我在第三个片段上,我在切换到第二个标签后再次出现在第一个标签上,我是带到第一个片段而不是第三个片段)..谁能告诉可能是什么问题?
@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() 时,我得到了这个: