我想创建带有自定义 View (DISPLAY_SHOW_CUSTOM) 的选项卡式 ActionBar (NAVIGATION_MODE_TABS)。它应该看起来像这样:
我只需要能够通过顶行中的按钮在 Activity 中导航 - 就像我在正常 - 非选项卡模式下使用 ActionBar 所做的那样,并且还能够切换第二行中的选项卡。如果我把ActionBar设置成标签模式,自定义 View 就消失了,标签模式和自定义 View 似乎是相互排斥的......这甚至可能吗?
在没有 ActionBar 的情况下,还有更多可能的方法可以做到这一点。通常我会创建一个带有按钮的布局,将其包含在 TabActivity(现已弃用)中,仅此而已。但我认为这不是最佳解决方案,因此不胜感激任何帮助或建议。
提前致谢。
编辑:经过一些研究,我发现它可以工作,只是没有显示在我的 4 英寸屏幕上。但是它仍然没有像我预期的那样工作。在较宽的屏幕上,自定义 View 显示在选项卡的右侧 - 没问题,但在 4 英寸手机屏幕上根本不显示。
我认为最好的解决方案是使用 ActionBarSherlock 库(我不喜欢使用已弃用的功能,我的应用程序也必须在 sdk11 之前版本的设备上工作)和 fragment - 一个用于顶级 ActionBar,第二个用于选项卡式 View 。
最佳答案
顶行的按钮必须添加为选项菜单项:
@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:
当您想在 Activity 中提供导航选项卡时,使用操作栏的选项卡是一个很好的选择(而不是使用 TabWidget),因为系统会针对不同的屏幕尺寸调整操作栏选项卡——将它们放在主操作栏中当屏幕足够宽时,或者当屏幕太窄时在单独的栏(称为“堆叠操作栏”)中。
关于android - 如何使用自定义 View 和选项卡创建 Android ActionBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8190078/