我有3个标签作为碎片的活动。我也有3个ActionBar项目。在每个选项卡上只应显示一个项目,其他项目应在溢出菜单中。我的代码看起来像这样在更改标签上更改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行隐藏似乎不起作用。当我将选项卡更改为第二个选项卡时,出现第三项3项。切换到以前的选项卡不会隐藏项目。我正在使用ActionBarCompat。这是一个错误吗?
编辑:其实在Android 4.1上运行CyanogenMod的三星Galaxy S(第一个)也表现得如此。因此,当我们使用物理按钮而不是软件按键时,它可能会与情况相关联。
我想避免在3个地方创建3个xmls和处理onOptionsItemSelected(),但是因为这个工作对我来说我接受了你的答案。谢谢。 –