首先我們知道recyclerview元件是listview的公升級版,今天先介紹基礎的recyclerview的基本布局recyclerview.adapter和layoutmanager
第一:layoutmanager
我們知道listview只能在垂直方向上滾動,android api沒有提供listview在水平方向上面滾動的支援。或許有多種方式實現水平滑動,listview並不是設計來做這件事情的。但是recyclerview相較於listview,在滾動上面的功能擴充套件了許多。它可以支援多種型別列表的展示要求,主要如下:
linearlayoutmanager ,可以支援水平和豎直方向上滾動的列表。
staggeredgridlayoutmanager ,可以支援交叉網格風格的列表,類似於瀑布流或者pinterest。
gridlayoutmanager ,支援網格展示,可以水平或者豎直滾動,如展示的畫廊。
因此recyclerview相對於listview來說自定義性擴充套件了很多
第二:recyclerview.adapter和listview的baseadapter不同之處在於:baseadapter都是在getview乙個方法中實現的,包括view的例項化以及元件的繫結。在recyclerview.adapter中,則提供了recyclerview.viewholder機制,這個類必須我們自己定義,主要是用來儲存檢視的類,主要在oncreateviewholder中實現view的儲存
public static class viewholder extends recyclerview.viewholder}
@overridepublic recyclerview.viewholder oncreateviewholder(viewgroup parent, int viewtype)
另外還需要實現getcount()方法,也就是返回item的數量,另外 onbindviewholder()方法實現對應的元件和資料繫結
@overridepublic void onbindviewholder(recyclerview.viewholder holder, int position)
以下為我寫的基本實現recyclerview功能的一段小**
/**介面卡類
**/
public class recycleradapter extends recyclerview.adapterlayoutinflater = layoutinflater.from(context);
}@override
public recyclerview.viewholder oncreateviewholder(viewgroup parent, int viewtype)
@override
public void onbindviewholder(recyclerview.viewholder holder, int position)
@override
public int getitemcount()
public static class viewholder extends recyclerview.viewholder
}}
主介面**
mrecyclerview = (recyclerview)pagelist.get(sport).findviewbyid(r.id.recyclerview);mrecyclerview.sethasfixedsize(true);
mlinearlayoutmanager = new linearlayoutmanager(this);
mlinearlayoutmanager.setorientation(orientationhelper.vertical);
recycleradapter mrecycleradapter = new recycleradapter(this);
mrecyclerview.setlayoutmanager(mlinearlayoutmanager);
mrecyclerview.setadapter(mrecycleradapter);
注:pagelist.get(sport)為自己定義的乙個例項化view,讀者可以根據自己需要定製不同的xml檔案並將其實例化為view
RecyclerView的簡單使用
recyclerview 和 listview 一樣都是通過維護少量的view來展示大量的資料,不同的是recyclerview提供了一種插拔式的體驗,高度解耦,同時使用起來更加靈活。recyclerview可以通過設定layoutmanager oritation itemanimation it...
關於RecyclerView的Adapter封裝
專案開發中會涉及到很多列表的頁面。如果每個頁面都寫乙個adapter,我們估計會瘋掉。我現在的目的就是在保證質量的同時要寫更少的 所以,封裝唄。recyclerview有自己的adapter和檢視管理。我們只需要把例項化時要傳入的引數泛型抽象,對不同的view實現不同的獲取與設定內容的方法即可。ad...
RecyclerView 的使用流程
一 加入依賴 使用 as 自帶的依賴管理工具加入recyclerview的依賴,注意和和編譯版本號一致 二 在布局檔案中加入 recyclerview控制項 android id id main recylist android layout width wrap content android l...