使用步驟:
Step1 : 佈局中添加RecyclerView
Step2 : 獲取RecyclerView實例
Step3 : 設置佈局管理器(控制顯示的方式:LinearLayoutManager、GridLayoutManager、StaggeredGridLayoutManager)
Step4 : 設置數據Adapter
Step5 : 添加Item添加、刪除動畫(setItemAnimator)
Step6 : 添加分割線(addItemDecoration)
Step7 : 添加監聽事件(onClick等,可直接再onBindViewHolder中直接添加)
Step4 : 自定義Adapter:
/**
* 繼承RecyclerView.Adapter
* 1.重寫onCreateViewHolder()返回ItemViewHolder
* 2.重新onBindViewHolder()綁定數據
* 3.重寫getItemCount()返回記錄個數
* 4.自定義ItemViewHolder繼承ViewHolder
*
* @see 如果需要爲RecylerView添加Header或者Footer,需要額外處理以下細節:
* 1.重寫getItemViewType()方法,用於區分Item類型
* 2.onCreateViewHolder()、onBindViewHolder()需要區分處理
* 3.getItemCount()返回srcDatas.size()+headerCount + footerCount
*
* @author 健身小碼哥
*
*/
public class CustomAdapter extends RecyclerView.Adapter<DataAdapter.CustomViewHolder>
{
@Override
public CustomViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
CustomViewHolder holder = new CustomViewHolder(LayoutInflater.from(context).
inflate(R.layout.item, parent,
false));
return holder;
}
@Override
public void onBindViewHolder(CustomViewHolder holder, int position)
{
holder.titleTv.setText(mDatas.get(position));
holder.headImg.setImageResource(R.drawable.head);
}
@Override
public int getItemCount()
{
return mDatas.size();
}
class CustomViewHolder extends ViewHolder
{
TextView titleTv;
ImageView headImg;
public MyViewHolder(View view)
{
super(view);
titleTv = (TextView) view.findViewById(R.id.title);
headImg = (ImageView) view.findViewById(R.id.img_head)
}
}
}
Step5 : 添加Item添加刪除效果(addItemDecoration)
* 可以參考 RecyclerViewItemAnimators , 提供了豐富的效果。
Step6 : 自定義分割線* 繼承ItemDecoration,並根據佈局的特點進行重寫 (系統暫時未提供默認的實現類)
* 可參考 ItemDecoration的幾種實現