2015-08-14 31 views
5

Dopo il passaggio alla barra degli strumenti c'è un problema con le icone del menu. Anche se ho impostato per una voce di menu Android: showAsAction = "always" non mostra l'icona, posso solo trovarla facendo clic sull'icona popup.showAsAction = "sempre" viene ignorato nella barra degli strumenti

Questo è myActivity

public class myActivity extends AppCompatActivity{ 
    ......... 
    public void onCreate(....){ 
    ............. 
    Toolbar toolbar = (Toolbar) findViewById(....); 
    setSupportActionBar(toolbar); 
    } 
    ............ 
    public boolean onCreateOptionsMenu(Menu menu{ 
      getMenuInflater().inflate(R.menu.menu, menu); 

      return super.onCreateOptionsMenu(menu); 
    } 
    ............. 
} 

menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item 
     android:id="@+id/settings" 
     android:icon="@drawable/settings" 
     android:title="settings" 
     android:showAsAction="always" 
    /> 
    <item 
     android:id="@+id/help" 
     android:icon="@drawable/help" 
     android:title="help" 
     android:showAsAction="never" 
    /> 
</menu> 

Entrambe le impostazioni e aiutare le icone sono solo in menu a comparsa. Quindi, come mostrare l'icona delle impostazioni sulla barra degli strumenti?

+0

Risposta da CommonsWare è buona ma non dimenticare di impostare la barra degli strumenti come barra delle azioni di supporto setSupportActionBar (barra degli strumenti); – Bogman

risposta

15

Sostituire android:showAsAction con app:showAsAction. Sarà inoltre necessario aggiungere xmlns:app="http://schemas.android.com/apk/res-auto" insieme all'elemento esistente xmlns nell'elemento principale.

+0

Grazie a CommonsWare, il cambiamento sopra funziona. – Swapnil

1

Con AppCompat c'è un piccolo cambiamento. Se stai utilizzando lanugine, si lamenterà di ciò. Digitare quanto segue:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
<item 
    android:id="@+id/someId" 
    android:title="@string/someText" 
    app:showAsAction="always"/> 
</menu> 

È necessario dichiarare lo spazio dei nomi "app" e fare riferimento ad esso.