通过自定义选择器查看项目背景

是否可以通过列表选择器对每个Listview项应用自定义背景?

默认选择器指定@android:color/transparentstate_focused="false"大小写,但将其更改为自定义可绘制不会影响未选中的项。罗曼·盖伊似乎认为在这个答案中这是可能的。

目前,我正在通过在每个视图上使用自定义背景来实现相同的影响,并在选择/聚焦/任何显示选择器的情况下隐藏它,但是在一个地方定义所有这些都会更优雅。

作为参考,这是我用来尝试让它工作的选择器:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_focused="false"
        android:drawable="@drawable/list_item_gradient" />

    <!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. -->
    <item android:state_focused="true" android:state_enabled="false"
        android:state_pressed="true"
        android:drawable="@drawable/list_selector_background_disabled" />
    <item android:state_focused="true" android:state_enabled="false"
        android:drawable="@drawable/list_selector_background_disabled" />

    <item android:state_focused="true" android:state_pressed="true"
        android:drawable="@drawable/list_selector_background_transition" />
    <item android:state_focused="false" android:state_pressed="true"
        android:drawable="@drawable/list_selector_background_transition" />

    <item android:state_focused="true"
        android:drawable="@drawable/list_selector_background_focus" /></selector>

我就是这样设置选择器的:

<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:listSelector="@drawable/list_selector_background" />

谢谢您的帮助!

通过自定义选择器查看项目背景

浮云间
浏览 416回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android