1. 程式人生 > >RecyclerView的基本使用步驟

RecyclerView的基本使用步驟

RecyclerView簡介:

RecyclerView是一種新的檢視組,目標是為任何基於介面卡的檢視提供相似的渲染方式。它被作為ListView和GridView控制元件的繼承者,在最新的support-V7版本中提供支援。它的靈活性和可替代性比ListView更好,下面為大家介紹一下RecyclerView的簡單使用步驟。

步驟一:匯入包

compile 'com.android.support:recyclerview-v7:23.0.1'
步驟二:在(activity_main.xml)佈局中新增RecyclerView,另外建立一個RecyclerView的項佈局(Rec_item.xml)

activity_main.xml

<android.support.v7.widget.RecyclerView
android:id="@+id/buy_recyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"       //表示顯示垂直的滾動條></android.support.v7.widget.RecyclerView>

rec_item.xml,在這裡為了方便起見我新增一個TextView就好

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rec_tv"/>
步驟三:MainActivity.class(主介面)
private RecyclerView mRecyclerView;            //宣告Recyclerview
private Rec_Adapter mRec_Adapter; //宣告介面卡
private List<String> datas = new ArrayList<>(); //用於儲存獲取的資料
mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview);  
mRec_Adapter = new Rec_Adapter(datas);//將資料傳入介面卡
mRecyclerView.setAdapter(mRec_Adapter);//將介面卡傳入RecyclerView
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));//設定RecyclerView的樣式

在這裡為大家介紹一下RecyclerView的樣式,可分為ListView、GridView、瀑布流的效果。上面為ListView的效果。

GridView效果:

mRecyclerView.setLayoutManager(new GridLayoutManager(this,3)); 

或者

mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.HORIZONTAL));//水平、

瀑布流效果:

mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL));//垂直
步驟四:Adapter(介面卡),這裡是重點難點部分,我建立了一個名為Rec_Adapterd.class的類並繼承了RecyclerView.Adapter。
public class Rec_Adapter extends RecyclerView.Adapter<Rec_Adapter.ViewHolder> // 此處一定要繼承RecyclerView.Adapter,尖括號內傳入泛型Holder,此處的Holder需要在Rec_Adapter中建立一個內部類。
繼承了RecyclerView.Adapter後要重寫幾個方法,直接上程式碼。
private LayoutInflater inflater;
private List<String> mdatas;
public Rec_Adapter(List<String> mdatas) {     
this.mdatas = mdatas;
} // 介面卡的構造方法,用於傳入資料

class Rec_Holder extends RecyclerView.ViewHolder{ //內部類,將控制元件繫結起來,這裡只綁定了一個TextView.
TextView rec_tv;
public Rec_Holder(View itemView) {
super(itemView);
rec_tv = (TextView) itemView.findViewById(R.id.rec_tv); //通過findViewById()繫結控制元件}

}
@Override
public Rec_Holder onCreateViewHolder(ViewGroup parent, int viewType) { //建立ViewHolder,返回每一項的佈局。
inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.rec_item,parent,false);
return new Rec_Holder(view);
}

@Override
public void onBindViewHolder(Rec_Holder holder, int position) { //將資料跟控制元件繫結起來
holder.rec_tv.setText(mdatas.get(position)); //我在這裡實現的是在每項中顯示項的位置
}
@Override
public int getItemCount() { //在此處將返回項的數目
return mdatas.size();
} 以上就是RecyclerView的基本使用實現,另外RecyclerView還有一些方法,如刪除,新增項等等,下次將為大家奉上。