Android - 无法将项目添加到导航视图菜单的顶部

时间:2016-12-31 03:24:41

标签: android android-menu android-navigationview

根据文档,要以编程方式将项目添加到菜单,请使用this

通过Menu.add(Menu.NONE, Menu.NONE, 0, "item");我可以将项目添加到导航视图菜单的最顶部,但尽管如此,新创建的项目仍会添加到底部。这可能是什么问题?

2 个答案:

答案 0 :(得分:0)

您必须使用android:orderInCategory将菜单放在正确的位置。菜单显示的顶部Integer越高。为您的菜单中的所有项目以及添加时提供此android:orderInCategory

答案 1 :(得分:0)

   @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        menu.add(Menu.NONE, Menu.NONE, 1000, "Item First");
        menu.add(Menu.NONE, Menu.NONE, 500, "Item Second");
        menu.add(Menu.NONE, Menu.NONE, 200, "Item Third");

        return true;
    }
// 200 is lowest 500 in middle  and finally 1000 so the order is like below 

enter image description here

应该适合你!

注意:如果您同时使用xml和代码

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        menu.add(Menu.NONE, Menu.NONE, 0, "1000"); //<---- It's 0
        menu.add(Menu.NONE, Menu.NONE, 500, "500");
        menu.add(Menu.NONE, Menu.NONE, 200, "200");
        return true;
    }

和xml:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/action_settings"
                                      // <----------not Given
        android:title="5000"
        app:showAsAction="never" />

    <item
        android:id="@+id/main_item"
        android:orderInCategory="100"
        android:title="200"/>

    <item
        android:id="@+id/teams_item"
        android:orderInCategory="800"
        android:title="800"/>
</menu>

如果您忘记将orderInCategory添加到 5000 中的项目,那么这些项目会排在最前面,优先考虑xml(请查看示例)

enter image description here