我正在尝试根据当前主题属性设置ListView背景颜色,但每次显示ListView时它都会崩溃。看起来我做错了但是我看不到...
这就是我正在做的事情:
首先,创建背景颜色:
<resources>
<color name="userlist_background_light">#fff0f0f0</color>
<color name="userlist_background_dark">#ff040404</color>
</resources>
其次,为我的自定义主题创建属性:
<resources>
<attr name="userlist_background" format="reference|color" />
</resources>
第三,在我的主题中设置此属性:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Light" parent="Theme.Sherlock.Light">
<item name="userlist_background">@color/userlist_background_light</item>
</style>
<style name="Dark" parent="Theme.Sherlock">
<item name="userlist_background">@color/userlist_background_dark</item>
</style>
</resources>
最后,在ListView xml中使用此属性:
<ListView
android:id="@+id/user_bar"
android:layout_width="0dip"
android:layout_height="0dip"
android:background="?attr/userlist_background"
android:cacheColorHint="?userlist_background"
android:visibility="gone" />
甚至Eclipse布局视图也崩溃了。当然,如果我在background属性中直接使用“@ color /”,它可以正常工作。如果我使用say,“?android:attr / colorBackground”,它甚至可以工作。
消息错误是:
android.view.InflateException:二进制XML文件行#8:错误 inflating类android.view.ListView引起: android.content.res.Resources $ NotFoundException:资源不是 可绘制(颜色或路径):TypedValue {t = 0x2 / d = 0x7f010068 a = -1}
我很确定我做错了什么,因为它适用于Android属性,但我无法在Google搜索过程中找到什么。
我希望你能帮助我!
非常感谢,
塞巴斯蒂安。
答案 0 :(得分:4)
好的,我修好了,这是因为错误!
我有两个themes.xml
个文件,一个用于Honeycomb +,另一个用于Gingerbread-。我只是将新属性添加到themes.xml
目标Gingerbread-,并在ICS上进行测试。
也许它会帮助那些犯同样错误的人!