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(检查示例)
根据文档,要以编程方式将项目添加到菜单,您可以使用 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(检查示例)