根据文档,要以编程方式将项目添加到菜单,请使用this。
通过Menu.add(Menu.NONE, Menu.NONE, 0, "item");
我可以将项目添加到导航视图菜单的最顶部,但尽管如此,新创建的项目仍会添加到底部。这可能是什么问题?
答案 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
应该适合你!
注意:如果您同时使用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(请查看示例)