Question

I'm using ActionBarSherlock and HoloEverywhere in my app. I used the ActionBar Style Generator to generate my styles and then modified them a bit by hand for text colors, etc.

I'm having a problem where my ActionBar looks correct on my Android 4.2 device (that is, orange with white text), but on my Android 2.3 device the ActionBar is black with grey text.

Does anyone know what might cause this?

enter image description here

<style name="Theme.MyApp" parent="@style/Holo.Theme.Light.DarkActionBar">
    <item name="android:actionBarItemBackground">@drawable/selectable_background_MyApp</item>
    <item name="android:popupMenuStyle">@style/PopupMenu.MyApp</item>
    <item name="android:dropDownListViewStyle">@style/DropDownListView.MyApp</item>
    <item name="android:actionBarTabStyle">@style/ActionBarTabStyle.MyApp</item>
    <item name="android:actionDropDownStyle">@style/DropDownNav.MyApp</item>
    <item name="android:actionBarStyle">@style/ActionBar.Solid.MyApp</item>
    <item name="android:actionModeBackground">@drawable/cab_background_top_MyApp</item>
    <item name="android:actionModeSplitBackground">@drawable/cab_background_bottom_MyApp</item>
    <item name="android:actionModeCloseButtonStyle">@style/ActionButton.CloseMode.MyApp</item>
    <!-- <item name="android:textColorPrimary">#FFFFFF</item> -->
    <item name="android:spinnerDropDownItemStyle">@style/ActionBar.Solid.MyApp.NavigationDropDownStyle</item>

</style>

<style name="ActionBar.Solid.MyApp" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">@drawable/ab_solid_MyApp</item>
    <item name="android:backgroundStacked">@drawable/ab_stacked_solid_MyApp</item>
    <item name="android:backgroundSplit">@drawable/ab_bottom_solid_MyApp</item>
    <item name="android:progressBarStyle">@style/ProgressBar.MyApp</item>
    <item name="android:titleTextStyle">@style/ActionBar.Solid.MyApp.TitleTextStyle</item>

</style>

<style name="ActionBar.Solid.MyApp.NavigationDropDownStyle" parent="@android:style/Widget.Holo.DropDownItem.Spinner">
    <item name="android:textAppearance">@style/ActionBar.Solid.MyApp.NavigationDropDownStyle.TextStyle</item>
</style>

<style name="ActionBar.Solid.MyApp.NavigationDropDownStyle.TextStyle" parent="@android:style/Widget">
    <item name="android:textColor">@color/white</item>
    <item name="android:textSize">18sp</item>
</style>

<style name="ActionBar.Solid.MyApp.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">@color/white</item>
    <item name="android:textSize">18sp</item>
    <!-- <item name="android:fontFamily">sans-serif-medium</item> -->
</style>

<style name="ActionBar.Transparent.MyApp" parent="@android:style/Widget.Holo.ActionBar">
    <item name="android:background">@drawable/ab_transparent_MyApp</item>
    <item name="android:progressBarStyle">@style/ProgressBar.MyApp</item>
</style>

<style name="PopupMenu.MyApp" parent="@android:style/Widget.Holo.ListPopupWindow">
    <item name="android:popupBackground">@drawable/menu_dropdown_panel_MyApp</item> 
</style>

<style name="DropDownListView.MyApp" parent="@android:style/Widget.Holo.ListView.DropDown">
    <item name="android:listSelector">@drawable/selectable_background_MyApp</item>
</style>

<style name="ActionBarTabStyle.MyApp" parent="@android:style/Widget.Holo.ActionBar.TabView">
    <item name="android:background">@drawable/tab_indicator_ab_MyApp</item>
</style>

<style name="DropDownNav.MyApp" parent="@android:style/Widget.Holo.Spinner">
    <item name="android:background">@drawable/spinner_background_ab_MyApp</item>
    <item name="android:popupBackground">@drawable/menu_dropdown_panel_MyApp</item>
    <item name="android:dropDownSelector">@drawable/selectable_background_MyApp</item>
</style>

<style name="ProgressBar.MyApp" parent="@android:style/Widget.Holo.ProgressBar.Horizontal">
    <item name="android:progressDrawable">@drawable/progress_horizontal_MyApp</item>
</style>

<style name="ActionButton.CloseMode.MyApp" parent="@android:style/Widget.Holo.ActionButton.CloseMode">
    <item name="android:background">@drawable/btn_cab_done_MyApp</item>
</style>

<!-- this style is only referenced in a Light.DarkActionBar based theme -->
<style name="Theme.MyApp.Widget" parent="@android:style/Theme.Holo">
    <item name="android:popupMenuStyle">@style/PopupMenu.MyApp</item>
    <item name="android:dropDownListViewStyle">@style/DropDownListView.MyApp</item>
</style>

--------------- EDIT ----------------------

enter image description here

So I'm now having a problem where the action bar is taking up the entire screen on the Android 2.3 device (but works fine on Android 4.2). Do I need to remove the "android:" from the parent attributes?

parent="@android:style/Widget.Holo.ListPopupWindow"

