2015-10-27 20 views
9

Ho lo stesso problema di quanto inviato più volte like here o here. Mi definisco una voce di menu che viene mostrata in anteprima in AndroidStudio:Voci di menu non visualizzate nella barra dei menu

enter image description here

Ma quando faccio funzionare l'applicazione sul mio cellulare l'icona (un'immagine di png) non è visibile, e c'è un sacco di spazio a disposizione. Tuttavia, questa opzione 'Aggiungi' viene visualizzata nel menu Opzioni (all'estrema destra insieme a 'Srttings'). Qui è la mia menu.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context=".MainActivity"> 

    <item android:id="@+id/action_favourite" 
     android:icon="@mipmap/ic_add" 
     android:title="@string/menu_add" 
     android:showAsAction="always"/> 


    <item android:id="@+id/action_settings" android:title="@string/action_settings" 
     android:orderInCategory="100" app:showAsAction="never" /> 

</menu> 

ho provato i suggerimenti che ho trovato, ma nessuno di loro ha risolto il mio problema. Il mio telefono è un LG G3. Come posso risolvere questo problema?

Ulteriori informazioni: onCreateOptionsMenu

@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_main, menu); 
    return true; 
} 
+0

Potrebbe condividere il codice 'onCreateOptionsMenu()' e 'onPrepareOptionsMenu()'? – antonio

+0

Si prega di consultare la domanda aggiornata; Non ho alcun metodo 'onPrepareOptionsMenu()' ... – Alex

+0

Hai provato a spostare il tuo 'onCreateOptionsMenu' su' onPrepareOptionsMenu'? La documentazione dice che 'onPrepareOptionsMenu' viene chiamato subito prima che il menu venga mostrato, ogni volta che viene mostrato. La mia scommessa è che gonfiando il menu su 'onCreateOptionsMenu' il sistema non ha ancora calcolato la dimensione del menu e tutte le opzioni del menu sono mostrate in overflow. – antonio

risposta

8

Basta usare app:showAsAction="always" e xmlns:app="http://schemas.android.com/apk/res-auto" allora verrà mostrato.

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context=".MainActivity"> 

    <item android:id="@+id/action_favourite" 
     android:icon="@mipmap/ic_add" 
     android:title="@string/menu_add" 
     app:showAsAction="always"/> 


    <item android:id="@+id/action_settings" 
     android:title="@string/action_settings" 
     android:orderInCategory="100" 
     app:showAsAction="never" /> 

</menu> 

Probabilmente stai utilizzando la libreria di supporto che dipende dallo spazio dei nomi dell'app. In caso di dubbi, aggiungi la stessa proprietà due volte (spazi di nomi android: e app:).

+0

Ho appena provato il tuo suggerimento, ma ancora non vedo il nome "Aggiungi" nella barra dei menu. Esatto stesso comportamento di prima ... – Alex

+0

Se si utilizza il codice fornito, dovrebbe essere presente l'icona nella barra degli strumenti e le opzioni nel menu di overflow. Cosa stai vedendo esattamente? –

+0

Proprio come nell'immagine pubblicata nella barra dei menu, ma solo senza l'icona 'più' nella barra dei menu. Dice "Testapp" a sinistra e vedo i tre punti a destra. Quando tocco questi tre punti, vedo il menu "Aggiungi" (e un "Menu Impostazioni"). – Alex

1

In onCreate() aggiungere setHasOptionsMenu(true)

E voi probabilmente gonfiare il file menu sbagliato.

Problemi correlati