Afficher une icône dans actionbar / barre d'outils avec AppCompat - v7 21

? ligi @ | Original: StackOverFlow

Je ai essayé ces - mais ne voyez toujours pas l'icône comme avant :

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

Il semble fonctionner lorsque je utilise barre d'outils personnalisée - mais cela me forcer à toucher tous les modèles - est -il une meilleure façon de le faire ?



Top 5 Respuesta

1Chris Banes @

Try using:

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


2LordRaydenMK @

Dans modernes développeurs Android ISU devrait pencher davantage sur un visuel   schéma de couleur distincte pour les barres d'outils que sur leur icône de l'application . le   utilisation de l'icône de l'application plus title comme une disposition standard est déconseillée   API sur 21 appareils et les nouveaux .

Si vous n'êtes pas d'accord vous pouvez essayer avec :

Pour créer la barre d'outils en 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" />

Dans votre activité :

@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);
}

Utilisez le https://developer.android.com/reference/android/widget/Toolbar.html#setLogo(android.graphics.drawable.Drawable) méthode pour définir l'icône .  https://chris.banes.me/2014/10/17/appcompat-v21/

3nadavfima @

getSupportActionBar().setDisplayShowHomeEnabled(true);

along with

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

4Michał K @

Cela a fonctionné pour moi:

    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 @

Une meilleure façon d'établir de multiples options :

Méthode setIcon/setLogo ne fonctionnera que si vous avez défini DisplayOptions Essayez ceci -

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

Vous pouvez également définir des options pour l'affichage LOGO ( il suffit d'ajouter constante ActionBar.DISPLAY_USE_LOGO ) . Plus d'informations - http://developer.android.com/reference/android/support/v7/app/ActionBar.html#setDisplayOptions(int,%20int)