2013-05-31 37 views
0

我有一個基於片段的應用程序,其中一些片段具有我想作爲按鈕放入ActionBar的附加操作,而有些則沒有任何此類操作。我已經創建了一個包含所有項目的所有片段的XML菜單文件,我在運行時顯示/隱藏取決於哪個片段當前正在使用的組合顯示:Android項目在改變方向時從ActionBar移動到選項菜單

MenuItem item = menu.findItem(some_id); 
item.setVisible(false); 
MenuItem item = menu.findItem(some_other_id); 
item.setVisible(true); 

的問題是,當我觀看沒有菜單項的片段,如果我更改設備方向,然後更改爲不同的片段 - 使用菜單項 - 這些項目不會顯示在ActionBar中,但只能使用設備的「菜單」按鈕進行訪問。

所有菜單項設置爲XML文件android:showAsAction="always",但他們始終無法在ActionBar露面如果在沒有菜單項查看片段的最後一個方向變化已完成。這發生在縱向到橫向和橫向到縱向的變化過程中。

我該如何強制將項目始終顯示在ActionBar

回答

2

兩點:

  1. ActionBar design document,即使在橫向10" 平板電腦將只顯示最多每下面的圖表操作欄4項: Maximum number of icons in the ActionBar
  2. 假設你正在在ActionBar中顯示的項目的最大數量,如果您希望片段在項目出現時將項目添加到ActionBar並在隱藏時移除項目,則不需要在單個xml菜單文件中手動顯示/隱藏項目,而是添加每個單獨Fragment中的項目爲Fragments - Adding items to the Action Bar guide
+0

感謝您提供一個快速而相當全面的答案。我在每個片段中只有1個,2個或零個項目,所以第一個點不應該引起問題。將看看第二點,看看是否能解決問題。 – SaltyNuts

+0

是的!每個片段菜單項不會表現出這種行爲,工作也很好,也更容易維護。 – SaltyNuts