【问题标题】:Listview selector wrong backgroundListview 选择器错误的背景
【发布时间】:2014-03-22 06:47:21
【问题描述】:

在 API7 中,我遇到的问题是,如果我选择一行,背景会发生变化,而不是我选择的行。我的错误在哪里? 我的安卓4手机颜色没问题,怎么回事?

list_selector_flatcolor.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/list_row_default_bg" android:state_pressed="false" android:state_activated="true"/>
    <item android:drawable="@color/list_row_pressed_bg" android:state_pressed="true"/>
    <item android:drawable="@color/list_row_selected_bg" android:state_pressed="false" android:state_activated="true"/>

</selector>

带有列表视图的布局:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >


    <ListView
        android:id="@+id/custom_list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:listSelector="@drawable/list_selector_flatcolor"
        android:dividerHeight="1dp"/>

</LinearLayout>

colors.xml:

    <?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="text_color_default">#00000C</color>
    <color name="text_color_inverse">#FFFFFF</color>
    <color name="white">#FFFFFF</color>
    <color name="list_row_default_bg">#ffd30210</color>
    <color name="list_row_pressed_bg">#008cef</color>
    <color name="list_row_selected_bg">#86d3f6</color>
</resources>

【问题讨论】:

  • 尝试使用state_activated 作为您的row_selector
  • 还是不行。我必须使用 state_activated 做什么?
  • 来自我的新代码还是来自智能手机?
  • 添加图片并更改list_selector_flatcolor.xml

标签: android listview colors background


【解决方案1】:

试试这个selector.xml。您需要添加android:state_selected 状态。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item 
 android:state_pressed="true" 
 android:drawable="@color/list_row_pressed_bg" />
<item 
 android:state_selected="true" 
 android:drawable="@color/list_row_selected_bg" />
<item 
 android:drawable="@color/list_row_default_bg" />

如果您使用Custom Adapter,那么您可以将此选择器设置为Background 到您的Custom Layout,例如:

android:background="@drawable/selector"

【讨论】:

  • 感谢 android:background="@drawable/item_selector" 我忘了这个:)
  • 我该怎么做才能使所选行采用正确的颜色,并且如果我选择另一个颜色就会改变?
  • @欲了解更多信息,请访问官方文档developer.android.com/guide/topics/resources/…。有许多可用的状态。您可以使用颜色设置状态。
猜你喜欢
  • 2010-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多