Удалить значок / логотип из панели действий на Android

Я пытался найти способ удаления значка / логотипа из панели действий, но единственное, что я нашел после часа поиска SO, документации Android и Google, – как удалить панель заголовка в целом. Это не то, чего я хочу. Только хотите удалить значок / логотип из строки заголовка.

Кто-нибудь знает, как это сделать? Предпочтительно, я хотел бы сделать это в XML .

Если вы определили android:logo="..." в <application> вашего AndroidManifest.xml , то вам нужно использовать этот материал, чтобы скрыть значок:

Тема pre-v11

 <item name="logo">@android:color/transparent</item> 

V11 и тема вверх

 <item name="android:logo">@android:color/transparent</item> 

Использование этих двух стилей правильно скрыло значок панели действий на 2.3 и 4.4 устройства для меня (это приложение использует AppCompat ).

Добавьте следующий код в стили панели действий:

 <item name="android:displayOptions">showHome|homeAsUp|showTitle</item> <item name="displayOptions">showHome|homeAsUp|showTitle</item> <item name="android:icon">@android:color/transparent</item> <!-- This does the magic! --> 

PS: Я использую Actionbar Sherlock, и это работает отлично.

Если вы не хотите, чтобы значок находился в определенной активности.

 getActionBar().setIcon( new ColorDrawable(getResources().getColor(android.R.color.transparent))); 

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

 getActionBar().setDisplayShowHomeEnabled(false); 

призвание

 mActionBar.setDisplayHomeAsUpEnabled(true); 

в дополнении к,

 mActionBar.setDisplayShowHomeEnabled(false); 

Скроет логотип, но отобразит значок «Дом как вверх». 🙂

Быть в курсе, что:

 <item name="android:icon">@android:color/transparent</item> 

Кроме того, ваши параметры будут прозрачными.

  //disable application icon from ActionBar getActionBar().setDisplayShowHomeEnabled(false); //disable application name from ActionBar getActionBar().setDisplayShowTitleEnabled(false); 
 getActionBar().setIcon(android.R.color.transparent); 

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

Вы также можете добавить код ниже в AndroidManifest.xml .

 android:icon="@android:color/transparent" 

Он будет работать нормально.

Но я обнаружил, что это создает проблему, так как значок запуска также становится прозрачным.

Поэтому я использовал:

 getActionBar().setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent))); 

И он работал нормально.

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

Удалите или покажите заголовок, используя:

 getActionBar().setDisplayShowTitleEnabled(true); 

Удалите или покажите логотип, используя:

 getActionBar().setDisplayUseLogoEnabled(false); 

Убрать все:

 getActionBar().setDisplayShowHomeEnabled(false); 

Я использовал это, и это сработало для меня.

  getActionBar().setIcon( new ColorDrawable(getResources().getColor(android.R.color.transparent))); 
 getActionBar().setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent))); getActionBar().setDisplayHomeAsUpEnabled(true); 

Перейдите в свой манифест, найдите тег приложения

  android:icon="@android:color/transparent"// simply add this on place of your icon 

….. … …

Ответ Qiqi Abaziz в порядке, но я все еще долгое время пытался заставить его работать с пакетом совместимости и применять стиль к правильным элементам. Кроме того, прозрачность-хак не нужна. Итак, вот полный пример работы для v8 и выше:

значения \ styles.xml

 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="MyActivityTheme" parent="@style/Theme.AppCompat"> <item name="actionBarStyle">@style/NoLogoActionBar</item> <!-- pre-v11-compatibility --> <item name="android:actionBarStyle">@style/NoLogoActionBar</item> </style> <style name="NoLogoActionBar" parent="@style/Widget.AppCompat.ActionBar"> <item name="displayOptions">showHome</item> <!-- pre-v11-compatibility --> <item name="android:displayOptions">showHome</item> </style> </resources> 

AndroidManifest.xml (оболочка)

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"> <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="19"/> <application android:theme="@android:style/Theme.Light.NoTitleBar"> <activity android:theme="@style/PentActivityTheme"/> </application> </manifest> 

Идите в манифест и найдите свою активность, затем добавьте этот код:

 android:theme="@android:style/Theme.NoTitleBar" 

Над строкой скрыть свою Actionbar .

Если вам нужна другая функция, вы можете увидеть другие параметры с помощью (CLR + SPC).

Я думаю, что точный ответ: для api 11 или выше:

 getActionBar().setDisplayShowHomeEnabled(false); 

в противном случае:

 getSupportActionBar().setDisplayShowHomeEnabled(false); 

(Потому что ему нужна библиотека поддержки.)

Самый быстрый способ – изменить ваш Manifest.xml. Если, например, вы хотите удалить логотип активности «Активность» и оставить логотип в других действиях, вы можете сделать следующее:

 <activity android:name=".home.XActivity" android:logo="@android:color/transparent" android:configChanges="orientation|keyboardHidden" /> <activity android:name=".home.HomeActivity" android:configChanges="orientation|keyboardHidden" />