我有TextView
用作按钮。我想在按下时添加属性selectableItemBackgroundBorderless
以产生圆形波纹效果。布局如下:
android:id="@+id/create_button"
android:layout_width="wrap_content"
android:layout_height="54dp"
...
android:background="? android:attr/selectableItemBackgroundBorderless"
因此,按下时确实会出现圆形波纹效应,但是纹波会从文本视图中消失,但只是在textview的底部(因为textview的顶部是动作栏)。
我的问题是,为什么涟漪效应会跨越textview底部?如您所知,我将android:layout_height
限制为54dp。为什么这个限制没用?
答案 0 :(得分:22)
您必须使用?android:attr/selectableItemBackground
将涟漪效果保持在View
边界内。
?android:attr/selectableItemBackgroundBorderless
允许效果超出View
。
答案 1 :(得分:3)
1.要限制视图内的涟漪效果,只需指定
android:background="?attr/selectableItemBackground"
在视图内。
2.为了使波纹效果边界更少,即在整个布局中显示波纹效果,您可以使用它。
android:background="?attr/selectableItemBackgroundBorderless"
3.如需了解更多信息,请查看链接Defining Custom Animation