美文网首页Android
RecyclerView使用 (二)_Adapter方法

RecyclerView使用 (二)_Adapter方法

作者: Sraindy | 来源:发表于2019-07-23 15:05 被阅读0次

继承RecyclerView.Adapter后,会重写三个方法


public class RecycleViewAdapter extends RecyclerView.Adapter {

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        return null;
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    }

    @Override
    public int getItemCount() {
        return 0;
    }
}

  • getItemCount():获取Item的数目
    这个方法的返回值,便是RecyclerView中实际item的数量。有些情况下,当增加了HeaderView或者FooterView后,需要注意考虑这个返回值。
  • onCreateViewHolder(ViewGroup parent, int viewType):创建Holder
    ViewGroup parent:可以简单理解为item的根ViewGroup,item的子控件加载在其中
    int viewType:item的类型,可以根据viewType来创建不同的ViewHolder,来加载不同的类型的item。
    这个方法就是用来创建出一个新的ViewHolder,可以根据需求的itemType,创建出多个ViewHolder。创建多个itemType时,需要getItemViewType(int position)方法配合
  • onBindViewHolder(RecyclerView.ViewHolder holder, int position):绑定ViewHolder
    VH holder:就是在onCreateViewHolder()方法中,创建的ViewHolder
    int position:item对应的DataList数据源集合的postion。postion就是adapter position,RecycelrView中item的数量,就是根据DataList数据源集合的数量来创建的

在RecyclerView.Adapter中还会用到如下方法

int getItemViewType(int position):实现多种item

 @Override
    public int getItemViewType(int position) {
        if (position + 1 == getItemCount()) {
            return TYPE_FOOTER;
        } else {
            return TYPE_ITEM;
        }
    }

一系列的notifyData方法

public final void notifyDataSetChanged()
public final void notifyItemChanged(int position)
public final void notifyItemRangeChanged(int positionStart, int itemCount)
public final void notifyItemInserted(int position)
public final void notifyItemMoved(int fromPosition, int toPosition)
public final void notifyItemRangeInserted(int positionStart, int itemCount)
public final void notifyItemRemoved(int position)
public final void notifyItemRangeRemoved(int positionStart, int itemCount)

学习资料:
[RecyclerView入门学习之RecyclerView.Adapter(三)](https://www.jianshu.com/p/b2e6ad1af557)

[为RecyclerView打造通用Adapter 让RecyclerView更加好用](https://blog.csdn.net/lmj623565791/article/details/51118836)

[[RecyclerView中notifyDataSetChanged刷新总结](https://www.cnblogs.com/ganchuanpu/p/8000926.html)
](https://www.cnblogs.com/ganchuanpu/p/8000926.html)

相关文章

网友评论

    本文标题:RecyclerView使用 (二)_Adapter方法

    本文链接:https://www.haomeiwen.com/subject/ufwolctx.html