![](/img/trans.png)
[英]BottomNavigationView - How to avoid recreation of Fragments and reuse them
[英]how to preserve fragments recreation
我正在嘗試使用片段和RadioGroup來實現選項卡欄
我像這樣在檢查的無線電組更改上切換片段(在sdk示例中看到了類似的內容)
公立
void onCheckedChanged(RadioGroup radioGroup, int id) {
TabInfo newTab = mContent.get(id);
if (newTab != lastTab) {
FragmentTransaction transaction = mActivity.getSupportFragmentManager().beginTransaction();
if (lastTab != null && lastTab.fragment != null) {
transaction.detach(lastTab.fragment);
}
if (newTab.fragment == null) {
newTab.fragment = Fragment.instantiate(mActivity, newTab.getTag());
transaction.add(mContainerId, newTab.fragment);
} else {
transaction.attach(newTab.fragment);
}
lastTab = newTab;
transaction.setCustomAnimations(R.anim.tab_transaction, R.anim.tab_transaction);
transaction.commit();
}
}
但是每次發生這種情況時,都會從頭開始創建附加的片段,即稱為onCreate等。
有什么方法可以防止碎片在活動中一遍又一遍地創建? 我也不希望后退按鈕可以將片段切換回去;
而不是使用方法FragmentTransaction.attach()和FragmentTransaction.detach()你可以使用FragmentTransaction.show()和FragmentTransaction.hide() 。 您還需要更改您在上面的示例中提供的一些周圍代碼,但我將其留給您自己練習。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.