前面我們已經實現了RecyclerView的大部分功能了,但是有個很明顯的缺陷-------沒有點擊效果!這就坑爹了
ListView自帶點擊效果好嘛!連這個都要自己定義。。。。
話不多說,下面就來為RecyclerView添加點擊效果吧!跟我們為普通button定義點擊效果一樣我們要實現以下幾個步驟:
1、在value目錄下新建colors.xml文件並配置item的press和normal狀態下的顏色
2、在drawable下創建 xxx_selector.xml方法,將item兩個狀態的顏色配置進去
3、在 xxx_item.xml的item布局文件中修改item的background設置成drawable下的xxx.selector
很簡單是吧!有人會想不通為啥不在selector里面直接寫顏色碼,這樣不是很方便么?其實試過的人都知道,selector內的item不能直接
寫顏色碼的。好了,閑言少敘,開始吧!
第一步:在value目錄下新建colors.xml文件並配置item的press和normal狀態下的顏色
colors.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#3F51B5</color> <color name="colorPrimaryDark">#303F9F</color> <color name="colorAccent">#FF4081</color> </resources>
第二步:在drawable下創建 xxx_selector.xml方法,將item兩個狀態的顏色配置進去
recycler_item_select.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@color/colorPrimary"/> <item android:drawable="@color/colorAccent"/> </selector>
第三步:在 xxx_item.xml的item布局文件中修改item的background設置成drawable下的xxx.selector
(上圖的recyclerview拼寫有些錯誤,請見諒)
recyclerview_item.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="70dp" android:background="@drawable/recycler_item_select" android:layout_margin="2dp" android:orientation="vertical"> <TextView android:id="@+id/recycle_tv" android:textSize="20dp" android:gravity="center" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
上面工作都搞定以后來看看效果吧!
很簡單,是吧!前面說了,這個方法也可以為很多類似點擊的控件添加點擊效果例如button
到這里RecyclerView的內容大概就這些了,里面還有個添加和刪除的方法沒有說,不過代碼里面已經包含了。小伙伴們
可以自己研究下。這里貼下效果圖:
當點擊右下角的郵件圖標時會在item 1 的位置添加一個新的item
當點擊右上角紅色框出的圖標時會刪除一個在item 1 位置的item
圖標沒有換比較丑,大家見諒。