web-dev-qa-db-ja.com

AppCompatを使用して、アクションバーにロゴが表示されない

どこで何かを見逃したかはわかりませんが、アクションバーにロゴを設定することはできません。私のAndroidManifest.xml:

<application 
    Android:icon="@drawable/application_icon" 
    Android:label="@string/icon_name"
    Android:logo="@drawable/actionbar_logo"
    Android:theme="@style/PolarTheme">

また、マニフェストのアクティビティタグにロゴを設定します。

<activity 
    Android:name=".Main"
    Android:theme="@style/PolarThemeLogo"
    Android:logo="@drawable/actionbar_logo"
    Android:windowSoftInputMode="adjustPan">
</activity>

これは私のthemes.xmlにあります:

<style 
    name="PolarThemeLogo" parent="Theme.AppCompat.Light.DarkActionBar">  
    <item name="colorPrimary">@color/mainColor500</item>
    <item name="colorPrimaryDark">@color/mainColor700</item>
    <item name="colorAccent">@color/accentColorA200</item>

    <item name="actionBarStyle">@style/MyActionBarLogo</item>
    <item name="Android:windowContentOverlay">@null</item>
</style>

私のstyles.xml:

<style name="MyActionBarLogo" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="background">@color/mainColor500</item>
    <item name="displayOptions">useLogo</item>
</style>

私のMain.Javaで:

public class Main extends ActionBarActivity {

@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);    
    ActionBar actionBar = getSupportActionBar();
    actionBar.setTitle("");
    actionBar.setDisplayUseLogoEnabled(true);

何か案は?

更新-解決済み

すべてのAndroid:logo私のAndroidManifest.xmlの属性と、次のようにMyActionBarLogoスタイルを変更しました。

<style name="MyActionBarLogo" parent="@style/Widget.AppCompat.Light.ActionBar">
    <item name="background">@color/mainColor500</item>
    <item name="logo">@drawable/actionbar_logo</item>
    <item name="displayOptions">useLogo|showHome</item>
</style>

これで、アクションバーにロゴが表示されます。 :)

31
zkminusck

AndroidManifest.xmlからすべてのAndroid:logo属性を削除し、MyActionBarLogoスタイルを次のように変更しました。

<style name="MyActionBarLogo" parent="@style/Widget.AppCompat.Light.ActionBar">
    <item name="background">@color/mainColor500</item>
    <item name="logo">@drawable/actionbar_logo</item>
    <item name="displayOptions">useLogo|showHome</item>
    </style>

これで、アクションバーにロゴが表示されます。 :)

25
zkminusck

次のコードを使用してロゴを表示します。これが役立つことを願っています。

getSupportActionBar().setDisplayUseLogoEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setIcon(R.drawable.logo);
25
alijandro

Java Fileに3行追加するだけで、XMLおよびAndroid manifest。

    getSupportActionBar().setDisplayUseLogoEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setIcon(R.mipmap.ic_launcher);
1
saigopi