Android 图标';操作栏上的s优先级(保持项目顺序)

Android 图标';操作栏上的s优先级(保持项目顺序),android,android-actionbar,Android,Android Actionbar,我试图控制在空间有限时显示哪些操作栏项目,并尝试了此问答中的解决方案: 除了我想以不同于优先级的方式保持图标的顺序之外,一切都正常,而上面的解决方案会导致项目被重新排序。有没有办法设置项目显示的优先级,而不改变项目在actionbar中的显示顺序 我已尝试更改xml中项目的顺序,这对呈现的项目顺序没有影响(如果没有orderInCategory,更改文件中的顺序会导致呈现的项目顺序发生更改) 我反对ICS menu.xml <menu xmlns:android="http://schem

我试图控制在空间有限时显示哪些操作栏项目,并尝试了此问答中的解决方案:

除了我想以不同于优先级的方式保持图标的顺序之外,一切都正常,而上面的解决方案会导致项目被重新排序。有没有办法设置项目显示的优先级,而不改变项目在actionbar中的显示顺序

我已尝试更改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>


谢谢。

项目是从右到左排列的顺序,因此通过重新排列项目,它会有所帮助

<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>


此字段从右向左运行,因此您需要根据此字段对代码进行右转。请记住。

我从阅读您的问题中得到的信息是您希望显示操作\u addnew应显示在右侧&它应始终显示给每个人
试试这个

    <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>

从左到右给出第一项

android:orderInCategory="0"
第二项

android:orderInCategory="1"

等等。

请发布您的code@NarenderNishad完成了@GCH请查看我的回答我已经尝试过了(我将编辑问题),但似乎没有什么区别-orderInCategory中的值似乎覆盖了项目在文件中的显示顺序。为免生疑问,在问题中使用类xml和在回答中使用类xml会产生相同的结果。请删除android:orderInCategory=“”属性,然后尝试如果希望某些项目以溢出模式显示,请将它们分组到tagI have中,并已编辑问题-我可以在不使用orderInCategory的情况下更改顺序,但是,如果没有足够的空间显示所有项目,则需要在类别中进行排序,以确保我可以控制显示的项目的优先级。在这种情况下,我总是希望显示“添加新”按钮,但我希望它位于右侧。我不确定我是否理解标记注释,您能否澄清?我不确定我是否理解。我应该怎么做才能得到我想要的行为?这几乎肯定会在这个特定的情况下起作用,我有一个图标,几乎肯定会适合。android文档中的“始终”表示“始终将此项放置在操作栏中。除非项目始终显示在操作栏中非常重要,否则请避免使用此选项。将多个项目设置为始终显示为操作项可能会导致它们与操作栏中的其他UI重叠。”。在这种情况下,如果没有空间,我不介意按钮是否出现在溢出菜单上,但是,如果它确实显示,我希望能够控制它呈现的位置。为避免疑问,一旦我知道如何操作,我将指定显示其他项的顺序,这不一定是它们在栏上显示/在溢出上隐藏的优先级顺序。
android:orderInCategory="1"