2017-08-23 1 views
0

Je suis en train de cacher Optionsdu par fonction de navigation entre fragment dans la même activité: -Comment obtenir OptionsMenu avant gonflé?

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    this.menu = menu; 
    getMenuInflater().inflate(R.menu.result, menu); 
    return true; 

} 

Et je le cache en fonction de la position du fragment comme:

if (newStepPosition == 0) { 
     if (menu != null){ 
      menu.setGroupVisible(R.id.resultGroup, false); 
     } 
    } 
    if (newStepPosition == 1) { 
      if (menu != null){ 
      menu.setGroupVisible(R.id.resultGroup, true); 
     } 

    } 

Mon problème est que je dois voir l'optionMenu pour la première fois que j'ai créé l'activité puis le travail de fil de cache et d'apparaître, comment éviter cela?

Je dois masquer l'option Menu dans onCreat() mais cela n'a pas fonctionné.

Répondre

1

Vous ne pouvez pas masquer le menu de la méthode onCreate car il n'est pas encore gonflé.

Essayez d'utiliser ceci:

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 

    menu.clear(); 

    // do what you want 

    return super.onPrepareOptionsMenu(menu); 
} 

Sinon, mettre votre logique onCreateOptionsMenu méthode et appel invalidateOptionsMenu() lorsque vous avez besoin de rafraîchir quelque chose.

+0

merci d'en avoir fini avec le onCreateOptionsMenu –

0

Je l'ai fait avec onCreateOptionsMenu, et après cette apparence, la logique fonctionne parfaitement.

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    this.menu = menu; 
    getMenuInflater().inflate(R.menu.result, menu); 
    if (menu != null){ 
     menu.setGroupVisible(R.id.resultGroup, false); 
    } 
    return true; 

}