Ho cercato di trovare una risposta a riguardo ma senza fortuna. Ho un frammento che ha una voce di menu chiamata 'menu_roi_result_calc'. Ogni volta che si verifica una rotazione dello schermo, viene creata una nuova voce di menu. Il codice è il seguente:Duplicate ActionBar Button on Rotation
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_roi_result_calc, menu);
return true;
}
Tuttavia, dopo un paio di rotazioni dello schermo, questo è quello che ottengo:
ho la sensazione che questo è dovuto al fatto che il menu gli oggetti vengono ricreati ad ogni rotazione, quindi aggiungendo un nuovo oggetto ogni volta che si verifica una rotazione. Come faccio a smettere? Come posso verificare se l'articolo è presente e impedire di ricrearlo di nuovo? Qualsiasi esempio di codice sarebbe molto apprezzato.
Oltre al codice che mostri qui, aggiungi/rimuovi manualmente qualsiasi pulsante nel menu in qualsiasi altra parte del tuo codice? –
Ciao @AlexStyl, no, tutto ciò che ho è un'attività contenente che chiama onCreateOptionsMenu per aggiungere il pulsante 'Help' (nessun problema lì). Questa stessa attività ospita due frammenti affiancati. Uno dei frammenti ha una chiamata a onCreateOptionsMenu per aggiungere il pulsante della barra delle azioni "Condividi" (quello che vedi ripetuto sullo schermo). Il problema sembra essere con la chiamata ** frammento ** a onCreateOptionsMenu. Devo dire che sto sviluppando esclusivamente per le API di livello 21 e successive. Mi è venuto in mente che forse questo sta accadendo a causa della gestione inadeguata dell'attività di hosting. Ma questa è solo una supposizione. – CBA110
Il codice che hai postato non sembra avere problemi. È possibile che si aggiungano i frammenti all'attività in modo dinamico? Se lo fai, assicurati che l'attività venga ricreata per non aggiungere nuovamente i frammenti? –