首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >安卓ListView选择器颜色

安卓ListView选择器颜色
EN

Stack Overflow用户
提问于 2010-01-11 02:33:31
回答 2查看 102.1K关注 0票数 73

大家好,,

关于安卓系统中的ListView,我有两个问题:

  1. 如何才能让获得列表视图的焦点行的颜色?我尝试使用ListView.getSelector()方法,根据它的文档,它应该能给我提供我正在寻找的东西,但是它给了我一个可绘制的对象,我不知道如何从该对象中检索颜色(如果possible...).
  2. How,我可以set列表视图的焦点行的颜色吗?在这里,我尝试在列表视图上使用setSelector()方法,向它传递一个ColorDrawable对象,但这样做的结果是列表视图的整个背景都被绘制成这种颜色……当然,这不是我想要的--

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2010-01-11 02:45:59

列表选择器drawable是一个StateListDrawable -它包含对列表的每个状态的多个可绘制项的引用,如选中、聚焦、按下、禁用...

虽然您可以使用getSelector()检索可绘制的颜色,但我不相信您可以从StateListDrawable检索特定的Drawable,而且似乎也不可能以编程方式直接从ColorDrawable检索颜色。

至于设置颜色,您需要一个如上所述的StateListDrawable。您可以使用android:listSelector属性在列表中设置此属性,在XML中定义可绘制内容,如下所示:

代码语言:javascript
复制
<?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>
票数 89
EN

Stack Overflow用户

发布于 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),我建议你看看这个链接。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2038040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档