我有一个链接三个片段的导航抽屉。所有片段都有一个具有不同标题的ActionBar。片段A和B没有标签,而片段C有标签1和标签2.浏览它们工作正常并显示不同的ActionBar标题,但是当我从C导航到其他片段时,标签仍然显示在片段A和B中动作条。当我从C导航到片段A和B时如何“隐藏”选项卡?
由于
切换片段
switch (possition) {
case 0:
fragment = new FragmentA();
break;
case 1:
fragment = new FragmentB();
break;
case 2:
fragment = new FragmentC();
break;
default:
break;
}
FragmentManager frgManager = getSupportFragmentManager();
frgManager.beginTransaction().replace(R.id.content_frame, fragment)
.commit();
片段C
private String[] tabs = { "1", "2"};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_utilities, container, false);
viewPager = (ViewPager) rootView.findViewById(R.id.pager);
actionBar = ((ActionBarActivity)getActivity()).getSupportActionBar();
mAdapter = new TabsPagerAdapter(getActivity().getSupportFragmentManager());
viewPager.setAdapter(mAdapter);
actionBar.setHomeButtonEnabled(true);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
for (String tab_name : tabs) {
actionBar.addTab(actionBar.newTab().setText(tab_name)
.setTabListener(UtilitiesFragment.this));
}
答案 0 :(得分:0)
尝试将导航模式设置为非选项卡式...
setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
...然后在相关时将其设置回选项卡模式。
另一种选择是只需通过removeTab
上的ActionBar
方法删除标签,然后在相关时再将其添加回来。
需要注意的一点是,该导航方法自API级别21起已被弃用,且为recommended that you use a different approach/pattern。
答案 1 :(得分:0)
实际上我今天第二次提出建议:在片段中使用TabLayout而不是ActionBar标签。
https://developer.android.com/reference/android/support/design/widget/TabLayout.html