你可以通過在你的標籤監聽器上附加/分離片段來實現這一點,每當一個標籤被取消選擇時,分離當前片段和onTabSelected方法,檢查你之前是否創建了片段。
private Fragment mFragment;
private final String mTag;
private final Class<T> mClass;
public TabListener(String pTag, Class<T> pClass) {
mTag = pTag;
mClass = pClass;
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if (mFragment == null) {
try {
mFragment = (Fragment)mClass.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
ft.add(R.id.fragment_container,mFragment,mTag);
} else {
ft.attach(mFragment);
}
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
if (mFragment != null) {
ft.detach(mFragment);
}
}
public void onTabReselected(Tab tab, FragmentTransaction ft) {
//Nothing
}
然後你就可以實例化你的聽衆在
TabListener l = new TabListener<MyFragment>(tabTag, MyFragment.class)
謝謝你 - 那個安裝/拆卸的東西做的伎倆我! – MrBr 2013-05-16 14:27:30