ActionBarSherlock:Tab在横向模式下丢失自定义视图

时间:2012-11-17 12:25:46

标签: android android-actionbar actionbarsherlock

我正在将ActionBarSherlock与NAVIGATION_MODE_TABS一起使用。每个选项卡都包含自定义视图。虽然它在纵向模式下看起来很好,但如果选项卡显示为下拉列表(由Android自动完成),则横向模式会出现许多问题:

  • Android 4.x:操作栏中未显示所选选项卡(请参见图像,红色圆圈)。直接使用Android SDK中的内置Action Bar时会发生同样的情况。
  • Android 2.x:操作栏中未显示所选选项卡。一旦我点击下拉菜单,整个下拉消失了,我得到空标签。

Action Bar not showing selected tab

如果我不使用自定义视图,一切正常。我的代码在图像上创建了ActionBar(故意保持简单):

getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
for (int i = 0; i < 7; i++) {
    ActionBar.Tab tab = getActionBar().newTab();
    TextView view = new TextView(this);
    view.setText("This is tab " + (i + 1));
    tab.setCustomView(view);
    tab.setTabListener(this);
    getActionBar().addTab(tab);
}

我做错了吗?

编辑:为了澄清,原始代码中存在getSupportActionBar(),ActionBarSherlock中的操作栏除了描述的问题之外还可以正常工作。我使用上面的代码示例来说明使用内置Action Bar时第一个问题(操作栏中未显示选定的选项卡)。对不起,感到困惑。

2 个答案:

答案 0 :(得分:1)

使用ActionBarSherlock,你应该使用getSupportActionBar()才能在2.x上运行

getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
for (int i = 1; i <= 3; i++) {
    ActionBar.Tab tab = getSupportActionBar().newTab();
    tab.setText("Tab " + i);
    tab.setTabListener(this);
    getSupportActionBar().addTab(tab);
}

文字颜色来自您应用于标签的自定义视图,或来自您在活动级别应用的主题。

答案 1 :(得分:0)

这种方法适合我:

添加添加标签后,只需将导航方法投入使用:

... // adding tabs
bar.setNavigationMode(ActionBar.Navigation_mode_tabs);

goodLuck;)