2015-07-10 23 views
0

如何保持android:orderInCategory定義的順序,而第一個選項菜單顯示爲一個操作時,它是菜單的唯一項目?保留具有showAsAction =「ifRoom」的項目的orderInCategory設置

我已經定義了兩個選項菜單,它們被兩個不同的片段插入。如果兩個碎片不能同時顯示,則一切看起來都像是預期的。

第一個選項菜單顯示一個動作:
Menu of Fragment1

第二個選項菜單顯示一個動作和一個菜單項:
Menu of Fragment2

現在,如果我在所顯示的一個活動中的兩個片段同一時間,我希望,項目將服從android:orderInCategory的價值,並顯示爲一個動作和兩個菜單項:

How it should look like

而是示出了兩個行動,只有一個菜單項:
How it looks like

那麼我將如何實現intened結果呢?


Fragment1刀片:

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item 
     android:id="@+id/action3" 
     android:icon="@android:drawable/ic_menu_delete" 
     android:orderInCategory="500" 
     android:showAsAction="ifRoom" 
     android:title="Action3"/> 
</menu> 

Fragment2刀片:

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item 
     android:id="@+id/action1" 
     android:icon="@android:drawable/ic_menu_edit" 
     android:orderInCategory="100" 
     android:showAsAction="ifRoom|withText" 
     android:title="Action1"/> 
    <item 
     android:id="@+id/action2" 
     android:orderInCategory="300" 
     android:showAsAction="never" 
     android:title="Action2"/> 
</menu> 

回答

0

的Android尊重順序,但機器人:showAsAction優先。由於您將action2指定爲「never」,另外兩個指定爲「ifRoom」,因此它會先將其他2顯示爲操作項目,然後在溢出菜單中顯示action2。

要獲得您想要的行爲,您應該將showAsAction設置爲「never」作爲action3。

相關問題