当第一个选项菜单显示为菜单中唯一的项目时,我如何保留android:orderInCategory
定义的订单?
我定义了两个选项菜单,它们由两个不同的片段插入。如果两个片段不同时显示,则一切看起来都是预期的。
第一个选项菜单显示一个动作:
第二个选项菜单显示一个操作和一个菜单项:
现在,如果我同时在一个Activity中同时显示两个片段,我希望这些项目能够服从android:orderInCategory
的值,并显示为一个动作和两个菜单项:
相反,显示了两个操作,只有一个菜单项:
那么我将如何实现结果?
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 :(得分:0)
Android尊重订单,但android:showAsAction优先。因为您将action2指定为&#34; never&#34;,将另外2指定为&#34; ifRoom&#34;,它将另外2个首先显示为操作项,然后在溢出菜单中显示action2。
要获得您想要的行为,您应该将showAsAction设置为&#34; never&#34; for action3。