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

我一直在试图从操作栏中find一些删除图标/标识的方法,但是在search一小时之后我发现了唯一的东西,Android的文档和Google是如何删除整个标题栏的。 那不是我想要的。 只想从标题栏中删除图标/标志。

任何人都知道如何做到这一点? 最好我想用XML来做到这一点。

如果您在AndroidManifest.xml<application>标签中定义了android:logo="..." ,那么您需要使用这个东西来隐藏图标:

pre-v11主题

 <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 Sherlock,这工作得很好。

如果你不想在特定的活动图标。

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

这对我有效。

你也可以在AndroidManifest.xml中添加下面的代码。

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

它会正常工作。

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

所以我用:

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

它工作正常。

但是,如果您有多个活动并希望将活动上的图标设置为透明,则以前的方法将起作用。

删除或显示标题使用:

 getActionBar().setDisplayShowTitleEnabled(true); 

删除或显示标志使用:

 getActionBar().setDisplayUseLogoEnabled(false); 

移除所有:

 getActionBar().setDisplayShowHomeEnabled(false); 

我用这个,它为我工作。

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

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

去你的清单find应用程序标签

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

….. …

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> 

进入你的清单,find你的活动,然后添加下面的代码:

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

上面一行隐藏你的操作Actionbar

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

最快的方法是修改你的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" />