it-swarm.com.ru

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

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

Кто-нибудь знает, как это сделать? Желательно сделать это вXML.

144
Hrafn

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

тема до v11

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

v11 и выше тема

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

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

57
Charles Madere

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

<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, и это прекрасно работает.

228
Qiqi Abaziz

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

getActionBar().setIcon(
   new ColorDrawable(getResources().getColor(Android.R.color.transparent)));    
114
Laksh

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

getActionBar().setDisplayShowHomeEnabled(false);
47
Brune

Призвание 

mActionBar.setDisplayHomeAsUpEnabled(true);

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

mActionBar.setDisplayShowHomeEnabled(false);

будет скрывать логотип, но отображать значок Home As Up. :)

27
Atul O Holic

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

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

Также сделает ваши параметры пунктов прозрачными.

15
Tevlon
getActionBar().setIcon(Android.R.color.transparent);

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

12
dn_c
    //disable application icon from ActionBar
    getActionBar().setDisplayShowHomeEnabled(false);

    //disable application name from ActionBar
    getActionBar().setDisplayShowTitleEnabled(false);
11
Pawel Miechowiecki

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

getActionBar().setDisplayShowTitleEnabled(true);

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

getActionBar().setDisplayUseLogoEnabled(false);

Удалить все:

getActionBar().setDisplayShowHomeEnabled(false);
10
Tiago Gouvêa

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

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

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

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

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

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

и это работало нормально.

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

9
Sam

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

        getActionBar().setIcon(
        new ColorDrawable(getResources().getColor(Android.R.color.transparent)));
2
user2900761
getActionBar().setIcon(new ColorDrawable(getResources().getColor(Android.R.color.transparent)));
getActionBar().setDisplayHomeAsUpEnabled(true);
2
user3748515

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

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

...........

1
Avinash Ajay Pandey

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

getActionBar().setDisplayShowHomeEnabled(false);

иначе:

getSupportActionBar().setDisplayShowHomeEnabled(false);

(потому что это нуждается в поддержке библиотеки.)

1
David

Ничто из вышеперечисленного не сработало. 

Но это добилось цели: 

override fun onCreate() {
    setContentView(R.layout.activity_main)

    setSupportActionBar(toolbar)
    toolbar.logo = null

(убран значок с панели инструментов)

0
Dan Alboteanu

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

values ​​\ 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 (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>
0
Nilzor

Самый быстрый способ - это изменить свой 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" />
0
Jordi Alonso

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

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

выше строки скрыть ваш Actionbar.

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

0
A.A