我有 3 个标签作为片段的活动。我也有 3 个 ActionBar 项目。在每个选项卡上,应该只显示一个项目,其他项目应该在溢出菜单中。我的代码看起来像这样
private void updateMenuItemsVisibility()
{
MenuItem itemAddGate = menu.findItem(R.id.action_add_gate);
MenuItem itemAddLinking = menu.findItem(R.id.action_new_linking);
MenuItem itemNewConversation = menu.findItem(R.id.action_new_conversation);
MenuItemCompat.setShowAsAction(itemNewConversation,
MenuItemCompat.SHOW_AS_ACTION_NEVER);
MenuItemCompat.setShowAsAction(itemAddLinking, MenuItemCompat.SHOW_AS_ACTION_NEVER);
MenuItemCompat.setShowAsAction(itemAddGate, MenuItemCompat.SHOW_AS_ACTION_NEVER);
if (viewPager.getCurrentItem() == 0)
{
MenuItemCompat.setShowAsAction(itemNewConversation,
MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
}
if (viewPager.getCurrentItem() == 1)
{
MenuItemCompat.setShowAsAction(itemAddLinking, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
}
if (viewPager.getCurrentItem() == 2)
{
MenuItemCompat.setShowAsAction(itemAddGate, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
}
}
它可以工作......在Android 4.x上。在 2.1 线上隐藏似乎不起作用。当我将选项卡更改为第二个选项卡时,会出现 2 个项目,在第三个 3 个项目上。切换到以前的选项卡不会隐藏项目。我正在使用 ActionBarCompat。它是一个错误吗?
编辑:实际上,在 Android 4.1 上运行 CyanogenMod 的三星 Galaxy S(第一个)上也有这样的行为。所以它可能与我们有物理按钮而不是软件键的情况有关。