When I tried this, Eclipse was unable to find the theme.

 <resources xmlns:android="http://schemas.android.com/apk/res/android">

 <style name="Theme.MyApp" parent="@style/Holo.Theme.Light.DarkActionBar">
    <item name="android:actionBarItemBackground">@drawable/selectable_background_MyApp</item>
    <item name="android:popupMenuStyle">@style/PopupMenu.MyApp</item>
    <item name="android:dropDownListViewStyle">@style/DropDownListView.MyApp</item>
    <item name="android:actionBarTabStyle">@style/ActionBarTabStyle.MyApp</item>
    <item name="android:actionDropDownStyle">@style/DropDownNav.MyApp</item>
    <item name="android:actionBarStyle">@style/ActionBar.Solid.MyApp</item>
    <item name="android:actionModeBackground">@drawable/cab_background_top_MyApp</item>
    <item name="android:actionModeSplitBackground">@drawable/cab_background_bottom_MyApp</item>
    <item name="android:actionModeCloseButtonStyle">@style/ActionButton.CloseMode.MyApp</item>
    <!-- <item name="android:textColorPrimary">#FFFFFF</item> -->
    <item name="android:spinnerDropDownItemStyle">@style/ActionBar.Solid.MyApp.NavigationDropDownStyle</item>

    <item name="actionBarItemBackground">@drawable/selectable_background_MyApp</item>
    <item name="popupMenuStyle">@style/PopupMenu.MyApp</item>
    <item name="dropDownListViewStyle">@style/DropDownListView.MyApp</item>
    <item name="actionBarTabStyle">@style/ActionBarTabStyle.MyApp</item>
    <item name="actionDropDownStyle">@style/DropDownNav.MyApp</item>
    <item name="actionBarStyle">@style/ActionBar.Solid.MyApp</item>
    <item name="actionModeBackground">@drawable/cab_background_top_MyApp</item>
    <item name="actionModeSplitBackground">@drawable/cab_background_bottom_MyApp</item>
    <item name="actionModeCloseButtonStyle">@style/ActionButton.CloseMode.MyApp</item>
    <!-- <item name="textColorPrimary">#FFFFFF</item> -->
    <item name="spinnerDropDownItemStyle">@style/ActionBar.Solid.MyApp.NavigationDropDownStyle</item>

</style>

<style name="ActionBar.Solid.MyApp" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">@drawable/ab_solid_MyApp</item>
    <item name="android:backgroundStacked">@drawable/ab_stacked_solid_MyApp</item>
    <item name="android:backgroundSplit">@drawable/ab_bottom_solid_MyApp</item>
    <item name="android:progressBarStyle">@style/ProgressBar.MyApp</item>
    <item name="android:titleTextStyle">@style/ActionBar.Solid.MyApp.TitleTextStyle</item>

    <item name="background">@drawable/ab_solid_MyApp</item>
    <item name="backgroundStacked">@drawable/ab_stacked_solid_MyApp</item>
    <item name="backgroundSplit">@drawable/ab_bottom_solid_MyApp</item>
    <item name="progressBarStyle">@style/ProgressBar.MyApp</item>
    <item name="titleTextStyle">@style/ActionBar.Solid.MyApp.TitleTextStyle</item>

</style>

<style name="ActionBar.Solid.MyApp.NavigationDropDownStyle" parent="@android:style/Widget.Holo.DropDownItem.Spinner">
    <item name="android:textAppearance">@style/ActionBar.Solid.MyApp.NavigationDropDownStyle.TextStyle</item>

</style>

<style name="ActionBar.Solid.MyApp.NavigationDropDownStyle.TextStyle" parent="@android:style/Widget">
    <item name="android:textColor">@color/white</item>
    <item name="android:textSize">18sp</item>

</style>

<style name="ActionBar.Solid.MyApp.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">@color/white</item>
    <item name="android:textSize">18sp</item>

    <!-- <item name="android:fontFamily">sans-serif-medium</item> -->
</style>

<style name="ActionBar.Transparent.MyApp" parent="@android:style/Widget.Holo.ActionBar">
    <item name="android:background">@drawable/ab_transparent_MyApp</item>
    <item name="android:progressBarStyle">@style/ProgressBar.MyApp</item>

    <item name="background">@drawable/ab_transparent_MyApp</item>
    <item name="progressBarStyle">@style/ProgressBar.MyApp</item>
</style>

<style name="PopupMenu.MyApp" parent="@android:style/Widget.Holo.ListPopupWindow">
    <item name="android:popupBackground">@drawable/menu_dropdown_panel_MyApp</item> 

</style>

<style name="DropDownListView.MyApp" parent="@android:style/Widget.Holo.ListView.DropDown">
    <item name="android:listSelector">@drawable/selectable_background_MyApp</item>

</style>

<style name="ActionBarTabStyle.MyApp" parent="@android:style/Widget.Holo.ActionBar.TabView">
    <item name="android:background">@drawable/tab_indicator_ab_MyApp</item>

    <item name="background">@drawable/tab_indicator_ab_MyApp</item>
</style>

<style name="DropDownNav.MyApp" parent="@android:style/Widget.Holo.Spinner">
    <item name="android:background">@drawable/spinner_background_ab_MyApp</item>
    <item name="android:popupBackground">@drawable/menu_dropdown_panel_MyApp</item>
    <item name="android:dropDownSelector">@drawable/selectable_background_MyApp</item>

    <item name="background">@drawable/spinner_background_ab_MyApp</item>
</style>

<style name="ProgressBar.MyApp" parent="@android:style/Widget.Holo.ProgressBar.Horizontal">
    <item name="android:progressDrawable">@drawable/progress_horizontal_MyApp</item>

</style>

<style name="ActionButton.CloseMode.MyApp" parent="@android:style/Widget.Holo.ActionButton.CloseMode">
    <item name="android:background">@drawable/btn_cab_done_MyApp</item>

    <item name="background">@drawable/btn_cab_done_MyApp</item>
</style>

</resources>
Was it helpful?

Solution

As per the official docs, you need to also declare the attributes without the android: namespace. In your case, those attributes are only getting applied to the native implementation.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top