textable的selectableItemBackgroundBorderless

Vin*_*ent 9 geometry android effect textview

我有一个TextView用作按钮.我想selectableItemBackgroundBorderless在按下时添加属性以产生圆形波纹效果.布局如下:

android:id="@+id/create_button"  
android:layout_width="wrap_content"
android:layout_height="54dp"
...
android:background="? android:attr/selectableItemBackgroundBorderless"
Run Code Online (Sandbox Code Playgroud)

因此,按下时确实会出现圆形波纹效应,但是纹波会从文本视图中消失,但只是在textview的底部之外(因为textview的顶部是动作栏).

我的问题是,为什么涟漪效应会跨越textview底部?如你所知,我限制android:layout_height在54dp.为什么这个限制没用?

Gaë*_*tan 23

您必须使用?android:attr/selectableItemBackground将波纹效果保持在View边界内.

?android:attr/selectableItemBackgroundBorderless允许效果超出View.


Jay*_*Jay 6

1.要限制视图内的涟漪效应,只需指定

android:background="?attr/selectableItemBackground"
Run Code Online (Sandbox Code Playgroud)

视图内。

2.为了减少波纹效果边框,即在整个布局中显示波纹效果,您可以使用它。

android:background="?attr/selectableItemBackgroundBorderless"
Run Code Online (Sandbox Code Playgroud)

3.有关更多信息,您可以查看链接定义自定义动画