2015-06-28 3 views
0

Это мое меню 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 и его дочерние элементы отображаются вместе с «Случайным пунктом». Мне интересно, почему меню так себя ведет? Что-то я не делаю правильно?

+0

Вы пытались добавить 'андроид: id' каждый элемент? – ianhanniballake

+0

Да, и результат тот же. Ошибка копирования-вставки, все элементы имеют идентификатор кода, который я тестирую. – ez4nick

+0

Включает ли такие, как 'Title 3'? – ianhanniballake

ответ

0

возвращение false в вашем onPrepareOptionsMenu так его называют все время, если у вас есть onCreatOptionsMenu и вы делаете вещи там вернуть true поэтому его не называли все время

также для общего назначения меню здесь в onPrepareOptionsMenu(Menu menu) это меню передается на ваш Activity или Fragment; если вы хотите сохранить MENU раздувания всего времени я предлагаю вам сделать это в onCreatOptionsMenu и вернуть false, но вы можете сделать, а

menu = getMenuInflater().inflate(R.menu.menu1, n.getMenu()); 
Смежные вопросы