我知道這個問題問了很多次。但是我沒有得到那個傳言。我有一個包含兩個標籤的佈局。當我切換標籤時,他們每次都會重新加載。許多人建議使用viewpager
。但我對viewPager
一無所知。我的項目即將完成。如何停止重新加載片段
我的佈局代碼:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_devices);
mPreferences = getSharedPreferences(PreferencesManager.SCOPE,
MODE_PRIVATE);
mBundle = getIntent().getExtras();
try {
rl = (RelativeLayout) findViewById(R.id.mainLayout);
//((Object) rl).setOffscreenPageLimit(2);
fragMentTra = getFragmentManager().beginTransaction();
ActionBar bar = getActionBar();
bar.addTab(bar.newTab().setText(TAB_NAME1).setTabListener(this));
bar.addTab(bar.newTab().setText(TAB_NAME2).setTabListener(this));
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
bar.show();
} catch (Exception e) {
e.getMessage();
}
}
FragmentMine fram1;
FragmentTransaction fragMentTra = null;
FragmentAll fram2;
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if (tab.getText().equals(TAB_NAME1)) {
try {
rl.removeAllViews();
} catch (Exception e) {
}
fram1 = new FragmentMine();
fragMentTra.addToBackStack(null);
fragMentTra = getFragmentManager().beginTransaction();
fragMentTra.add(rl.getId(), fram1);
fragMentTra.commit();
} else if (tab.getText().equals(TAB_NAME2)) {
try {
rl.removeAllViews();
} catch (Exception e) {
}
fram2 = new FragmentAll();
fragMentTra.addToBackStack(null);
fragMentTra = getFragmentManager().beginTransaction();
fragMentTra.add(rl.getId(), fram2);
fragMentTra.commit();
}
}
切換時,如何停止重裝標籤?
*如何在切換時停止重新加載標籤?* - 您停止創建這些碎片的新實例,然後附加它們o集裝箱。 – Luksprog 2014-10-04 10:15:31
你能簡單地解釋@Luksprog – SGG 2014-10-04 10:16:52
每次你選擇一個標籤,你就會創建一個新的片段並將其添加到容器中。如果你想保留這些片段然後存儲它們並使用附加/分離事務。 – Luksprog 2014-10-04 10:34:36