如果空间有限,我正在尝试控制显示哪些操作栏项目,并在此问题中尝试了解决方案并回答:Icons priority on action bar
除了我想以与优先级不同的方式保持图标的顺序之外,一切正常,而上述解决方案导致项目被重新排序。有没有办法为项目显示设置优先级,而不改变项目在操作栏中显示的顺序?
我已经尝试改变xml中项目的顺序,这对渲染项目的顺序没有影响(没有orderInCategory,更改文件中的顺序确实会导致项目顺序发生变化如同渲染)。
我正在反对ICS。
menu.xml文件
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_edit"
android:icon="@android:drawable/ic_menu_edit"
android:title="@string/action_edit"
android:showAsAction="ifRoom"
android:orderInCategory="1"
/>
<item
android:id="@+id/action_undo"
android:icon="@android:drawable/ic_menu_revert"
android:title="@string/action_undo"
android:showAsAction="ifRoom"
android:orderInCategory="2"
/>
<item
android:id="@+id/action_delete"
android:icon="@android:drawable/ic_menu_delete"
android:title="@string/action_delete"
android:showAsAction="ifRoom"
android:orderInCategory="3"
/>
<!-- I want this item to be on the right,
but shown in preference to any other items;
setting it's orderInCategory to 0 ensures that it
is shown in preference to other items,
but always places it on the left -->
<item
android:id="@+id/action_addnew"
android:icon="@android:drawable/ic_menu_add"
android:title="@string/action_addnew"
android:showAsAction="ifRoom"
android:orderInCategory="0"
/>
</menu>
感谢。
答案 0 :(得分:2)
这些项目是从从右到左顺序放置的,所以通过重新排列项目,它可以提供帮助
<item
android:id="@+id/action_addnew"
android:icon="@android:drawable/ic_menu_add"
android:title="@string/action_addnew"
android:showAsAction="always"
android:orderInCategory="0"
/>
<menu>
<item
android:id="@+id/action_edit"
android:icon="@android:drawable/ic_menu_edit"
android:title="@string/action_edit"
android:showAsAction="ifRoom"
android:orderInCategory="1"
/>
<item
android:id="@+id/action_undo"
android:icon="@android:drawable/ic_menu_revert"
android:title="@string/action_undo"
android:showAsAction="ifRoom"
android:orderInCategory="2"
/>
<item
android:id="@+id/action_delete"
android:icon="@android:drawable/ic_menu_delete"
android:title="@string/action_delete"
android:showAsAction="ifRoom"
android:orderInCategory="3"
/>
</menu>
答案 1 :(得分:0)
android:orderInCategory
此文件从右到左工作,因此您需要根据记住这一点来修改代码。
答案 2 :(得分:0)
我从阅读你的问题得到的是你想要显示的action_addnew应该出现在右边&amp;它应该总是出现在每个人身上。
试试这个
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_edit"
android:icon="@android:drawable/ic_menu_edit"
android:title="@string/action_edit"
android:showAsAction="ifRoom"
/>
<item
android:id="@+id/action_undo"
android:icon="@android:drawable/ic_menu_revert"
android:title="@string/action_undo"
android:showAsAction="ifRoom" />
<item
android:id="@+id/action_delete"
android:icon="@android:drawable/ic_menu_delete"
android:title="@string/action_delete"
android:showAsAction="ifRoom"
/>
<item
android:id="@+id/action_addnew"
android:icon="@android:drawable/ic_menu_add"
android:title="@string/action_addnew"
android:showAsAction="always"
/>
</menu>
答案 3 :(得分:0)
从左到右给出第一项
android:orderInCategory="0"
和第二项
android:orderInCategory="1"
等等。