У меня есть активность с 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 для скрытия, похоже, не работает. Когда я меняю вкладку на вторую вкладку, появляются 2 элемента, на 3-х элементах. Переход на предыдущие вкладки не скрывает элементы. Я использую ActionBarCompat. Это ошибка?
Редактировать: На самом деле он также ведет себя как на Samsung Galaxy S (первый), на котором работает CyanogenMod на Android 4.1. Таким образом, это может быть связано с ситуацией, когда у нас есть физическая кнопка вместо программных клавиш.
Я хотел избежать создания 3 xmls и обработки onOptionsItemSelected() в 3-х местах, но поскольку эта работа для меня, я собираюсь принять ваш ответ. Спасибо. –