Android操作栏未在displayOptions上显示 - useLogo

Adi*_*fyr 2 android android-theme graphical-logo android-actionbar android-styles

我有一个actionBarStyle我在我的应用程序中为我实现的ActionBar.这是下面的xml代码:

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="MyActionBarTheme" parent="@android:style/Theme.Holo">
        <item name="android:windowActionBarOverlay">true</item>
        <item name="android:actionBarStyle">@style/MyCustomActionBar</item>
    </style>
    <style name="MyCustomActionBar" parent="@android:style/Widget.Holo.ActionBar">
        <item name="android:background">@android:color/transparent</item>
        <item name="android:backgroundSplit">@android:color/transparent</item>
        <item name="android:displayOptions">useLogo</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

这是我的Activity OnCreate:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getActionBar().setLogo(R.drawable.ic_logo);
    setContentView(R.layout.activity_home);

    initializeViews();
    manageFragments();
}
Run Code Online (Sandbox Code Playgroud)

问题是我ActionBar根本没有显示,当我displayOptions从My XML中删除项目时.它显示标题.现在我可以随时删除标题(将标题字符串设置为空白)但我不希望这样,因为它显示默认ActionBar样式/主题几秒钟然后我的自定义主题(我猜你知道这个).我不知道问题是什么.请帮忙.谢谢...

Sco*_*ris 6

如果android:logo在主题中设置,则不需要在代码中设置它.

我想你可能还需要showHome你的显示选项,例如

<item name="android:displayOptions">showHome|useLogo</item>
Run Code Online (Sandbox Code Playgroud)

编辑

下面是我用来隐藏徽标并在操作栏中显示标题的示例主题,此示例正在使用,ActionBarSherlock因此如果您不使用它,则需要相应地调整父样式名称.

<style name="AppTheme" parent="style/Theme.Sherlock.Light.DarkActionBar">
   <item name="android:windowBackground">@color/background_primary</item>
   <item name="android:icon">@drawable/appicon</item>    
   <!-- For the home as up icon on sub pages -->
   <item name="android:homeAsUpIndicator">@drawable/back</item>
   <item name="homeAsUpIndicator">@drawable/back</item>          
   <item name="android:actionBarStyle">@style/AppTheme.ActionBar</item>
   <item name="actionBarStyle">@style/AppTheme.ActionBar</item>
</style>

<style name="AppTheme.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
<item name="android:displayOptions">showTitle</item>
<item name="displayOptions">showTitle</item>

<item name="android:titleTextStyle">@style/AppTheme.ActionBar.TitleTextStyle</item>
<item name="titleTextStyle">@style/AppTheme.ActionBar.TitleTextStyle</item>    
<item name="android:background">@color/actionbar_bg_color</item>
<item name="background">@color/actionbar_bg_color</item>
<item name="android:backgroundStacked">@color/actionbar_bg_color</item>
<item name="backgroundStacked">@color/actionbar_bg_color</item>
Run Code Online (Sandbox Code Playgroud)