Mostra un'icona ActionBar / barra degli strumenti con AppCompat - v7 21

? ligi @ | Original: StackOverFlow
---

Ho provato questi - ma ancora non si vede l'icona come prima :

getSupportActionBar().setLogo(R.drawable.ic_launcher);
getSupportActionBar().setDisplayUseLogoEnabled(true);
getSupportActionBar().setIcon(R.drawable.ic_launcher);

Sembra funzionare quando uso barra degli strumenti personalizzata - ma che mi avrebbe costretto a toccare tutti i layout - c'è un modo migliore per farlo ?

---

Top 5 Risposta

1Chris Banes @

Try using:

ActionBar ab = getSupportActionBar();
ab.setHomeButtonEnabled(true);
ab.setDisplayUseLogoEnabled(true);
ab.setLogo(R.drawable.ic_launcher);
2LordRaydenMK @

Nei moderni sviluppatori Android UI dovrebbe appoggiarsi più su un visivamente   schema di colore diverso per le barre di quello offerto dal sull'icona dell'applicazione . il   uso di icona dell'applicazione più titolo come un layout standard è scoraggiato   su API 21 dispositivi e nuovi .

Se non siete d'accordo si può provare con :

Per creare la barra degli strumenti in XML :

<android.support.v7.widget.Toolbar  
    android:id="@+id/my_awesome_toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary" />

Nella vostra attività:

@Override
public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);
    setContentView(R.layout.my_layout);

    Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
    setSupportActionBar(toolbar);
}

Utilizzare il https://developer.android.com/reference/android/widget/Toolbar.html#setLogo(android.graphics.drawable.Drawable) il metodo per impostare l'icona.  https://chris.banes.me/2014/10/17/appcompat-v21/

3nadavfima @

getSupportActionBar().setDisplayShowHomeEnabled(true);

along with

getSupportActionBar().setIcon(R.drawable.ic_launcher);

4Michał K @

Questo ha funzionato per me :

    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setDisplayUseLogoEnabled(true);
    getSupportActionBar().setLogo(R.drawable.ic_logo);
    getSupportActionBar().setDisplayShowTitleEnabled(false); //optional

as well as:

    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setIcon(R.drawable.ic_logo); //also displays wide logo
    getSupportActionBar().setDisplayShowTitleEnabled(false); //optional
5Vintesh @

Un modo migliore per impostare più opzioni :

setIcon/setLogo Metodo funziona solo se è stata impostata DisplayOptions Prova questo -

actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);
actionBar.setIcon(R.drawable.ic_launcher);

È anche possibile impostare le opzioni per la visualizzazione di LOGO ( basta aggiungere costante ActionBar.DISPLAY_USE_LOGO ) . Maggiori informazioni - http://developer.android.com/reference/android/support/v7/app/ActionBar.html#setDisplayOptions(int,%20int)