我正在尝试根据当前主题属性设置 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 布局视图崩溃。当然,如果我直接在背景属性中使用“@color/”就可以了。如果我使用说“?android:attr/colorBackground”,它甚至可以工作。
消息错误是:
android.view.InflateException: Binary XML file line #8: Error inflating class android.view.ListView 原因:android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x2 /d=0x7f010068 a=-1}
我很确定我做错了什么,因为它适用于 android 属性,但我无法在我的谷歌搜索中找到什么。
我希望你能帮助我!
非常感谢,
塞巴斯蒂安。