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