使用步驟
- 1.創(chuàng)建RecyclerView xml??配置
- 2.代碼中配置屬性
確定樣式 layoutManager
確定數(shù)據(jù)源
數(shù)據(jù)源最好是在adapter中設置
- 3.定義?個類實現(xiàn)RecyclerView.Adapter接?
RecyclerView就是通過接???的?法來訪問數(shù)據(jù)的
a. 創(chuàng)建?個類繼承于RecyclerView.ViewHolder
重復利?
b. 重寫adapter??的抽象?法
c. 接收外部傳遞過來的數(shù)據(jù)源 1)構造函數(shù) 2)屬性
d. getItemCount 確定元素個數(shù)
e. onCreateViewHolder 確定每?個item的視圖
1)??創(chuàng)建?個View 或者 ??個xml?件來布局
2)通過LayoutInflater解析布局?件 xml -> View -
設置item裝飾器
addItemDecoration
1)系統(tǒng)提供的 DividerItemDecoration 分割線
效果:
DividerItemDecoration
-
2)??創(chuàng)建?個類繼承于ItemDecoration 重寫onDraw或者
onDrawOver蔑赘、getItemOffset
項目詳解:
【1】項目目錄講解
項目文件講解
- 1)MainActivity 項目主Activity创夜,在這里配置RecyclerView的
layoutManager
和adapter
以及相關的itemDecoration
和PagerSnapHelper
- 2)Repository數(shù)據(jù)中轉站炸渡,在這里面封裝了一個方法
loadData()
,在這里可以獲取到數(shù)據(jù)(從數(shù)據(jù)庫,本地莉给,網(wǎng)絡等吗垮,但現(xiàn)在只做了本地的),并且該類采用單例設計模式残腌,因為只存在一個對象就可以實現(xiàn)相應功能,不僅節(jié)約內(nèi)存贫导,而且安全抛猫。 - 3)AskData接口,統(tǒng)一了接口孩灯,只有一個方法
getData()
闺金,要發(fā)送數(shù)據(jù)的端(如網(wǎng)絡服務器,數(shù)據(jù)庫峰档,本地等)都要實現(xiàn)這個接口 - 4)NewsModle新聞數(shù)據(jù)模型败匹,一個數(shù)據(jù)類,模型讥巡,也可以叫做Bean掀亩,總之就是規(guī)范了數(shù)據(jù)格式,只有4種數(shù)據(jù)格式
title:String,val imageId:Int,val like:Int,val type:Int
分別對應著欢顷,標題槽棍,圖片資源,點贊數(shù)抬驴,還有新聞的類型(這里只有兩種新聞類型炼七,分別對應著不同的顯示樣式) - 5)MyAdapter這個不用說了,RecyclerView的適配器布持,在這個獲取數(shù)據(jù)豌拙,并且綁定到item對應的位置顯示
【2】使用步驟
-
1)在xml文件中配置RecyclerView
配置RecyclerView -
2)在MainActivity的onCreat()方法中設置布局管理器
設置布局管理器 -
3)配置adapter,不多廢話鳖链,上代碼
adapter -
4)設置好后在MainActivity中添加該適配器和輔助類和itemDecoration
配置
大概就是這樣姆蘸,下面上所以代碼:
MainActivity:
MainActivity
Repository:
Repository
MyAdapter:
MyAdapter
NewsModle:
NewsModle
LocalUtil:
LocalUtil
AskData:
AskData項目效果: