Android ListView选择器颜色
大家好, 关于Android中的ListView,我有两个问题:Android ListView选择器颜色,android,android-listview,Android,Android Listview,大家好, 关于Android中的ListView,我有两个问题: 如何获取列表视图聚焦行的颜色? 我尝试使用ListView.getSelector()方法,根据它的文档,它应该能提供我想要的东西,但它给了我一个可绘制的对象,我不知道如何从中检索颜色(如果可能的话…) 如何设置listview聚焦行的颜色? 在这里,我尝试在listview上使用setSelector()方法,向它传递一个可着色的对象,但这样做的结果是列表视图的整个背景都是以该颜色绘制的。。。这不是我想要的当然 谢谢 列表选择器
谢谢 列表选择器drawable是一个-它包含对列表中每个状态的多个drawable的引用,例如选择、聚焦、按下、禁用 虽然您可以使用
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>
要添加的内容:如果您使用的是颜色而不是绘图,则API 7/8(根据@Jonny的正确评论)不起作用。(在我的测试中,根据Christopher的工作原理使用可拉丝)
以下是使用颜色时2.3及以下版本的修复:
形状
可绘制图形,并用它代替颜色
如果您只想使用颜色作为选择器,并且目标是Android 2(或至少允许Android 2),我建议您查看此链接。我还建议将列表选择器指定给自定义主题,以便应用程序中的所有列表看起来都一样@drawable/my_list_Highlight这至少在API 7/8中不起作用。当按下时,它似乎会将整个背景更改为相同的按下颜色,包括其他行的背景,以及行与行之间的边距线(我有黑色)。@Jonny它对我在使用drawables时有效,但在使用颜色时无效。我已经添加了一个很好的解决方案,它适用于颜色。您好,我正试图像您建议的那样在我的列表视图中使用选择器,但它有9个PNG而不是颜色,我还有一个自定义布局,我在我的列表视图中充气,并使用选择器作为自定义布局的背景,您能建议吗?这可能会有所帮助(有问题也有解决方案):Android 2中似乎存在一个导致颜色影响整个背景的缺陷-请检查我的答案,该答案链接到另一个问题的解决方法。这刚才再次让我感到困惑,谢谢你提醒我真正的问题是什么。