大家好,,
关于安卓系统中的ListView,我有两个问题:
谢谢!
发布于 2010-01-11 02:45:59
列表选择器drawable是一个StateListDrawable
-它包含对列表的每个状态的多个可绘制项的引用,如选中、聚焦、按下、禁用...
虽然您可以使用getSelector()
检索可绘制的颜色,但我不相信您可以从StateListDrawable
检索特定的Drawable
,而且似乎也不可能以编程方式直接从ColorDrawable
检索颜色。
至于设置颜色,您需要一个如上所述的StateListDrawable
。您可以使用android:listSelector
属性在列表中设置此属性,在XML中定义可绘制内容,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:state_focused="true"
android:drawable="@drawable/item_disabled" />
<item android:state_pressed="true"
android:drawable="@drawable/item_pressed" />
<item android:state_focused="true"
android:drawable="@drawable/item_focused" />
</selector>
发布于 2013-04-08 15:36:09
补充:如果你使用的是颜色,而不是可绘制的,@Christopher's answer不能在API7/8上工作(根据@Jonny的正确评论)。(在我的测试中,按照Christopher的要求使用drawables工作得很好)
以下是使用颜色时2.3及更低版本的修复:
根据@Charles Harley的说法,2.3和更低版本中有一个bug,用颜色填充列表项会导致颜色流出整个列表。他的解决办法是定义一个包含您想要的颜色的shape
可绘制,并使用该颜色而不是颜色。
如果你只想使用颜色作为选择器,并且目标是Android 2(或者至少允许Android 2),我建议你看看这个链接。
https://stackoverflow.com/questions/2038040
复制相似问题