我想使用themes.xml自定义ActionBar。为此,我使用以下代码:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="MyCustomStyle" parent="@style/Theme.AppCompat.Light">
<item name="actionBarStyle">@style/MyCustomStyle.ActionBarStyle</item>
</style>
<style name="MyCustomStyle.ActionBarStyle" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="titleTextStyle">@style/MyCustomStyle.ActionBar.TitleTextStyle</item>
<item name="background">@color/Green</item>
</style>
<style name="MyCustomStyle.ActionBar.TitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/Red</item>
</style>
</resources>
我将它设置为我的Manifest上的活动主题。
当我使用2.2.1的设备尝试时,它可以工作。但是,当我尝试4.1.2和4.2.x,4.3时,我在LogCat上看到默认的灰色背景和黑色标题颜色以及以下行:
04-10 17:38:07.296: W/ResourceType(11830): Failure getting entry for 0x010802c9 (t=7 e=713) in package 0 (error -75)
你可以指出我的错误吗?
答案 0 :(得分:0)
我通过在values-v11和values-v14文件夹中创建新的themes.xml和style.xml来解决这个问题,方法是添加额外的“android:actionBarStyle”,“android:titleTextStyle”和“android:background”属性。虽然我的项目中的min sdk值为8,但可以使用“android:”键并在values-v11和values-v14文件夹中使用。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyCustomStyle" parent="@style/Theme.AppCompat.Light">
<item name="android:actionBarStyle">@style/MyCustomStyle.ActionBarStyle</item>
<item name="actionBarStyle">@style/MyCustomStyle.ActionBarStyle</item>
</style>
<style name="MyCustomStyle.ActionBarStyle" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:titleTextStyle">@style/MyCustomStyle.ActionBar.TitleTextStyle</item>
<item name="android:background">@color/ichaseutheme</item>
<item name="background">@color/Red</item>
</style>
<style name="MyCustomStyle.ActionBar.TitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/Green</item>
</style>
</resources>