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

Android - Can't add item to top of navigation view menu

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

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

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

   @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 

应该适合你!

注意 :如果您同时使用 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(检查示例)