如何使涟漪效果超出视图边界?

12

这里的触摸波纹效果超出了其边界。如何实现?

输入图像描述

编辑:我只需要支持5.0及以上版本。


你是如何在5.0+上实现这种工作方式的? - Sabre
这是来自Google Keep应用程序的屏幕截图。我想知道如何使涟漪效果不向下延伸,而是向左|上|右延伸 - 就像Google Keep应用程序一样。 - ZakTaccardi
3个回答

11

我从多个地方阅读到:

如果你想在Android 5.0:API 21或以上的版本上应用标准的涟漪效果(不受限制的涟漪效果),只需将其应用于你的View背景即可:

android:background="?android:attr/selectableItemBackgroundBorderless"

3
这确实可以延伸超出视图边界,但为了符合图片中所见,水波纹需要被限制在“添加快速备注”的区域内。 - Andrew No
它是如何工作的?是否可以自定义它?也许像拨号应用程序一样有不同的颜色和大小? - android developer

3
我已经测试过了,这里发生的情况是涟漪不在按钮上,而是在背景对象上。因此,在这里,涟漪实际上并没有超出按钮的范围,而是扩展到了背景包装卡对象的范围。
要复制您在图片中看到的效果,请按照以下步骤进行:
1. 创建一个新布局。我会使用相对布局或线性布局。
2. 添加上面的EditText(“添加快速说明”),然后添加四个下方的按钮,所有按钮都具有清晰的背景,但具有像上面一样的灰色边框。
3. 在放置按钮的布局的背景上设置涟漪动画,并确保在您的布局上设置android:clickable="true"
这使我得到了与您图片中相同的效果。

但这不会扩展到“添加快速笔记”之外的范围。这是它的限制。 - Ali Kazi
2
@AliKazi,正确,但我认为这就是他所要求的。为了进一步扩展“添加快速注释”的功能,可以将涟漪应用到视图层次结构更高的位置,前提是他们满意于清晰的背景。 - Andrew No
对我来说,我有一个用于底部选项卡的TabLayout,即使我设置了android:background="?android:attr/selectableItemBackgroundBorderless",它也不显示涟漪效果。我现在正在制作一些新东西,如果它有效,我想知道为什么我所想到的解决方案还没有被建议作为任何与此相关的SO问题的答案。 - Ali Kazi

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接