2013-12-11 13 views
16

Sto seguendo il tutorial su developer.android.com e sto provando ad aggiungere elementi sulla barra delle azioni.I pulsanti di azione non vengono visualizzati nella barra delle azioni?

Sebbene abbia aggiunto tutto il codice, l'azione di ricerca viene visualizzata come elemento di overflow anziché come elemento del pulsante di azione. Ho provato su dispositivi virtuali da 4 "e 7" con l'opzione tastiera morbida.

Ecco la

main_activity_actions.xml 
<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
<!-- Search, should appear as action button --> 
<item android:id="@+id/action_search" 
    android:icon="@drawable/ic_action_search" 
    android:title="@string/action_search" 
    android:showAsAction="ifRoom" /> 
<!-- Settings, should always be in the overflow --> 
<item android:id="@+id/action_settings" 
    android:title="@string/action_settings" 
    android:showAsAction="never" /> 
</menu> 

Ecco 's la MainActivity.javaonCreateOptionsMenu metodo.

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main_activity_actions, menu); 
     return super.onCreateOptionsMenu(menu); 
    } 

enter image description here

voglio imparare cosa provoca questo problema.

+0

Potrebbe fornire una schermata con l'overflow visibile? –

+3

Questo non sembra un duplicato di quella domanda ... – adamdport

risposta

48

Questo perché se si utilizza il supporto della libreria ActionBar AppCompat e ActionBarActivity è necessario creare i menu in modo diverso rispetto al modo standard di creare menu xml in ActioBarSherlock o ActionBar predefinito.

in modo da provare questo codice:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto"> 
     <item android:id="@+id/action_search" 
      android:icon="@drawable/ic_action_search" 
      android:title="@string/action_search" 
      app:showAsAction="always" /> 
     <item android:id="@+id/action_compose" 
      android:icon="@drawable/ic_action_compose" 
      android:title="@string/action_compose" 
      app:showAsAction="always"/> 
</menu> 
+4

Per chiunque altro con questo stesso problema, gli spazi dei nomi 'xmlns' nella parte superiore della definizione xml sono importanti. – MarcF

+0

@MarcF - perché sono importanti ?? – Anjum

+0

@Anjum - Come in questo non funzionerebbe per me senza quelle dichiarazioni. Forse ovvio per qualcun altro, ma al momento non era per me. – MarcF

8

Anche se il problema è stato risolto, mi permetta di inserire una domanda con ulteriori informazioni, si possono trovare utili da chiunque in seguito.

Ora, il problema è che avete utilizzato android:showAsAction="ifRoom" e android:showAsAction="never", invece se si vuole fare pulsante di azione sempre visibile quindi utilizzare android:showAsAction="always"

FYI, Android: showAsAction possono assumere una delle qualsiasi valore:

android: showAsAction = ["ifRoom" | "mai" | "withText" | "sempre" | "collapseActionView"]

enter image description here

Si può leggere di più su Menu Resource

Problemi correlati