Android appcompat 主题始终显示黑色操作栏

Android appcompat theme always shows black color actionbar

我使用这个非常常见的基于 Web 的工具生成了操作栏样式 http://jgilfelt.github.io/android-actionbarstylegenerator/

我 'android-support-v7-appcompat' 作为我工作区中的一个单独项目。我将通过从该工具下载 zip 文件生成的 res 文件夹的所有内容转储到该项目中。

我为操作栏和上下文菜单(弹出)使用了深蓝色。 但是,我无法从此主题获得自定义外观。大多数元素/组件显示默认外观。 操作栏是黑色(而不是蓝色),弹出菜单是灰色(而不是浅蓝色)

我的 style.xml 来自值文件夹

<style name="Theme.dinemobileandro" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="actionBarItemBackground">@drawable/selectable_background_dinemobileandro</item>
    <item name="popupMenuStyle">@style/PopupMenu.dinemobileandro</item>
    <item name="dropDownListViewStyle">@style/DropDownListView.dinemobileandro</item>
    <item name="actionBarTabStyle">@style/ActionBarTabStyle.dinemobileandro</item>
    <item name="actionDropDownStyle">@style/DropDownNav.dinemobileandro</item>
    <item name="actionBarStyle">@style/ActionBar.Solid.dinemobileandro</item>
    <item name="actionModeBackground">@drawable/cab_background_top_dinemobileandro</item>
    <item name="actionModeSplitBackground">@drawable/cab_background_bottom_dinemobileandro</item>
    <item name="actionModeCloseButtonStyle">@style/ActionButton.CloseMode.dinemobileandro</item>

            <!-- Light.DarkActionBar specific -->
    <item name="actionBarWidgetTheme">@style/Theme.dinemobileandro.Widget</item>

</style>

我也在清单文件中进行了必要的更改

  <application
   android:name="com.railyatri.in.mobile.MainApplication"
   android:allowBackup="true"
   android:allowClearUserData="true"
   android:enabled="true"
   android:icon="@drawable/ic_launcher"
   android:label="@string/app_name"
   android:theme="@style/Theme.dinemobileandro" >

我已严格按照此博客中提到的步骤进行操作,并且它以前对我适用于 sherlock 主题。 http://java.dzone.com/articles/creating-custom-android-styles 然而,这一次,我迁移到 appcompat,它停止工作了。我已经通过 SO 和 Google 进行了很多搜索,并尝试了一些建议但都是徒劳的。

请帮忙。提前致谢。

在 Android 清单上:

<activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:theme="@style/Theme.dinemobileandro" >

关于样式 xml:

<style name="Theme.dinemobileandro" parent="AppTheme">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
    <item name="actionBarStyle">@style/MyActionBar</item>
</style>

<style name="MyActionBar"
       parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@drawable/blue</item>
<item name="background">@drawable/blue</item>

在可绘制对象上 xml:

<resources xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android">
    <drawable name="blue">#6189C5</drawable>
</resources>

activity 上的工具栏是蓝色的 (#6189C5) 使用 API 21

编译

完成 this 回答中的信息(如指定的 Apurva)

您是否已经尝试更改 Java 文件? 像这样:

    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setIcon(R.drawable.ic_launcher);
    getSupportActionBar().setTitle(Html.fromHtml("<font color=\"grey\">" + getString(R.string.app_name) + "</font>"));
    getSupportActionBar().setBackgroundDrawable(..);

在 AppCompat v21 中,不推荐使用 actionbarstylegenerator。

您可以使用类似这样的东西来自定义 ActionBar(或者更好的 Toolbar)。

<style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
    <!-- Set AppCompat's color theming attrs -->
    <item name="colorPrimary">@color/my_color</item>
    <item name="colorPrimaryDark">@color/my_darkercolor</item>
    
</style>

您可以在官方博客中找到更多信息: http://android-developers.blogspot.it/2014/10/appcompat-v21-material-design-for-pre.html

<style name="Theme.MyTheme" parent="Theme.AppCompat.Light">

    <item name="colorPrimary">@color/my_actionbar_color</item>
    <item name="colorPrimaryDark">@color/my_actionbar_dark_color</item>

    <!-- if you need customization -->
    <item name="actionBarStyle">@style/MyActionBarStyle</item>
</style>

记得使用

parent="Theme.AppCompat.Light"

不是

parent="@style/Theme.AppCompat.Light"