Show icon in Aktionsleiste / Symbolleiste mit AppCompat - v7 21

? ligi @ | Original: StackOverFlow
---

Ich habe versucht, diese - aber immer noch nicht sehen, das Symbol wie vor :

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

Es scheint zu funktionieren, wenn ich benutzerdefinierte Symbolleiste - aber das würde mich zwingen, alle Layouts berühren - gibt es einen besseren Weg, dies zu tun ?

---

Top 5 Antwort

1Chris Banes @

Try using:

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

In der modernen Android Benutzeroberflächen Entwickler sollten mehr auf einem optisch schlanke   verschiedene Farbschema für Symbolleisten als auf ihre Anwendungssymbol . die   Verwendung von Programm-Icon und Titel als Standard-Layout wird abgeraten   API auf 21 Geräte und neuer.

Wenn Sie nicht einverstanden mit Ihnen ausprobieren können:

So erstellen Sie die Symbolleiste 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" />

In Ihrer Tätigkeit :

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

verwenden Sie die https://developer.android.com/reference/android/widget/Toolbar.html#setLogo(android.graphics.drawable.Drawable) Verfahren, um das Symbol festgelegt .  https://chris.banes.me/2014/10/17/appcompat-v21/

3nadavfima @

getSupportActionBar().setDisplayShowHomeEnabled(true);

along with

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

4Michał K @

Dieser arbeitete für mich :

    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 @

Eine bessere Möglichkeit zur Einstellung mehrere Optionen :

setIcon/setLogo Methode funktioniert nur, wenn Sie festgelegt haben Displayoptions Versuchen Sie, diese -

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

Sie können auch Optionen für die Anzeige LOGO (fügen Sie einfach konstant ActionBar.DISPLAY_USE_LOGO ) gesetzt . Weitere Angaben - http://developer.android.com/reference/android/support/v7/app/ActionBar.html#setDisplayOptions(int,%20int)