【问题标题】:How can I set selector for my ListView?如何为我的 ListView 设置选择器?
【发布时间】:2012-08-21 20:03:17
【问题描述】:

我有以下问题:我的应用程序有白色背景和 ListView 的布局。如果我需要滚动此 ListView,那么它会将颜色更改为黑色!我刚刚为 ListView 制作了选择器,但它不起作用。我的列表视图:

        <ListView
            android:id="@+id/listViewLastUpdates"
            android:listSelector="@drawable/selector"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
        </ListView>

我的选择器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:drawable="@color/green" /> <!-- focused -->
    <item android:state_focused="true" android:state_pressed="true" android:drawable="@color/green" /> <!-- focused and pressed-->
    <item android:state_pressed="true" android:drawable="@color/green" /> <!-- pressed -->
    <item android:drawable="@color/white" /> <!-- default -->
</selector> 

我需要使用绿色作为突出显示和白色作为背景(然后如果我滚动 ListView 它不会改变颜色)。请告诉我,我应该如何解决它?

【问题讨论】:

  • 下面的代码对你有用吗?

标签: java android


【解决方案1】:

在设置颜色时使用color selector 而不是drawable selector

制作color folder inside res并保存这个颜色xml选择器并使用它:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:color="@color/green" /> <!-- focused -->
    <item android:state_focused="true" android:state_pressed="true" android:color="@color/green" /> <!-- focused and pressed-->
    <item android:state_pressed="true" android:color="@color/green" /> <!-- pressed -->
    <item android:color="@color/white" /> <!-- default -->
</selector> 

【讨论】:

  • 如果你这样做,你不会收到类似“Binary XML file line #13: tag requires a 'drawable' attribute or child tag defined a drawable”之类的错误吗?
【解决方案2】:

试试这个并告诉我它是否有帮助:

<ListView
    android:id="@+id/listViewLastUpdates"
    android:listSelector="@drawable/selector"
    android:background="@android:color/white"
    android:cacheColorHint="@android:color/transparent"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</ListView>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多