Android 每当我回到同一个片段时,片段都会创建重复的标签
Android Fragment create duplicate tabs every time when I come back to same fragment
我使用框架布局和带标签的片段创建了示例 activity。但是,当我切换到其他 activity/fragment 而不是返回相同的 activity/fragment 时,它总是为选项卡创建重复的条目或视图。例如,我有 tab1 和 tab2,当我第一次查看 activity 时它显示两个选项卡,但是当我切换到其他 activity 并返回到选项卡 activity 时它显示四个选项卡, 'tab1, tab2, tab1, tab2'。
这是我的代码
public View onCreateView(LayoutInflater Inflater, ViewGroup Container,Bundle savedInstanceState) {
if(savedInstanceState==null) {
rootView = Inflater.inflate(R.layout.loanapplicationview, Container, false);
actionBar = getActivity().getActionBar();
// Hide Actionbar Icon
actionBar.setDisplayShowHomeEnabled(true);
// Hide Actionbar Title
actionBar.setDisplayShowTitleEnabled(true);
// Create Actionbar Tabs
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Set Tab Icon and Titles
Tab1 = actionBar.newTab().setText("Tab1");
Tab2 = actionBar.newTab().setText("Tab2");
// Set Tab Listeners
Tab1.setTabListener(new TabListener(fragmentTab1));
Tab2.setTabListener(new TabListener(fragmentTab2));
// Add tabs to actionbar
actionBar.addTab(Tab1);
actionBar.addTab(Tab2);
}
return rootView;
}
}
ActionBar().removeAllTabs()
将删除附加到您的 ActionBar
的所有标签。
在添加新标签之前使用此方法清除之前的标签
actionBar.removeAllTabs();
// Add tabs to actionbar
actionBar.addTab(Tab1);
actionBar.addTab(Tab2);
您应该在添加选项卡之前检查它们是否存在。
if (actionBar.getTabCount() == 0) {
// Set Tab Icon and Titles
Tab1 = actionBar.newTab().setText("Tab1");
Tab2 = actionBar.newTab().setText("Tab2");
// Set Tab Listeners
Tab1.setTabListener(new TabListener(fragmentTab1));
Tab2.setTabListener(new TabListener(fragmentTab2));
actionBar.addTab(Tab1);
actionBar.addTab(Tab2);
}
我使用框架布局和带标签的片段创建了示例 activity。但是,当我切换到其他 activity/fragment 而不是返回相同的 activity/fragment 时,它总是为选项卡创建重复的条目或视图。例如,我有 tab1 和 tab2,当我第一次查看 activity 时它显示两个选项卡,但是当我切换到其他 activity 并返回到选项卡 activity 时它显示四个选项卡, 'tab1, tab2, tab1, tab2'。
这是我的代码
public View onCreateView(LayoutInflater Inflater, ViewGroup Container,Bundle savedInstanceState) {
if(savedInstanceState==null) {
rootView = Inflater.inflate(R.layout.loanapplicationview, Container, false);
actionBar = getActivity().getActionBar();
// Hide Actionbar Icon
actionBar.setDisplayShowHomeEnabled(true);
// Hide Actionbar Title
actionBar.setDisplayShowTitleEnabled(true);
// Create Actionbar Tabs
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Set Tab Icon and Titles
Tab1 = actionBar.newTab().setText("Tab1");
Tab2 = actionBar.newTab().setText("Tab2");
// Set Tab Listeners
Tab1.setTabListener(new TabListener(fragmentTab1));
Tab2.setTabListener(new TabListener(fragmentTab2));
// Add tabs to actionbar
actionBar.addTab(Tab1);
actionBar.addTab(Tab2);
}
return rootView;
}
}
ActionBar().removeAllTabs()
将删除附加到您的 ActionBar
的所有标签。
在添加新标签之前使用此方法清除之前的标签
actionBar.removeAllTabs();
// Add tabs to actionbar
actionBar.addTab(Tab1);
actionBar.addTab(Tab2);
您应该在添加选项卡之前检查它们是否存在。
if (actionBar.getTabCount() == 0) {
// Set Tab Icon and Titles
Tab1 = actionBar.newTab().setText("Tab1");
Tab2 = actionBar.newTab().setText("Tab2");
// Set Tab Listeners
Tab1.setTabListener(new TabListener(fragmentTab1));
Tab2.setTabListener(new TabListener(fragmentTab2));
actionBar.addTab(Tab1);
actionBar.addTab(Tab2);
}