这是我的菜单xml文件:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_menu">
<item
android:icon="@drawable/ic_local_airport_white_48dp"
android:id="@+id/GooglePlayMenu"
android:title="Title 1">
<menu>
<item
android:id="@+id/Sign_in_drawer"
android:icon="@drawable/games_controller_grey"
android:title="Sign in" />
<item
android:id="@+id/ach"
android:icon="@drawable/games_achievements"
android:title="Achievements" />
</menu>
</item>
<item
android:icon="@drawable/ic_local_airport_white_48dp"
android:title="Title 2">
<menu>
<item
android:id="@+id/quizStart25"
android:icon="@drawable/ic_local_airport_white_48dp"
android:title="25 Questions" />
<item
android:id="@+id/quizStart10"
android:icon="@drawable/ic_local_airport_white_48dp"
android:title="10 Questions" />
</menu>
</item>
<group android:checkableBehavior="single">
<item
android:id="@+id/gallery"
android:icon="@drawable/ic_photo_library_white_48dp"
android:title="Gallery" />
<item
android:id="@+id/stats"
android:icon="@drawable/ic_toc_white_48dp"
android:title="Statistics" />
<item
android:id="@+id/store"
android:icon="@drawable/ic_shop_white_48dp"
android:title="Store" />
<item
android:id="@+id/settings"
android:icon="@drawable/ic_settings_white_48dp"
android:title="Settings" />
<item
android:id="@+id/about"
android:icon="@drawable/ic_info_white_48dp"
android:title="About" />
</group>
<item android:title="Title 3">
<menu>
<item
android:id="@+id/help_drawer"
android:icon="@drawable/ic_help_white_48dp"
android:title="Help" />
<item
android:id="@+id/report"
android:icon="@drawable/ic_report_problem_white_48dp"
android:title="Contact Developer" />
<item
android:title="Google+ Community" />
</menu>
</item>
我有另一个类似但在onPrepareOptionsMenu
的菜单我想决定显示哪个菜单。现在开始测试上面的菜单,我有以下内容:
n = (NavigationView) findViewById(R.id.nav);
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
Log.d("NICK","onPrepareOptionsMenu");
getMenuInflater().inflate(R.menu.menu1, n.getMenu());
//n.getMenu().add("Random item");
return super.onPrepareOptionsMenu(menu);
}
这将显示我的菜单,但仅直到标题3.标题3及其子项目不显示为我期望它们。任何当我取消注释行n.getMenu().add("Random item");
时,标题3及其子项与&#34;随机项&#34;一起显示。我想知道为什么菜单会像这样?有什么我做得不好吗?
答案 0 :(得分:0)
在您的false
中返回onPrepareOptionsMenu
,以便一直调用它,如果您有onCreatOptionsMenu
,那么您在那里返回true
,因此不会一直调用< / p>
同样为了一般用途,onPrepareOptionsMenu(Menu menu)
中的菜单是传递给Activity
或Fragment
的菜单;如果你想一直保持充气菜单,我建议你在onCreatOptionsMenu
进行,然后返回false
,但你可以做
menu = getMenuInflater().inflate(R.menu.menu1, n.getMenu());