我正在使用ActionBarSherlock在活动中实现4个标签。选项卡在操作栏下方以纵向模式正确显示,滚动按预期工作。当我切换到横向模式时,标签被放置在微调器中(它们仍能正常工作)。如何强制标签以横向模式单独显示(在操作栏或下方)?
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
ActionBar.Tab tab1 = getSupportActionBar().newTab();
tab1.setText("TAB 1 TEXT");
tab1.setTabListener(this);
getSupportActionBar().addTab(tab1);
ActionBar.Tab tab2 = getSupportActionBar().newTab();
tab2.setText("TAB 2 TEXT");
tab2.setTabListener(this);
getSupportActionBar().addTab(tab2);
ActionBar.Tab tab3 = getSupportActionBar().newTab();
tab3.setText("TAB 3 TEXT");
tab3.setTabListener(this);
getSupportActionBar().addTab(tab3);
ActionBar.Tab tab4 = getSupportActionBar().newTab();
tab4.setText("TAB 4 TEXT");
tab4.setTabListener(this);
getSupportActionBar().addTab(tab4);
答案 0 :(得分:3)
如何强制标签在横向模式下单独显示(在操作栏或下方)?
不使用操作栏标签。
您看到的行为与ActionBarSherlock无关。 ABS正在反映标准操作栏的行为,它将执行相同的操作。这是设计的。这也是愚蠢的,恕我直言,但当我提交an issue时,我被告知这是按预期工作的。
如果您希望标签始终为标签,请使用操作栏标签以外的任何其他实施方式,例如带标签指示符的ViewPager
。
答案 1 :(得分:2)
这是ActionBar的默认行为。
https://code.google.com/p/android/issues/detail?id=24439
我看到了这个
https://groups.google.com/forum/#!msg/android-developers/2unF5lKfn64/iKUX7JbbOo4J
向ActionBar添加标签后,为标签导航模式调用setNavigationMode()
,例如
Tab tabDemo=mTabsAdapter.addTab(bar.newTab().setText("ABC"),.Abc.class, null,"Abc");
bar.setNavigationMode(ActionBar.Navigation_mode_tabs);
它以标签视图模式显示标签。 我不知道它是否有效,但你可以尝试一下。
您还可以使用制表符创建视图,而不是使用ActionBar标签。我相信你必须使用ViewPager
或类似的东西。