Удалить значок / логотип из панели действий на android
Я пытался найти какой-то способ удаления значка/логотипа из панели действий, но единственное, что я нашел после часа поиска, так что документация Android и Google-это как удалить строку заголовка в целом. Это не то, чего я хочу. Хотите удалить значок/логотип из заголовка.
кто-нибудь знает, как это сделать? Предпочтительно я хотел бы сделать это в XML.
18 ответов:
если вы определили
android:logo="..."
на<application>
тегAndroidManifest.xml
, то вам нужно использовать этот материал, чтобы скрыть значок:pre-V11 theme
<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 Шерлок и это работает просто отлично.
Если вы не хотите, чтобы значок в конкретной деятельности.
getActionBar().setIcon( new ColorDrawable(getResources().getColor(android.R.color.transparent)));
вызов
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().setDisplayShowTitleEnabled(true);
удалить или показать логотип через:
getActionBar().setDisplayUseLogoEnabled(false);
удалить все:
getActionBar().setDisplayShowHomeEnabled(false);
Вы тоже можете добавить ниже код в AndroidManifest.xml.
android:icon="@android:color/transparent"
Он будет работать нормально.
но я обнаружил, что это дает проблему, поскольку значок запуска также становится прозрачным.
поэтому я использовал:
getActionBar().setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent)));
и он работал нормально.
но если у вас есть несколько действий и вы хотите сделать значок на действии прозрачным, то предыдущий подход будет работать.
я использовал это, и это сработало для меня.
getActionBar().setIcon( new ColorDrawable(getResources().getColor(android.R.color.transparent)));
getActionBar().setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent))); getActionBar().setDisplayHomeAsUpEnabled(true);
Я думаю, что точный ответ: для api 11 или выше:
getActionBar().setDisplayShowHomeEnabled(false);
в противном случае:
getSupportActionBar().setDisplayShowHomeEnabled(false);
(потому что ему нужна библиотека поддержки.)
перейдите в манифест и найдите тег приложения
android:icon="@android:color/transparent"// simply add this on place of your icon
..... ... ...
ответ Qiqi Abaziz в порядке, но я все еще долго боролся за то, чтобы он работал с пакетом совместимости и применял стиль к правильным элементам. Кроме того, прозрачность-Хак является излишним. Итак, вот полный пример работы для v8 и выше:
значения\стили.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 (shell)
<?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).
самый быстрый способ-это изменить свой Манифест.XML. Если, например, вы хотите удалить логотип действия "Activity" и оставить логотип в других действиях, вы можете сделать следующее:
<activity android:name=".home.XActivity" android:logo="@android:color/transparent" android:configChanges="orientation|keyboardHidden" /> <activity android:name=".home.HomeActivity" android:configChanges="orientation|keyboardHidden" />