@Override public void setAdapter(Adapter adapter) { if (mHeader != null && adapter != null) { final HeaderAdapter headerAdapter = new HeaderAdapter(adapter); headerAdapter.setHeader(mHeader); adapter = headerAdapter; } super.setAdapter(adapter); } }
public RecyclerView.Adapter getAdapter() { final RecyclerView.Adapter adapter = getRecyclerView().getAdapter(); if (adapter instanceof HeaderRecyclerView.HeaderAdapter) { return ((HeaderRecyclerView.HeaderAdapter) adapter).getWrappedAdapter(); } return adapter; }
@Override public void onItemRangeInserted(int positionStart, int itemCount) { notifyItemRangeInserted(positionStart, itemCount); }
@Override public void onItemRangeRemoved(int positionStart, int itemCount) { notifyItemRangeRemoved(positionStart, itemCount); } };
@Override public void onItemRangeMoved(int fromPosition, int toPosition, int itemCount) { // Why is there no notifyItemRangeMoved? notifyDataSetChanged(); }
public HeaderAdapter(RecyclerView.Adapter adapter) { mAdapter = adapter; mAdapter.registerAdapterDataObserver(mObserver); setHasStableIds(mAdapter.hasStableIds()); }
@Override public void onChanged() { notifyDataSetChanged(); }
@Override public void onItemRangeChanged(int positionStart, int itemCount) { notifyItemRangeChanged(positionStart, itemCount); }