在机器人操作栏上删除图标/徽标

我一直在想办法把图标/徽标从操作栏中移除,但是在搜索了一个小时之后,我发现 Android 的文档和 Google 的唯一办法就是把标题栏整个移除。这不是我想要的。只想从标题栏中删除图标/徽标。

有人知道如何做到这一点? 最好我想做到这一点在 XML

149480 次浏览

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

<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! -->

附注: 我使用的是 Actionbar Sherlock,这个工作得很好。

如果您不希望在特定的活动图标。

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

这招对我很管用

getActionBar().setDisplayShowHomeEnabled(false);

请注意:

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

还将使您的选项项透明。

呼叫

mActionBar.setDisplayHomeAsUpEnabled(true);

此外,

mActionBar.setDisplayShowHomeEnabled(false);

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

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

V11之前的主题

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

V11主题曲

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

这两种风格的使用正确地隐藏了2.3和4.4设备上的操作栏图标(这个应用程序使用 AppCompat)。

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

我用了这个,很管用。

        getActionBar().setIcon(
new ColorDrawable(getResources().getColor(android.R.color.transparent)));
    //disable application icon from ActionBar
getActionBar().setDisplayShowHomeEnabled(false);


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

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>

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>

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

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

以上线隐藏你的 Actionbar

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

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

getActionBar().setDisplayShowHomeEnabled(false);

否则:

getSupportActionBar().setDisplayShowHomeEnabled(false);

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

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

getActionBar().setDisplayShowTitleEnabled(true);

删除或显示标志使用:

getActionBar().setDisplayUseLogoEnabled(false);

全部删除:

getActionBar().setDisplayShowHomeEnabled(false);

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

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

一切都会好起来的。

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

所以我用:

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

效果很好。

但是,如果您拥有多个活动,并且希望使活动上的图标透明,那么前面的方法将会奏效。

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

这招对我很管用。

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

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

..... ... ...

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

上述方法都不管用。

但这个方法奏效了:

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


setSupportActionBar(toolbar)
toolbar.logo = null

(从工具栏中移除图标)