web-dev-qa-db-ja.com

アンドロイドのアクションバーからアイコン/ロゴを削除

アクションバーからアイコン/ロゴを削除する方法を見つけようとしていますが、SO、Androidのドキュメント、およびGoogleを検索して1時間後に見つかった唯一のことは、タイトルバー全体を削除する方法です。それは私が欲しいものではありません。タイトルバーからアイコン/ロゴを削除したいだけです。

誰もがこれを達成する方法を知っていますか?できればXMLでやりたいです。

144
Hrafn

Android:logo="..."<application>タグでAndroidManifest.xmlを定義したなら、アイコンを隠すためにこのものを使う必要があります:

v11より前のテーマ

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

v11以降のテーマ

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

これら2つのスタイルを使用すると、私の場合は2.3および4.4のデバイスのアクションバーアイコンが正しく非表示になります(このアプリは AppCompat を使用します)。

57
Charles Madere

アクションバーのスタイルに次のコードを追加します。

<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を使用していますが、これは問題なく動作します。

228
Qiqi Abaziz

アイコンを特定の活動に使用したくない場合。

getActionBar().setIcon(
   new ColorDrawable(getResources().getColor(Android.R.color.transparent)));    
114
Laksh

これは私のために働きました

getActionBar().setDisplayShowHomeEnabled(false);
47
Brune

呼び出し

mActionBar.setDisplayHomeAsUpEnabled(true);

に加えて、

mActionBar.setDisplayShowHomeEnabled(false);

ロゴは非表示になりますが、Home As Upアイコンが表示されます。 :)

27
Atul O Holic

を注意:

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

オプション項目も透明になります。

15
Tevlon
getActionBar().setIcon(Android.R.color.transparent);

これは私のために働きました。

12
dn_c
    //disable application icon from ActionBar
    getActionBar().setDisplayShowHomeEnabled(false);

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

以下を使用してタイトルを削除または表示します。

getActionBar().setDisplayShowTitleEnabled(true);

以下を使用してロゴを削除または表示します。

getActionBar().setDisplayUseLogoEnabled(false);

すべて削除する:

getActionBar().setDisplayShowHomeEnabled(false);
11
Tiago Gouvêa

下記のコードをAndroidManifest.xmlに追加することもできます。

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

それはうまくいきます。

しかし、ランチャーアイコンも透明になるので、これが問題になることがわかりました。

だから私は使用しました:

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

そしてそれはうまくいった。

ただし、複数のアクティビティがあり、アクティビティ上のアイコンを透明にしたい場合は、前の方法でうまくいきます。

9
Sam

私はこれを使いました、そしてそれは私のために働きました。

        getActionBar().setIcon(
        new ColorDrawable(getResources().getColor(Android.R.color.transparent)));
2
user2900761
getActionBar().setIcon(new ColorDrawable(getResources().getColor(Android.R.color.transparent)));
getActionBar().setDisplayHomeAsUpEnabled(true);
2
user3748515

あなたのマニフェストに行き、アプリケーションタグを見つけてください

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

..... ... ...

1

正確な答えは次のとおりだと思います。api 11以降の場合:

getActionBar().setDisplayShowHomeEnabled(false);

さもないと:

getSupportActionBar().setDisplayShowHomeEnabled(false);

(サポートライブラリが必要なため)

1
David

上記のどれもうまくいきませんでした。

しかし、これはトリックでした:

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

    setSupportActionBar(toolbar)
    toolbar.logo = null

(ツールバーからアイコンを削除)

0
Dan Alboteanu

Qiqi Abazizの答えは大丈夫ですが、それでも互換性パックを使用してスタイルを正しい要素に適用することに苦労しました。また、透過ハックは不要です。それで、これはv8とそれ以降のために働く完全な例です:

values\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>
0
Nilzor

最速の方法はあなたのManifest.xmlを修正することです。たとえば、アクティビティ "Activity"のロゴを削除し、そのロゴを他のアクティビティに残しておきたい場合は、次のようにします。

<activity
      Android:name=".home.XActivity"
      Android:logo="@Android:color/transparent"
      Android:configChanges="orientation|keyboardHidden" />
 <activity
      Android:name=".home.HomeActivity"
      Android:configChanges="orientation|keyboardHidden" />
0
Jordi Alonso

あなたの目録に行き、あなたの活動を見つけ、そしてこのコードを追加してください:

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

上の行はあなたのActionbarを隠します。

他の機能が必要な場合は、(CLR + SPC)で他のオプションを見ることができます。

0
A.A