如何使用自定义视图和标签创建Android ActionBar

时间:2011-11-18 22:43:14

标签: android android-layout

我想用自定义视图(DISPLAY_SHOW_CUSTOM)创建带标签的ActionBar(NAVIGATION_MODE_TABS)。它应该是这样的:

enter image description here

我只需要能够通过顶行中的按钮浏览活动 - 就像我在普通的非标签模式下使用ActionBar一样,并且还能够在第二行切换标签。如果我将ActionBar设置为选项卡式模式,则自定义视图会消失,标签式模式和自定义视图似乎是互斥的...它甚至可能吗?

如果没有ActionBar,还有更多可行的方法。通常我会创建一个带按钮的布局,将它包含在TabActivity中(现已弃用)以及所有这些。但我觉得这不是最好的解决方案,所以感谢任何帮助或建议。

提前致谢。

编辑:经过一番研究后我发现它有效,它只是没有显示在我的4英寸屏幕上。但它仍然没有像我预期的那样工作。在更宽的屏幕上,自定义视图显示在选项卡的右侧 - 没关系,但在4英寸手机屏幕上根本不显示。

我认为最好的解决方案是使用ActionBarSherlock库(我不喜欢使用已弃用的功能,我的应用程序也必须在pre-sdk11版本设备上工作)和片段 - 一个用于顶级ActionBar,另一个用于选项卡式视图。

1 个答案:

答案 0 :(得分:0)

顶行中的按钮必须添加为optionMenu项目:

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    for (int i = 0; i < menuItems; i++)
    {
        if (i == 0)
        {
            menu.add(R.string.home).setIcon(R.drawable.button_home).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
            menu.getItem(0).setOnMenuItemClickListener(this);

        }
    }

    return super.onCreateOptionsMenu(menu);
}

ActionBar的理念与我在询问时的情况略有不同。来自Android developer guide:

当您想在活动中提供导航标签时,使用操作栏的标签是一个很好的选择(而不是使用TabWidget),因为系统会根据不同的屏幕尺寸调整操作栏标签 - 将它们放在主操作栏中当屏幕足够宽时,或者当屏幕太窄时,在单独的条形图(称为“堆叠动作条”)中。