【发布时间】:2012-01-21 10:11:11
【问题描述】:
我尝试通过使用属性来自定义Drawable,但我有一个膨胀错误
01-21 11:01:06.171: E/AndroidRuntime(13695): Caused by: android.content.res.Resources$NotFoundException:
File res/drawable/action_bar_background.xml from drawable resource ID #0x7f020000
我的 action_bar_background.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:angle="90"
android:endColor="?attr/ActionBarEndColor"
android:startColor="?attr/ActionBarStartColor"
/>
</shape>
我的 attr.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="ActionBarStartColor" format="reference|color" />
<attr name="ActionBarEndColor" format="reference|color" />
</resources>
我的主题.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Theme1" parent="@style/Theme.GreenDroid.Light.NoTitleBar">
<item name="ActionBarStartColor">@color/greyDark</item>
<item name="ActionBarEndColor">@color/greyLight</item>
</style>
<style name="Theme.Theme2" parent="@style/Theme.GreenDroid.Light.NoTitleBar">
<item name="ActionBarStartColor">@color/myRed</item>
<item name="ActionBarEndColor">@color/myWhite</item>
</style>
</resources>
我不明白为什么,我的属性是引用或颜色,如果我在 theme.xml 中“强制”颜色,它也不起作用。
有人可以帮忙吗?
我找到了this question,但这并不能解决我的问题。
【问题讨论】:
-
我找到的唯一解决方案是使用多个具有所选颜色的可绘制文件并在主题文件中进行引用。
-
此问题已在 Android L 预览版中解决,此处指定:code.google.com/p/android/issues/detail?id=26251
-
我在 Lollipop 中发现了这个问题,但仍然无法在 Kitkat 和更少的情况下使用