私はアクションバーからアイコン/ロゴを削除する方法を探していましたが、SO、Androidのドキュメント、およびGoogleを1時間検索した後に見つけた唯一のことは、タイトルバー全体を削除する方法です。それは私が望むものではありません。タイトルバーからアイコン/ロゴのみを削除したい。
これを達成する方法を知っている人はいますか?できれば、これをXMLで行いたいと思います。
私はアクションバーからアイコン/ロゴを削除する方法を探していましたが、SO、Androidのドキュメント、およびGoogleを1時間検索した後に見つけた唯一のことは、タイトルバー全体を削除する方法です。それは私が望むものではありません。タイトルバーからアイコン/ロゴのみを削除したい。
これを達成する方法を知っている人はいますか?できれば、これをXMLで行いたいと思います。
回答:
android:logo="..."
の<application>
タグで定義した場合はAndroidManifest.xml
、次のものを使用してアイコンを非表示にする必要があります。
<item name="logo">@android:color/transparent</item>
<item name="android:logo">@android:color/transparent</item>
これらの2つのスタイルを使用すると、2.3および4.4デバイスのアクションバーアイコンが適切に非表示になりました(このアプリはAppCompatを使用しています)。
<application (...) android:logo="@android:color/transparent"> (...)
、自分の中にセッティングしてAndroidManifest.xml
、このような自分のスタイルに強いることuseLogo
です。この最後の部分は、いくつかのデバイスのように重要だった(私は主にポストロリポップ思う)のろわsearchviewはロゴが透明に設定された場合でも、APPICONを取って、ロゴの代わりにそれを置く:SdisplayOptions
<item name="android:displayOptions">showHome|useLogo|homeAsUp|showTitle</item> <item name="displayOptions">showHome|useLogo|homeAsUp|showTitle</item>
アクションバーのスタイルに次のコードを追加します。
<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を使用していますが、これは問題なく機能します。
@android:color/transparent
れます。狂ったように見えますが、多くのデバイスメーカーがAndroidのデフォルト設定を上書きしています。色を含む。このため、colors.xmlで次のように色を作成し、<color name="transparent">#00000000</color>
Androidから値を取得する代わりにその色を参照します。
特定のアクティビティでアイコンを使用したくない場合。
getActionBar().setIcon(
new ColorDrawable(getResources().getColor(android.R.color.transparent)));
ColorDrawable cd = new ColorDrawable(getResources().getColor(android.R.color.transparent)); cd.setBounds(0,0,0,0); getActionBar().setIcon(cd);
ます。境界を設定しなくても、透明なアイコンがスペースを
setLogo
、setIcon
メソッドの代わりに使用する必要がありました。それでも、素晴らしいヒント、正しい道に私を導きました!!
これは私のために働いた
getActionBar().setDisplayShowHomeEnabled(false);
呼び出す
mActionBar.setDisplayHomeAsUpEnabled(true);
に加えて、
mActionBar.setDisplayShowHomeEnabled(false);
ロゴは非表示になりますが、Home As Upアイコンが表示されます。:)
//disable application icon from ActionBar
getActionBar().setDisplayShowHomeEnabled(false);
//disable application name from ActionBar
getActionBar().setDisplayShowTitleEnabled(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(
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以上で動作する完全な例があります:
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>
最速の方法は、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" />