ListView - 突出显示的行的颜色

时间:2017-12-07 17:18:24

标签: android listview

我有ListView个自定义行。它们在ArrayAdapter方法中的getView()中设置了不同的背景颜色:

row.setBackgroundColor(R.color.list_bg);

设置颜色后,我忽略了一个轻拍行的高亮颜色/动画。 如果我在背景中添加一些透明度,我可以看到高光和动画,但这不是我想要解决的问题。

是否有可能以某种方式设置"突出显示颜色"?

1 个答案:

答案 0 :(得分:1)

您可以通过使用颜色或图像创建可绘制的行来设置自定义背景。比如在res/drawable/

中制作一个可绘制的
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <shape android:shape="rectangle">
            <solid android:color="@color/colorPressEffect"/>
        </shape>
    </item>
    <item android:state_pressed="false">
        <shape android:shape="rectangle">
            <solid android:color="@android:color/transparent"/>
        </shape>
    </item>
</selector>

并将此drawable设置为行布局父layout.like

的背景
 <LinearLayout 
        ...
        ...
         android:background="@drawable/background"
        >

你可以通过这种方式在点击上实现任何动画,你投入的精力越多,你点击的次数就越多。