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

Android appcompat主题始终显示黑色操作栏,android,android-actionbar,android-appcompat,Android,Android Actionbar,Android Appcompat,我使用这个基于web的工具生成了actionbar样式,它非常常见 我将“android-support-v7-appcompat”作为我工作区中的一个单独项目。我将从这个工具下载zip文件生成的res文件夹的所有内容转储到这个项目中 我在操作栏和上下文菜单(弹出窗口)中使用了一种深蓝色。 但是,我无法从这个主题中实现定制外观。大多数元素/组件显示默认外观。 操作栏为黑色(而非蓝色),弹出菜单为灰色(而非浅蓝色) 值文件夹中的My style.xml <style name="Theme

我使用这个基于web的工具生成了actionbar样式,它非常常见

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

我在操作栏和上下文菜单(弹出窗口)中使用了一种深蓝色。 但是,我无法从这个主题中实现定制外观。大多数元素/组件显示默认外观。 操作栏为黑色(而非蓝色),弹出菜单为灰色(而非浅蓝色)

值文件夹中的My 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>


@可绘制/可选择的\u背景\u dinemobileandro
@style/PopupMenu.dinemobileandro
@style/DropDownListView.dinemobileandro
@风格/动作BARTABSTYLE.dinemobileandro
@样式/下拉导航dinemobileandro
@style/ActionBar.Solid.dinemobileandro
@可拉拔/驾驶室\背景\顶部\移动餐厅
@可牵引/驾驶室\背景\底部\移动式驾驶室
@style/ActionButton.CloseMode.dinemobileandro
@style/Theme.dinemobileandro.Widget
我在清单文件中也做了必要的更改

  <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" >

然而,这一次,我迁移到appcompat,它停止了工作。我在SO和Google上搜索了很多,尝试了一些建议,但都没有成功

请帮忙。提前谢谢

Android清单上的:

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

回答(如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(..);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setIcon(R.drawable.ic_启动器);
getSupportActionBar().setTitle(Html.fromHtml(“+getString(R.string.app_name)+”);
getSupportActionBar().setBackgroundDrawable(..);

不推荐使用AppCompat v21的actionbarstylegenerator

您可以使用类似的方法来定制ActionBar(或者更好的方法)


@颜色/我的颜色
@颜色/my_深色
您可以在官方博客中找到更多信息:

不是


希望这对你有所帮助,谢谢@Apurva,但它没有起作用。我也在做同样的事情。几乎到了死胡同。ppcompat的哪个版本?@GabrieleMariotti,我正在使用appcompat V21和android-support-v7-appcompat。感谢您的关注我不明白您是否将res文件夹的内容从工具转储到库appcompat-v7的res文件夹或您自己项目的res文件夹。谢谢@Javier。我试过这个,但它改变了整个应用程序的颜色。到处都是蓝色的。我只是希望动作条是蓝色的。再次感谢。试过你说的,但没用。该应用程序已恢复原状。蓝色不起作用。黑色操作栏和灰色关联菜单。@user1006072@javier建议的答案是我的答案。如果您的所有活动都使用蓝色actionbar进行了更改,那么您必须将自定义主题放入
清单
文件的
标记中。仅将
android:theme=“@styles/custom\u theme”
放在要更改操作栏颜色的
标记中。你说你的溢出菜单仍然是灰色的,那么你必须用api级别21编译你的应用程序。Android已经停止在api 21中使用此解决方案支持溢出菜单颜色。@Apurva,我没有在应用程序级别应用它。我将其应用于活动本身。但是,它仍然将整个活动变为蓝色。@user1006072不,它不能使整个活动变为蓝色,您一定犯了错误。你看到我的答案了吗?我已经试过很多次了,它不能将蓝色应用到你的活动中。不,我没有。我会尝试一下,让你知道。然而,当我使用《神探夏洛克行动吧》时,我不必这么做。我也没有发现我提到的任何博客/教程要求我更改Java文件。谢谢@Gabriele Mariotti,我最终转到了工具栏,但我希望我有一种使用动作栏的方法,因为我已经习惯了。我没有遇到工具栏的多个问题,如工具栏的高度太大,我无法减少。应用程序图标也显示得太大,而面包块显示在工具栏上方,被剪得太多。我想,这只是一项大型研究活动
<resources xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android">
    <drawable name="blue">#6189C5</drawable>
</resources>
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setIcon(R.drawable.ic_launcher);
    getSupportActionBar().setTitle(Html.fromHtml("<font color=\"grey\">" + getString(R.string.app_name) + "</font>"));
    getSupportActionBar().setBackgroundDrawable(..);
<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>
<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"