package com.shizhefei.recyclerview;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.Adapter;
import android.support.v7.widget.RecyclerView.AdapterDataObserver;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.view.ViewGroup;
public class HFRecyclerAdapter extends HFAdapter {
protected Adapter adapter;
public HFRecyclerAdapter(Adapter adapter) {
this(adapter, true);
}
public HFRecyclerAdapter(Adapter adapter, boolean needSetClickListener) {
super(needSetClickListener);
this.adapter = adapter;
adapter.registerAdapterDataObserver(adapterDataObserver);
}
public Adapter getAdapter() {
return adapter;
}
private AdapterDataObserver adapterDataObserver = new AdapterDataObserver() {
@Override
public void onChanged() {
HFRecyclerAdapter.this.notifyDataSetChanged();
}
@Override
public void onItemRangeChanged(int positionStart, int itemCount) {
HFRecyclerAdapter.this.notifyItemRangeChanged(positionStart + getHeadSize(), itemCount);
}
@Override
public void onItemRangeInserted(int positionStart, int itemCount) {
HFRecyclerAdapter.this.notifyItemRangeInserted(positionStart + getHeadSize(), itemCount);
}
@Override
public void onItemRangeRemoved(int positionStart, int itemCount) {
HFRecyclerAdapter.this.notifyItemRangeRemoved(positionStart + getHeadSize(), itemCount);
}
@Override
public void onItemRangeMoved(int fromPosition, int toPosition, int itemCount) {
HFRecyclerAdapter.this.notifyItemMoved(fromPosition + getHeadSize(), toPosition + getHeadSize());
}
@Override
public void onItemRangeChanged(int positionStart, int itemCount, Object payload) {
HFRecyclerAdapter.this.notifyItemRangeChanged(positionStart + getHeadSize(), itemCount, payload);
}
};
@Override
public ViewHolder onCreateViewHolderHF(ViewGroup viewGroup, int type) {
return adapter.onCreateViewHolder(viewGroup, type);
}
@Override
public void onBindViewHolderHF(ViewHolder vh, int position) {
adapter.onBindViewHolder(vh, position);
}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
adapter.onAttachedToRecyclerView(recyclerView);
}
@Override
public void onDetachedFromRecyclerView(RecyclerView recyclerView) {
adapter.onDetachedFromRecyclerView(recyclerView);
}
@Override
public void onViewAttachedToWindow(ViewHolder holder) {
adapter.onViewAttachedToWindow(holder);
}
@Override
public boolean onFailedToRecycleView(ViewHolder holder) {
return adapter.onFailedToRecycleView(holder);
}
@Override
public void onViewRecycled(ViewHolder holder) {
adapter.onViewRecycled(holder);
}
@Override
public void onViewDetachedFromWindow(ViewHolder holder) {
adapter.onViewDetachedFromWindow(holder);
}
@Override
public int getItemCountHF() {
return adapter.getItemCount();
}
@Override
public int getItemViewTypeHF(int position) {
return adapter.getItemViewType(position);
}
@Override
public long getItemIdHF(int position) {
return adapter.getItemId(position);
}
}