我有一个看起来像这样的 LinearLayout。
我希望每一行都可以点击。一行的 LinearLayout
代码如下所示:
<LinearLayout
style="@style/home_menu_item_container"
android:id="@+id/home_menu_acronyms_button"
>
<ImageView
style="@style/home_menu_item_left"
android:background="@color/greyLight"
/>
<TextView
style="@style/home_menu_item_right"
android:text="@string/home_menu_option_2"
android:background="@color/grey"
/>
</LinearLayout>
如何添加波纹效果扩展到整行(父 View )——而不仅仅是行中的一个 subview ?这里棘手的部分是让波纹穿过两个彩色行。
最佳答案
到目前为止,我发现最简单的方法是定义一个 <ripple>
在你的可绘制对象中,然后设置 LinearLayout
的背景到这个可绘制资源。
定义你的 drawable-v21/item_selector.xml
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/your_background_color">
<item android:id="@android:id/mask"
<!--color here doesn't matter-->
android:drawable="@android:color/white" />
</ripple>
设置你的背景LinearLayout
至 drawable/item_selector
.
<LinearLayout
style="@style/home_menu_item_container"
android:background="@drawable/item_selector"
android:id="@+id/home_menu_acronyms_button" >
...
</LinearLayout>
此外,如果你没有自己的背景色,那么就没有必要定义一个item_selector
了。根本。您可以简单地将背景定义为 android:background="?android:attr/selectableItemBackground"
为你的 LinearLayout
.
关于android - 如何在不覆盖其子项背景颜色的情况下对线性布局产生涟漪效应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28309256/