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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  android:icon="@drawable/launcher_icon" 

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

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

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

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

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

IN Style.xml

   

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

 ActionBar mActionBar = getSupportActionBar(); mActionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME); 
Давайте будем гением компьютера.