Android ListFragment:如何启用 Lollipop "Ripple Effect"?

Android ListFragment: How to enable the Lollipop "Ripple Effect"?

我有一个 Activity,里面有一个 ListFragment(支持我的平板电脑布局,但这并不重要)。

现在我想为 ListFragment 启用涟漪效果。例如在另一个 activity 中,我只使用一个普通的 ListView,它会自动在那里工作。

如何以简单的方式做到这一点?

示例(不适用于 ListFragment,但您会明白这一点)

API 21+

在 Lollipop 中,您可以将视图背景设置为 RippleDrawable,您可以在 XML 中定义。

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@android:color/white"> <!-- ripple color -->

    <item android:drawable="@android:color/black"/> <!-- normal color -->

</ripple>

然后将视图的背景设置为 android:background="@drawable/my_ripple"

前API 21

对于可以向后移植到旧版本 Android 的解决方案,以下 number of open source libraries 可提供此功能。

无需定义额外的连锁反应。如果你想在 API 21+ 应用

上激活标准连锁反应
android:background="?android:selectableItemBackground"

在列表项上。这将在 pre-API 21 设备上提供相同的类似选择器的效果,只是没有纹波。