从android上的操作栏中删除图标/徽标

时间:2013-01-30 14:23:58

标签: android xml android-layout android-actionbar titlebar

我一直在尝试从操作栏中找到一些删除图标/徽标的方法,但是经过一个小时的搜索后我发现了唯一的东西,Android的文档和Google是如何删除整个标题栏的。那不是我想要的。只想从标题栏中删除图标/徽标。

任何人都知道如何做到这一点?我希望在 XML 中执行此操作。

18 个答案:

答案 0 :(得分: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,这很好用。

答案 1 :(得分:114)

如果您不希望图标处于特定活动状态。

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

答案 2 :(得分:57)

如果您已在android:logo="..."的{​​{1}}标记中定义了<application>,则需要使用此内容隐藏图标:

pre-v11主题

AndroidManifest.xml

v11及以上主题

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

使用这两种样式已经在我的2.3和4.4设备上正确隐藏了操作栏图标(此应用程序使用AppCompat)。

答案 3 :(得分:47)

这对我有用

getActionBar().setDisplayShowHomeEnabled(false);

答案 4 :(得分:27)

致电

mActionBar.setDisplayHomeAsUpEnabled(true);

除了,

mActionBar.setDisplayShowHomeEnabled(false);

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

答案 5 :(得分:15)

请注意:

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

还会使您的选项变得透明。

答案 6 :(得分:12)

getActionBar().setIcon(android.R.color.transparent);

这对我有用。

答案 7 :(得分:11)

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

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

答案 8 :(得分:11)

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

getActionBar().setDisplayShowTitleEnabled(true);

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

getActionBar().setDisplayUseLogoEnabled(false);

全部删除:

getActionBar().setDisplayShowHomeEnabled(false);

答案 9 :(得分:9)

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

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

它会正常工作。

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

所以我用过:

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

它工作正常。

但是,如果您有多个活动,并希望使活动上的图标透明,那么之前的方法将起作用。

答案 10 :(得分:2)

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

答案 11 :(得分:2)

我用过它,它对我有用。

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

答案 12 :(得分:1)

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

getActionBar().setDisplayShowHomeEnabled(false);

否则:

getSupportActionBar().setDisplayShowHomeEnabled(false);

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

答案 13 :(得分:1)

转到您的清单,找到应用程序标记

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

..... ... ...

答案 14 :(得分:0)

以上方法均无效。

但这确实成功了:

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

    setSupportActionBar(toolbar)
    toolbar.logo = null

(已从工具栏中删除图标)

答案 15 :(得分:0)

最快的方法是修改Manifest.xml。 例如,如果您要删除活动徽标&#34;活动&#34;,并将徽标留在其他活动中,您可以执行以下操作:

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

答案 16 :(得分:0)

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

android:theme="@android:style/Theme.NoTitleBar"
上面的

隐藏了您的Actionbar

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

答案 17 :(得分: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 (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>