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


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

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

18 143

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

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

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

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

удалить или показать заголовок с помощью:

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" />

getSupportActionBar().setDisplayShowHomeEnabled(false); в работе

Ex:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_layout);

    //in this line
    getSupportActionBar().setDisplayShowHomeEnabled(false);
}