2012-11-21 14 views
32

Voglio abilitare il pulsante home nella barra delle azioni. Sto usando questo codice:Qual è la differenza tra setDisplayHomeAsUpEnabled e setHomeButtonEnabled?

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { 
      actionbar.setHomeButtonEnabled(true); 
      actionbar.setDisplayHomeAsUpEnabled(true); 
} 

In questo sto usando setHomeButtonEnabled e setDisplayHomeAsUpEnabled a mettere un segno di nuovo a icona nella ActionBar. Se utilizzo solo setDisplayHomeAsUpEnabled, funzionerà anche? È necessario impostare setHomeButtonEnabled su true?

Qual è la differenza tra i due?

risposta

65

Per quello che vuoi fare, actionBar.setDisplayHomeAsUpEnabled(true) è sufficiente.

Per la differenza:
actionBar.setHomeButtonEnabled(true) renderà semplicemente l'icona selezionabile, con il colore sullo sfondo dell'icona come feedback del clic.
actionBar.setDisplayHomeAsUpEnabled(true) renderà l'icona selezionabile e aggiungere < alla sinistra dell'icona.

+0

Quando solo 'setHomeButtonEnabled (vero)' è impostata, sarà ancora chiamare 'onOptionsItemSelected'? –

+0

Penso di sì ma non ho controllato. – yDelouis

+5

Per il record, ho controllato e 'setHomeButtonEnabled (true)' ** fa ** chiama ancora 'onOptionsItemSelected' e può essere catturato nello stesso modo in cui' item.getItemId() == android.R.id.home'. Quindi l'unica differenza è che l'icona '<'. –

3

Come Android dice:

- setDisplayShowHomeEnabled(boolean showHome) 
    // Set whether to include the application home affordance in the action bar. 
    // (and put a back mark at icon in ActionBar for "up" navigation) 

-setHomeButtonEnabled(boolean enabled) 
    // Enable or disable the "home" button in the corner of the action bar. 
    // (clickable or not) 

Dovrebbe essere abbastanza chiaro penso

Problemi correlati