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