我一直在尝试从操作栏中找到一些删除图标/徽标的方法,但是经过一个小时的搜索后我发现了唯一的东西,Android的文档和Google是如何删除整个标题栏的。那不是我想要的。只想从标题栏中删除图标/徽标。
任何人都知道如何做到这一点?我希望在 XML 中执行此操作。
答案 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>
,则需要使用此内容隐藏图标:
AndroidManifest.xml
<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>