多樣化條目RecyclerView,以及多樣化動畫點擊效果(附源碼)

(本文中點擊效果更新了,想了解點擊效果請移步:http://blog.csdn.net/bamboy_/article/details/54342079

RecyclerView是support-v7包中的新組件,
是一個強大的滑動組件。
與經典的ListView相比,
同樣擁有item回收複用的功能,
直接把viewholder的實現封裝起來,
用戶只要實現自己的viewholder就可以了,
該組件會自動幫你回收複用每一個item。

它不但變得更精簡,
也變得更加容易使用,
而且更容易組合設計出自己需要的滑動佈局。

RecyclerView出世有段時間了,
我也把我的項目中的ListView替換成了RecyclerView,
只是,
RecyclerView與ListView的Adapter格式本就有很大區別,
那麼遇到多樣式Item的時候該怎麼辦呢?

比如我的RecyclerView中的條目有很多種樣式,
第一個條目是商品,
第二個條目可能就是廣告,
第三個條目可能是個ViewPager等等……

於是我把這個問題解決後分享給大家,
希望幫到遇到同樣情況的朋友們。

此Dome內容主要分爲兩點:
1、 多樣化條目的列表;
2、 多樣化點擊動畫效果。

看下效果先:
點擊效果

1、 多樣化條目:
首先,
每個條目不同的數據結構,
當然要有不同的Bean,
但是那麼多Bean,
如果一股腦全都扔到Adapter裏是不是很混亂呢?
所以我們第一步是創建一個“強大”的Bean,
一起來看一下:

1) BeanObject:
這個Bean至少需要兩個字段:

很顯然,
我的目的就是把各種類型的Bean都封裝在content裏,
然後以state來區分,
爲了防止種類太多太亂,
我們可以用常量來進行規範化。
比如我的三種Bean的常量:
多少種Item,就定義多少常量
爲了方便使用,建議給BeanObject加上有參構造。

2) List mList:
這部分就很簡單了,
只需要把數據裝進去就行了:

3) Adapter

以上的部分,
無論是RecyclerView還是ListView,
都是差不多的,
真正的重點纔剛剛開始。

我們都知道無論是RecyclerView還是ListView的Adapter,
都是需要ViewHolder的,
所以我們首先寫一個ViewHolder:
ViewHolder基類
這個ViewHolder只是個基類,
所以我們只需要有一個state字段即可。
下面是我們各種Item的ViewHolder了:

手機的:
ViewHolder_Phone

電腦的:
ViewHolder_Computer

平板的:
ViewHolder_Pad

好了,
三種ViewHolder完事,
下面輪到我們的重中之重了,
Adapter的getItemViewType方法:
getItemViewType
這裏就用到上面我們說的BeanObject中的state字段了,
用於獲取這是哪個種類的Item,
以判斷我們該使用哪個XML佈局,
話不多說,上代碼:
onCreateViewHolder

到現在爲止,
佈局部分基本完成,
下面就只需要往控件裏邊充氣…
哦不,塞數據就好了。
爲了條理清晰,
我全部封裝成方法:
onBindViewHolder

本着送佛送到西的精神,
再給你們看下這幾個方法的具體實現:

手機:
處理手機條目數據

電腦:
處理電腦條目數據

平板:
處理平板條目數據

不要問我爲什麼給他們都加上了空的OnClick事件,
後面再告訴你們。

你們以爲這樣就完事兒了?
呵呵,其實確實這麼就完事兒了……

2、 多樣化動畫點擊效果:
(點擊效果更新了,想了解請移步:http://blog.csdn.net/bamboy_/article/details/54342079

看完上邊,
是不是需要點時間來消化呢?
沒關係,
下邊我們來玩點好玩的,
那就是上面你們看到的點擊效果:
點擊效果
怎麼樣,
看到這個效果是不是有點小激動?
這個效果可能看上去過於華麗,
感覺實現起來很複雜,
甚至會有人望而卻步……

其實完全不用擔心,
想要使用這個效果,
簡單到讓你不敢相信:

在使用之前,
我們給你們簡單看下一個包,
其實我完全可以把它打成一個jar包,
但是爲了大家夥兒研究起來方便,
還是放棄了打成jar包的念頭。
我的註釋還算得上全面的,
大家如果想研究的話,
打開即可研究。
Bamboy點擊效果包
就是這麼幾個小傢伙兒,
大家想研究的話直接找這裏即可。

好了不多說了,
直接上使用教程!
找到需要點擊效果的控件,
在XML裏控件名稱前加上這麼包名就好了,
比如說像我的就是這樣:
com.bamboy.bamboy.colourful.bamUI.Bam
如下:

嗯,就這麼簡單。

唯一需要注意的是,
由於是點擊效果,
所以使用這些效果的控件必須要設置OnClick事件!
謹記!
否則在界面可滾動時不會回彈。
現在知道爲什麼上邊要加上OnClick事件了吧?
即使不需要也要加上一個空的。

附上源碼下載鏈接:http://download.csdn.net/detail/qq_24515359/9504323
(AndroidStudio編寫,Eclipse自己多費些精力哈)

如果覺得塵少的Demo還不錯的話,
可以克隆我的Git倉庫,
各種酷炫效果收入囊中:
https://github.com/Bamboy120315/bamboy.git
手機掃碼下載App一睹爲快:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章