fragment的布局:
xmlns:tools=""
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.vodlistfragment">
android:id="@+id/id_recyclerview"
android:divider="@color/colorwhite"
android:dividerheight="0dp"
android:layout_width="match_parent"
android:layout_height="match_parent">android.support.v7.widget.recyclerview>
framelayout>
item的布局
<?xml version="1.0" encoding="utf-8"?>
name="vodvideo"
type="com.xiangbita.dqk.dqkand.model.vodvideo"/>
name="handler"
type="com.xiangbita.dqk.dqkand.fragment.vodlistfragment"/>
data>
xmlns:android=""
android:layout_width="match_parent"
android:id="@+id/cardview"
android:onclick="@"
android:layout_height="wrap_content">
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaletype="fitcenter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="title"/>
linearlayout>
android.support.v7.widget.cardview>
layout>
fragment中對recyclerview的初始化:
view view =inflater.inflate(r.layout.fragment_vod_list, container, false);
mrecyclerview = (recyclerview) view.findviewbyid(r.id.id_recyclerview);
mspan_count=2;
staggeredgridlayoutmanager layoutmanager = new staggeredgridlayoutmanager(mspan_count,staggeredgridlayoutmanager.vertical);
layoutmanager.setgapstrategy(staggeredgridlayoutmanager.gap_handling_none);
mrecyclerview.setlayoutmanager(layoutmanager);
mvodadapter = new vodadapter();
mrecyclerview.setadapter(mvodadapter);
spacesitemdecoration decoration=new spacesitemdecoration(2);
mrecyclerview.additemdecoration(decoration);
mrecyclerview.setitemanimator(new defaultitemanimator());
videolist = new arraylist<>();
上面**中用到的內部類vodadapter:
class vodadapter extends recyclerview.adapter
@override
public void onbindviewholder(voditemviewholder holder, int position)
@override
public int getitemcount()
class voditemviewholder extends recyclerview.viewholder
} 用到的內部類spaceitemdecoration:
public class spacesitemdecoration extends recyclerview.itemdecoration
@override
public void getitemoffsets(rect outrect, view view, recyclerview parent, recyclerview.state state)
} }
做個簡單的說明,如果不加這個spaceitemdecoration會導致資料第一次載入時的item布局異常。
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...