【问题标题】:setSelector causes undesired behaviour when using a ListActivity使用 ListActivity 时,setSelector 会导致不良行为
【发布时间】:2011-11-17 03:34:09
【问题描述】:

我正在尝试设置列表中项目被选中时的颜色。即,我的列表通常是灰色的,但我希望用户选择的项目在按下时会发出黄色光。

onCreate方法中,我尝试使用getListView().setSelector(R.xml.list_pressed)

然而,这展示了改变整个列表而不是单个元素的背景颜色的奇怪行为!我很困惑为什么会这样。

ListActivityTabActivity 的一部分,如果这有影响的话。

谢谢。

编辑:这是 list_pressed.xml

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_enabled="false"
        android:drawable="@color/darkgray" />
    <item
        android:state_pressed="true"
        android:drawable="@color/yellow" />
    <item
        android:state_focused="true"
        android:drawable="@color/darkgray" />
</selector>

【问题讨论】:

标签: android listactivity


【解决方案1】:

您没有android:state_pressed="false" 的状态

您可能在android:state_enabled="false" 处犯了一个错误,您的 xml 应该是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_pressed="false"
        android:drawable="@color/darkgray" />
    <item
        android:state_pressed="true"
        android:drawable="@color/yellow" />
</selector>

【讨论】:

    【解决方案2】:

    我发现了问题。事实证明,我已经为 xml 文件中的每个项目设置了背景颜色,而这并没有被选择器覆盖。用 list_pressed 作为可绘制对象替换背景解决了这个问题。我很惊讶我之前没有注意到这一点。 >_

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-27
      • 1970-01-01
      • 1970-01-01
      • 2013-05-30
      • 2010-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多