Recyclerview的item如果如果加上水波紋動畫的點擊效果會使列表的ui體驗效果提升很多,今天來給大家介紹一下如何給Recyclerivew的item view添加這樣的動畫效果。
在res目錄的drawable目錄和drawable-v21下分別建立linerlayout_water_selector.xml文件。
drawable目錄下的linerlayout_water_selector.xml文件代碼:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
? ? <item android:drawable="@color/text_Grey" android:state_pressed="true"/>
? ? <item android:drawable="@color/text_Grey" android:state_focused="true"/>
? ? <item android:drawable="@color/colorWhite"/>
</selector>
drawable-v21目錄下的linerlayout_water_selector.xml文件代碼:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
? ? android:color="@color/text_Grey">
? ? <item>
? ? ? ? <shape xmlns:android="http://schemas.android.com/apk/res/android">
? ? ? ? ? ? <corners android:radius="1dp" />
? ? ? ? ? ? <solid android:color="@color/colorWhite" />
? ? ? ? </shape>
? ? </item>
</ripple>
相關color:
? <color name="text_Grey">#c1c1c2</color>
? <color name="colorWhite">#ffffff</color>
在recylcerview的item布局中添加引用該selector文件:
android:background="@drawable/linerlayout_water_selector"
? ? android:clickable="true"
? ? android:focusable="true"
然后點擊運行基本就可以實現想要的水波紋效果了。
如果點擊后沒有出現預期的效果應該做如下檢查:
1.item布局中引用這個水波紋效果selector文件的布局是否確實添加了這兩句代碼:
? ? android:clickable="true"
? ? android:focusable="true"
2.引用這個水波紋效果selector文件的布局中是否嵌套了別的大布局,然后這個大的子布局是否設置了 android:background=”@color/white” 屬性,如果有的話去掉子布局的這個屬性,然后外層的父布局的水波紋點擊效果才能出來,如下圖我碰到的異常造成原因截圖: