147

我一直在尝试找到某种从操作栏中删除图标/徽标的方法,但在搜索 SO、Android 的文档和 Google 一个小时后,我发现的唯一一件事就是如何完全删除标题栏。那不是我想要的。只想从标题栏中删除图标/徽标。

有谁知道如何做到这一点?最好我想在XML中执行此操作。

4

18 回答 18

228

在您的操作栏样式中添加以下代码:

<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,这很好用。

于 2013-02-21T09:02:14.093 回答
115

如果您不希望在特定活动中使用该图标。

getActionBar().setIcon(
   new ColorDrawable(getResources().getColor(android.R.color.transparent)));    
于 2013-07-05T09:19:55.287 回答
58

如果你已经在你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)。

于 2014-04-10T21:12:24.997 回答
49

这对我有用

getActionBar().setDisplayShowHomeEnabled(false);
于 2013-10-10T06:54:30.077 回答
28

打电话

mActionBar.setDisplayHomeAsUpEnabled(true);

此外,

mActionBar.setDisplayShowHomeEnabled(false);

将隐藏徽标但显示 Home As Up 图标。:)

于 2014-03-20T14:23:38.667 回答
15

意识到:

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

还将使您的选项项目透明。

于 2013-12-11T10:32:02.463 回答
13
    //disable application icon from ActionBar
    getActionBar().setDisplayShowHomeEnabled(false);

    //disable application name from ActionBar
    getActionBar().setDisplayShowTitleEnabled(false);
于 2014-07-13T12:10:16.110 回答
12
getActionBar().setIcon(android.R.color.transparent);

这对我有用。

于 2015-08-18T06:24:44.083 回答
11

使用以下方法删除或显示标题:

getActionBar().setDisplayShowTitleEnabled(true);

使用以下方法删除或显示徽标:

getActionBar().setDisplayUseLogoEnabled(false);

移除所有:

getActionBar().setDisplayShowHomeEnabled(false);
于 2015-02-28T12:38:28.280 回答
9

您还可以在AndroidManifest.xml中添加以下代码。

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

它会正常工作。

但我发现这会带来问题,因为启动器图标也会变得透明。

所以我用:

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

它工作得很好。

但是,如果您有多个活动并且想要使活动上的图标透明,那么前一种方法将起作用。

于 2015-03-18T18:21:34.757 回答
2

我使用了它,它对我有用。

        getActionBar().setIcon(
        new ColorDrawable(getResources().getColor(android.R.color.transparent)));
于 2014-06-30T10:09:56.603 回答
2
getActionBar().setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent)));
getActionBar().setDisplayHomeAsUpEnabled(true);
于 2014-06-17T12:36:36.723 回答
1

我认为确切的答案是:对于 api 11 或更高版本:

getActionBar().setDisplayShowHomeEnabled(false);

否则:

getSupportActionBar().setDisplayShowHomeEnabled(false);

(因为它需要一个支持库。)

于 2015-02-16T13:23:03.750 回答
1

转到您的清单并找到应用程序标签

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

………………

于 2015-10-07T10:25:11.403 回答
0

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>
于 2014-08-01T11:06:56.510 回答
0

进入您的清单并找到您的活动,然后添加以下代码:

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

上面的行隐藏你的Actionbar.

如果您需要其他功能,您可以使用 (CLR + SPC) 查看其他选项。

于 2014-09-25T12:16:08.193 回答
0

最快的方法是修改您的 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" />
于 2016-03-28T10:02:20.943 回答
0

以上都没有奏效。

但这成功了:

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

    setSupportActionBar(toolbar)
    toolbar.logo = null

(从工具栏中删除图标)

于 2018-12-22T13:55:43.100 回答