由于RecyclerView是support-V7包中的新組件,使用時(shí)需要導(dǎo)入com.android.support:recyclerView-v7:21.0.2的依賴笤闯,它的任務(wù)是回收和定位屏幕上的View爆雹。列表項(xiàng)View能夠顯示數(shù)據(jù)還需要兩個(gè)類的支持:ViewHolder子類和Adapter子類茫船。
ViewHolder只做一件事:容納View視圖,創(chuàng)建ViewHolder子類示例如下:
Adapter負(fù)責(zé)的事情有:
1坎弯、創(chuàng)建必要的ViewHolder
2酒朵、 綁定ViewHolder至模型層數(shù)據(jù)(具體示例請(qǐng)看后面)
貝塞爾曲線主要用于二維圖形應(yīng)用程序中的數(shù)學(xué)曲線桦锄,曲線有起始點(diǎn)、終止點(diǎn)和控制點(diǎn)組成蔫耽,同調(diào)整控制點(diǎn)來(lái)控制繪制貝塞爾曲線的形狀结耀,具體分析請(qǐng)參考文獻(xiàn):https://blog.csdn.net/monkey646812329/article/details/52841105?locationNum=2&fps=1
Ok,了解完什么是RecyclerView和貝塞爾曲線那就進(jìn)入我們這次效果的實(shí)現(xiàn)吧
(一)首先匙铡,我在上次分享中做了調(diào)整图甜,將右邊顯示的ListView換成了RecyclerView, 代碼如圖所示:
由于我們?cè)诹斜眄?xiàng)View(即item)中,需要使用內(nèi)部監(jiān)聽(tīng)+鳖眼、-,所以我們需要重寫(xiě)Adapter來(lái)實(shí)現(xiàn)內(nèi)部監(jiān)聽(tīng)黑毅;本次效果中我們使用的Adapter是RecyclerView.Adapter的子類,它繼承于RecyclerView.Adapter,通過(guò)重寫(xiě)onCreateView()和onBindViewHolder()方法實(shí)現(xiàn)列表View的創(chuàng)建和綁定钦讳,具體實(shí)現(xiàn)如下:
1矿瘦、在自定義的Adapter中創(chuàng)建ViewHolder子類,代碼如圖所示:
2愿卒、在Onclick()中監(jiān)聽(tīng)點(diǎn)擊事件缚去,代碼如圖所示:
3、創(chuàng)建完ViewHolder后琼开,我們需要重寫(xiě)RecyclerView.Adapter中的onCreateViewHolder()和onBindViewHolder()來(lái)創(chuàng)建和綁定數(shù)據(jù)易结,代碼如圖所示:
4、由于Android中并沒(méi)有給RecyclerView增進(jìn)點(diǎn)擊事件柜候,所以我們需要自己使用接口回調(diào)機(jī)制搞动,創(chuàng)建點(diǎn)擊事件的接口,代碼如圖所示:
5渣刷、回到我們的orderActivity界面鹦肿,在right_adapter()方法中使用我們自定義的Adapter, 代碼如圖所示:
(二)貝塞爾曲線的應(yīng)用
1、獲取起始坐標(biāo)辅柴、控制坐標(biāo)狮惜、終點(diǎn)坐標(biāo)高诺,代碼如圖所示
2、設(shè)置貝塞爾曲線的起始坐標(biāo)碾篡、控制坐標(biāo)虱而、終點(diǎn)坐標(biāo),代碼如圖所示:
3开泽、創(chuàng)建加入購(gòu)物車過(guò)程中的圖片或者繪制圖形(加入過(guò)程中view的顯示自己定)牡拇,在這里所用的是圖片,其中R.dimen.item_dish_cricle_size是創(chuàng)建在values中自定義的xml中<dimen?name="R.dimen.item_dish_cricle_size">
,代碼如圖所示:
4穆律、根據(jù)二階貝塞爾曲線的公式定義自己的插值器惠呼,代碼如圖所示
5、創(chuàng)建加入購(gòu)物車的動(dòng)畫(huà)效果峦耘,代碼如圖所示:
6剔蹋、創(chuàng)建購(gòu)物車的縮放效果
7、最后別忘了移除視圖
參考文獻(xiàn):https://blog.csdn.net/weixin_34306593/article/details/93218428