我一直在使用
然而,我发现需要在白色背景上使用此涟漪效果。具体来说,我有一个列表项目布局,将显示在默认颜色背景上(我正在扩展
以下是列表项布局:
上述代码可以实现水波纹效果,但不带白色背景。
如果我尝试:
这显然会产生一个白色背景,但没有涟漪效果。
我还尝试了其他方法 - 这产生了最接近我想要的结果:
上述代码给了我一个带有涟漪效果的白色背景。然而,无论我点击该项的哪个部分,涟漪似乎总是从中心开始。
android:background="?selectableItemBackground"
为视图(例如LinearLayout
)添加涟漪效果。我记得在某个地方看到,这种方法向后兼容至API 14。然而,我发现需要在白色背景上使用此涟漪效果。具体来说,我有一个列表项目布局,将显示在默认颜色背景上(我正在扩展
Theme.AppCompat.Light.NoActionBar
),因此我想通过将列表项涂成纯白色(#FFFFFF
)来使其与该背景区分开来。以下是列表项布局:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="?selectableItemBackground"
android:layout_width="match_parent"
android:layout_height="wrap_content">
...
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingLeft="@dimen/mdu_keyline_1"
android:paddingRight="@dimen/mdu_keyline_1"
android:paddingTop="@dimen/mdu_padding_normal"
android:paddingBottom="@dimen/mdu_padding_normal">
...
</LinearLayout>
</FrameLayout>
上述代码可以实现水波纹效果,但不带白色背景。
如果我尝试:
<FrameLayout ...
android:background="@color/white">
这显然会产生一个白色背景,但没有涟漪效果。
我还尝试了其他方法 - 这产生了最接近我想要的结果:
<FrameLayout ...
android:background="@color/white">
...
<LinearLayout ...
android:background="?selectableItemBackground">
上述代码给了我一个带有涟漪效果的白色背景。然而,无论我点击该项的哪个部分,涟漪似乎总是从中心开始。
以下是一些屏幕截图显示当前结果(请忽略列表项顶部的阴影 - 这是我正在使用的AppBarLayout
和Toolbar
的阴影)。
我该如何实现所需效果?