我一直在尝试找到某种从操作栏中删除图标/徽标的方法,但在搜索 SO、Android 的文档和 Google 一个小时后,我发现的唯一一件事就是如何完全删除标题栏。那不是我想要的。只想从标题栏中删除图标/徽标。
有谁知道如何做到这一点?最好我想在XML中执行此操作。
我一直在尝试找到某种从操作栏中删除图标/徽标的方法,但在搜索 SO、Android 的文档和 Google 一个小时后,我发现的唯一一件事就是如何完全删除标题栏。那不是我想要的。只想从标题栏中删除图标/徽标。
有谁知道如何做到这一点?最好我想在XML中执行此操作。
在您的操作栏样式中添加以下代码:
<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)));
如果你已经在你android:logo="..."
的<application>
标签中定义了AndroidManifest.xml
,那么你需要使用这个东西来隐藏图标:
<item name="logo">@android:color/transparent</item>
<item name="android:logo">@android:color/transparent</item>
对我来说,这两种样式的使用正确地隐藏了 2.3 和 4.4 设备上的操作栏图标(此应用程序使用AppCompat)。
这对我有用
getActionBar().setDisplayShowHomeEnabled(false);
打电话
mActionBar.setDisplayHomeAsUpEnabled(true);
此外,
mActionBar.setDisplayShowHomeEnabled(false);
将隐藏徽标但显示 Home As Up 图标。:)
意识到:
<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);
这对我有用。
使用以下方法删除或显示标题:
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(
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);
(因为它需要一个支持库。)
转到您的清单并找到应用程序标签
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(外壳)
<?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) 查看其他选项。
最快的方法是修改您的 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
(从工具栏中删除图标)