对ListView项目的涟漪效应

时间:2017-01-08 19:26:45

标签: android listview ripple

我创建了一个自定义列表项,我将其放入ListView中。这些项目是可点击的(单个和多个选项),一旦点击我希望它们改变颜色而不会失去漂亮的材质涟漪效果。

这是仅仅改变颜色一次togglet的静态方式:

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?attr/colorControlHighlight">
    <item android:drawable="?attr/colorAccent" />
</ripple>

我还创建了自己的波纹可绘制,这样我就可以在不失去涟漪效果的情况下改变颜色 - 但是这样项目的颜色保持不变/不会改变。

Test.java

简而言之:我希望我的列表项在单击时从背景颜色x更改为y,从y返回到x,但仍然会对它们产生连锁效果。

非常感谢帮助,谢谢!

2 个答案:

答案 0 :(得分:0)

我知道您已经找到了解决方案,但这就是昨天才对我有用的东西:

您不需要定义自己的波纹可绘制对象。只需在您的父级ListView上执行此操作即可:

<ListView
    ...
    android:drawSelectorOnTop="true"/>

这将为您处理波纹效果,因此您只需要在单击项目时注意更新自定义列表项目的颜色(您已经在做)。

答案 1 :(得分:0)

尝试使用tf属性。

tf