Показать значок в ActionBar / панели с AppCompat -V7 21

? ligi @ | Original: StackOverFlow

Я попытался это - но все еще не видите значок, как раньше :

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

Это похоже на работу, когда я использую пользовательскую панель инструментов - но что бы заставить меня коснуться всех макетов - естьлучший способ сделать это?



Top 5 Respuesta

1Chris Banes @

Try using:

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


2LordRaydenMK @

В современных разработчиков Android СИЮ следует опираться больше навизуально   различных цветов схема для панелей инструментов, чем на его значке приложения.   Использование значок приложения, а также названия в качестве стандартного расположения не рекомендуется   на API 21 устройства и новые .

Если вы не согласны, вы можете попробовать с :

Чтобы создать панель инструментов в 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" />

В вашей деятельности :

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

Используйте https://developer.android.com/reference/android/widget/Toolbar.html#setLogo(android.graphics.drawable.Drawable) Метод для установки значка .  https://chris.banes.me/2014/10/17/appcompat-v21/

3nadavfima @

getSupportActionBar().setDisplayShowHomeEnabled(true);

along with

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

4Michał K @

Это работает для меня :

    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 @

Лучший способ для установки нескольких вариантов :

Метод setIcon/setLogo будет работать только, если вы установили DisplayOptions Попробуйте это -

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

Вы также можете установить параметры для отображения логотип ( просто добавить константу ActionBar.DISPLAY_USE_LOGO ) . Более подробная информация - http://developer.android.com/reference/android/support/v7/app/ActionBar.html#setDisplayOptions(int,%20int)