我知道这个问题问了很多次。但是我没有得到那个传言。我有一个包含两个标签的布局。当我切换标签时,他们每次都会重新加载。许多人建议使用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