前言
創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)沙河,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575第一次進(jìn)入探探軟件界面,就被這種通過卡片式滑動(dòng)來選擇“喜歡/不喜歡”的設(shè)計(jì)所吸引了。當(dāng)時(shí)就非常想通過自己來實(shí)現(xiàn)這種仿探探式的效果,然而卻沒什么思路。不過毋庸置疑的是,這種效果的原理肯定和 ListView / RecyclerView 類似,涉及到 Item View 的回收和重用,否則早就因?yàn)榇罅康?Item View 而 OOM 了。
再到后來,看到許多大神也推出了同樣仿探探效果的博客,從頭到尾閱讀下來,寫得通俗易懂,基本上沒什么問題。于是,實(shí)現(xiàn)仿探探效果的想法再次出現(xiàn)在腦海中。那么,還猶豫什么,趁熱來一發(fā)吧!就這么愉快地決定了。
首先面臨的問題就是關(guān)于實(shí)現(xiàn) View 上的考慮。毫無疑問。
RecyclerView 是最佳選擇!
RecyclerView 是最佳選擇!
RecyclerView 是最佳選擇!
重要的話講三遍!!!
究其原因,第一,RecyclerView 是自帶 Item View 回收和重用功能的,就不需要我們考慮這個(gè)問題了;第二,RecyclerView 的布局方式是通過設(shè)置 LayoutManager 來實(shí)現(xiàn)的,這樣就充分地把布局和 RecyclerView “解耦”開來了。而 LayoutManager 是可以通過自定義的方式來實(shí)現(xiàn)的。這恰恰是我們想要的!!!再說一點(diǎn),這也正是不選用 ListView 的原因之一。
下面,我們就開始動(dòng)手了。帶你見證奇跡的時(shí)刻。
CardLayoutManager
創(chuàng)建 CardLayoutManager 并繼承自 RecyclerView.LayoutManager
。需要我們自己實(shí)現(xiàn) generateDefaultLayoutParams()
方法:
@Override public RecyclerView.LayoutParams generateDefaultLayoutParams() { return new RecyclerView.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); }