0.前言
本文目的主要是通过自定义个adapter来学习adapter内各个回调方法的含义。
那么提前先把要分析的本文的重点罗列出来。
- Adapter#onCreateViewHolder //主流程
- Adapter#onBindViewHolder //主流程
- Adapter#convert //解耦
- ViewHolder#get //扩展,渲染
- ViewHolder#getView //扩展
1.自定义ViewHolder
public class ViewHolder extends RecyclerView.ViewHolder {
private SparseArray<View> mViews;
private View mConvertView;
public ViewHolder(Context context, View itemview, ViewGroup parent) {
super(itemview);
mConvertView = itemview;
mViews = new SparseArray<View>();
}
public static ViewHolder get(Context context, ViewGroup parent, int layoutid) {
View itemview = LayoutInflater.from(context).inflate(layoutid, parent, false);
ViewHolder holder = new ViewHolder(context, itemview, parent);
return holder;
}
public <T extends View> T getView(int viewid) {
View view = mViews.get(viewid);