@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);
ft.hide(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);
ft.show(newTab.fragment);
}
}
mLastTab = newTab;
ft.commit();
mActivity.getSupportFragmentManager().executePendingTransactions();
}
}
}
How to save states of Views in Fragments on TabChange
最新推荐文章于 2018-05-03 20:35:02 发布
本文介绍了一个Fragment在不同Tab间切换时的管理方法。通过使用FragmentManager来实现Fragment的添加、显示和隐藏,确保每次Tab改变时都能平滑过渡到新的Fragment内容。文章详细展示了如何通过判断当前Tab和上一个Tab的状态来决定是否进行Fragment的事务处理。
摘要由CSDN通过智能技术生成