Mostrar ícone na ActionBar / barra de ferramentas com AppCompat - v7 21

? ligi @ | Original: StackOverFlow
---

Eu tentei de tudo - mas ainda não vejo o ícone como antes :

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

Parece que funciona quando eu uso barra de ferramentas personalizada - mas que me forçar a tocar todos os layouts - existe uma maneira melhor de fazer isso ?

---

Top 5 Responder

1Chris Banes @

Try using:

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

Em modernas desenvolvedores Android UIs deve se inclinar mais para o visual   esquema de cores distintas para as barras de ferramentas do que em seu ícone da aplicação. o   uso de ícone do aplicativo, mais do título como um layout padrão é desencorajado   na API 21 dispositivos e mais recentes .

Se você não concordar, você pode tentar com :

Para criar a barra de ferramentas em 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" />

Em sua atividade:

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

use a https://developer.android.com/reference/android/widget/Toolbar.html#setLogo(android.graphics.drawable.Drawable) método para definir o ícone .  https://chris.banes.me/2014/10/17/appcompat-v21/

3nadavfima @

getSupportActionBar().setDisplayShowHomeEnabled(true);

along with

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

4Michał K @

Isso funcionou para mim :

    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 @

A melhor maneira para definir várias opções :

setIcon/setLogo Método só funcionará se você tiver definido displayoptions Tente isto -

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

Você também pode definir opções para a exibição LOGO ( basta adicionar constante ActionBar.DISPLAY_USE_LOGO ) . Mais informações - http://developer.android.com/reference/android/support/v7/app/ActionBar.html#setDisplayOptions(int,%20int)