2013-02-24 15 views
6

Mi piacerebbe fare una modalità di modifica, nello stile dell'app tablet gmail. Se l'utente preme il pulsante di modifica sulla barra delle azioni, allora mi piacerebbe mostrargli una vista di azione, che ha un pulsante fatto sul lato sinistro e un pulsante di cancellazione sulla destra.come nascondere il pulsante nella barra delle azioni

Ho un esempio che funziona senza ActionBarSherlock qui: https://code.google.com/p/romannurik-code/source/browse/misc/donediscard

Vorrei attenersi a ActionBarSherlock, per ragioni di compatibilità.

Questo è il modo in cui ho risolto in onCreateOptionsMenu:

getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.white)); 
getSupportActionBar().setIcon(R.drawable.white); 

for (int i = 0; i < menu.size(); i++) { 
    menu.getItem(i).setVisible(false); } 

getSupportActionBar().setDisplayHomeAsUpEnabled(false); non fa nulla, così ho dovuto impostare l'icona sede di un bianco 1x1 pixel drawable.

Ho anche dovuto impostare il colore di sfondo della barra di azione, come colore di sfondo della vista dell'azione. Se non l'avessi fatto, l'icona di casa 1x1 avrebbe riempito tutto intorno e il colore dello sfondo originale sarebbe stato visibile attorno al pulsante bianco di casa.

Chiunque ha una soluzione migliore per questo?

edit: ho anche dovuto cambiare lo stile:

<style name="Theme.Styled" parent="Theme.Sherlock.Light"> 
     <item name="android:homeAsUpIndicator">@drawable/white</item> 
     <item name="homeAsUpIndicator">@drawable/white</item> 
</style> 

Also..settings Android: homeAsUpIndicator aumentato il mio livello di API min 8-11 che è anche un problema.

risposta

6

Eri quasi arrivato. Per nascondere completamente l'icona/logo, utilizzare setDisplayShowHomeEnabled(false). La chiamata che stai utilizzando rimuove solo la piccola freccia che indica che l'icona funge anche da pulsante "su".

+0

setDisplayShowHomeEnabled (false) non fa nulla. Oh e ora sono bloccato con quella stupida piccola freccia. Come diavolo lo faccio sparire. Il codice che ho incollato nel post di apertura non funziona più per me \: – berestom

+0

Oh ho capito. Post di apertura aggiornato. Ho accidentalmente cancellato alcune righe da styles.xml. – berestom

+0

Uso il mio drawable come getActionBar(). SetLogo (R.drawable.back_button); dopo getActionBar(). setDisplayHomeAsUpEnabled (false) ;. Voglio scrivere un testo con quello. Come nell'immagine come: http://stackoverflow.com/questions/29486908/android-action-bar-home-button-customize –

30

Se siete a livello di API 14 o superiore e non si utilizza ActionBarSherlock, questo codice in onCreateOptionsMenu disabiliterà il pulsante su, rimuovere il cursore a sinistra, e rimuovere l'icona:

ActionBar actionBar = getActionBar(); 
if (actionBar != null) { 
    actionBar.setHomeButtonEnabled(false); // disable the button 
    actionBar.setDisplayHomeAsUpEnabled(false); // remove the left caret 
    actionBar.setDisplayShowHomeEnabled(false); // remove the icon 
} 
+0

Ho usato il tuo codice e funziona correttamente. Sono in grado di applicare il mio logo come pulsante Home, ma voglio impostare il testo anche con il pulsante Indietro. sembra un'immagine nel link: http: // StackOverflow.it/questions/29486908/android-action-bar-home-button-customize. Puoi aiutarmi in questo? –

+2

Questo ha funzionato per me! Dovevo solo cambiare '' 'getActionBar()' '' in '' 'getSupportActionBar()' ''. Grazie! – wyzkid207

-2

Anche se si tratta di un post precedente, mi piacerebbe condividere una risposta che ha funzionato per me.

per nascondere il pulsante UP in ActionBar, utilizzare il seguente in onCreateOptionsMenu:

if (getSupportActionBar() != 
      getSupportActionBar().hide(); 
     } 

Per rimuovere il pulsante UP in ActionBar, utilizzare il seguente in onCreateOptionsMenu:

if (getSupportActionBar() != 
      getSupportActionBar().setDisplayHomeAsUpEnabled(false); 
     } 

lo spero aiutare i neofiti.

Problemi correlati