Подтвердить что ты не робот

Значок приложения не отображается на панели действий.

Я выполнил инструкции по созданию нового проекта андроида, и я получил runnable, кроме проблемы с панелью действий. Проблема в том, что значок приложения не отображается рядом с названием приложения на панели действий. Я создал проект с приведенной ниже конфигурацией:

  • Минимальный требуемый SDK: API 8: Android 2.2 (Froyo)

  • Target SDK: API 21: Android 4.X(предварительный просмотр L)

  • Скомпилируйте с помощью API 21: Android 4.X(предварительный просмотр L)

  • Тема: Holo Light с Dark Action Bar (Eclipse задает соответствующую тему приложения)

  • Библиотека поддержки Android 21.0.1

  • Стили инструментов Android SDK 21.1.1

Поскольку мой минимальный sdk - api 8, который не поддерживает панель действий, поэтому проект включает appcompat_v7 library, чтобы разрешить функцию панели действий. Если я установил минимальный sdk на api 14 (android 4.0) или выше, тогда проект не включает appcompat_v7 library, и значок приложения также будет успешно показан. Но мне нужно мое приложение для поддержки старых Android-телефонов с низким уровнем api 8. Итак, что мне делать, чтобы исправить эту проблему? Очень ценю вас, ребята, внимание.

P.S: Я рассмотрел задачу выше на windows, mac, eclipse, android studio и получил тот же результат.

4b9b3361

Ответ 1

Вы используете AppCompat версию 21+, и это нормально.

Панель действий следует рекомендациям по дизайну материалов и использует Toolbar. Как вы можете прочитать здесь:

Использование значка приложения плюс заголовок в качестве стандартного макета обескураженными устройствами API 21 и более новыми.

Если вы хотите использовать значок приложения (но я его отпугиваю), вы можете использовать метод setLogo().

Что-то вроде этого:

ActionBar actionBar = getSupportActionBar();
actionBar.setLogo(R.drawable.my_logo);
actionBar.setDisplayUseLogoEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);

Ответ 2

Эта проблема возникает при использовании библиотеки поддержки, пересмотренной 21.

Использование:

ActionBar actionBar = getSupportActionBar();
actionBar.setLogo(R.drawable.ic_launcher);
actionBar.setDisplayUseLogoEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);

Это сработало для меня или вы можете использовать панель инструментов. Панель инструментов представляет собой обобщение баров действий для использования в макетах приложений.

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

Ссылка: https://developer.android.com/reference/android/support/v7/widget/Toolbar.html

Ответ 3

Убедитесь, что у вас установлен значок в файле manifest.xml в теге приложения как:

    android:icon="@drawable/launcher_icon"

Затем в методе onCreate вставьте следующие строки:

    ActionBar ab =getSupportActionBar(); 
    ab.setDisplayShowHomeEnabled(true);
    ab.setIcon(R.drawable.launcher_icon);

Ответ 4

Это обычная "проблема". Прежде чем вы вытащите свои волосы, убедитесь, что используете:

import android.support.v7.app.ActionBar; //or the v4, haven't tried with that though

и не:

import android.app.ActionBar;

а затем:

ActionBar actionBar;
actionBar = getSupportActionBar();

вместо:

actionBar = getActionBar();

И наконец:

if (actionBar != null) {
        // enabling action bar app icon and behaving it as toggle button           
        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setIcon(R.drawable.your_icon);
        actionBar.setHomeButtonEnabled(true);
        actionBar.setDisplayShowHomeEnabled(true);
    }

Ответ 5

Логотип атрибута используется только в уровне API 11 и выше (текущий мин - 8), я тоже был смущен этим вопросом, возможно, Google не хочет, чтобы значок показывался на материальном дизайне, когда установлен минимальный sdk до 14 или выше и до 21 года, он использует голографическую тему, у нее есть значок, но стиль appcompat больше похож на материальный дизайн, я думаю, может быть, Google просто забудет изменить голографическую тему

Ответ 6

IN Style.xml

 <style name="MyTheme_ActionBar" parent="@style/Theme.AppCompat.Light">
   <item name="icon">@drawable/actionbar_logo</item>
  </style>

В действии добавьте это и попробуйте

ActionBar mActionBar = getSupportActionBar();
mActionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP |
                             ActionBar.DISPLAY_SHOW_CUSTOM |
                             ActionBar.DISPLAY_SHOW_HOME);