我有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(),但是因爲這個工作對我來說我接受了你的答案。謝謝。 –