我在我的操作栏上工作,我正在尝试更改样式,我希望背景为白色,文本颜色为蓝色,我在style.xml中执行以下操作:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/action_bar</item>
<item name="colorAccent">@color/top_bar</item>
<item name="colorPrimaryDark">@color/cyan_500</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar"
parent="@style/Widget.AppCompat.Light.ActionBar">
<item name="android:actionBarSize">20dp</item>
<item name="android:background">@color/white</item>
<item name="android:titleTextStyle">@style/MyTitleTextBarStyle</item>
</style>
<style name="MyTitleTextBarStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/colorRB</item>
</style>
</resources>
没有任何事情发生,适用于API 15至22。 我已经设法通过代码来改变背景:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_reasonlocation);
android.support.v7.app.ActionBar mAb = getSupportActionBar();
mAb.setTitle(getString(R.string.reasonandlocation));
mCd.setColor(getResources().getColor(R.color.white));
mAb.setBackgroundDrawable(mCd);
...
}
如果您知道如何通过style.xml或代码解决这个问题,我将不胜感激。
答案 0 :(得分:0)
您可以通过创建自定义样式来定义ActionBar(以及其他内容)的颜色:
只需编辑Android项目的res / values / styles.xmlfile即可。
例如:
<resources>
<style name="MyCustomTheme"
parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBarTheme</item>
</style>
<style name="MyActionBarTheme" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">ANY_HEX_COLOR_CODE</item> </style>
</resources>
然后将“MyCustomTheme”设置为包含ActionBar的Activity的主题。
你也可以像这样设置ActionBar的颜色:
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.RED)); // set your desired color
答案 1 :(得分:0)
我通过代码解决了它,将以下内容添加到onCreate
中的previus代码中 Spannable text = new SpannableString(mAb.getTitle());
text.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.colorRB)), 0, text.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
mAb.setTitle(text);
答案 2 :(得分:0)
从android:
移除android:actionBarStyle
平台相关前缀。