package com.time.cat.dragboardview.adapter; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import com.time.cat.dragboardview.PagerRecyclerView; /** * @author dlink * @email [email protected] * @date 2018/4/3 * @discription {@link PagerRecyclerView} çš„Adapter * @usage null */ public class RecyclerViewPagerAdapter<VH extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<VH> { private final RecyclerView mViewPager; public RecyclerView.Adapter<VH> mAdapter; public RecyclerViewPagerAdapter(RecyclerView viewPager, RecyclerView.Adapter<VH> adapter) { mAdapter = adapter; mViewPager = viewPager; setHasStableIds(mAdapter.hasStableIds()); } @Override public VH onCreateViewHolder(ViewGroup parent, int viewType) { return mAdapter.onCreateViewHolder(parent, viewType); } @Override public void registerAdapterDataObserver(RecyclerView.AdapterDataObserver observer) { super.registerAdapterDataObserver(observer); mAdapter.registerAdapterDataObserver(observer); } @Override public void unregisterAdapterDataObserver(RecyclerView.AdapterDataObserver observer) { super.unregisterAdapterDataObserver(observer); mAdapter.unregisterAdapterDataObserver(observer); } @Override public void onViewRecycled(VH holder) { super.onViewRecycled(holder); mAdapter.onViewRecycled(holder); } @Override public boolean onFailedToRecycleView(VH holder) { return mAdapter.onFailedToRecycleView(holder); } @Override public void onViewAttachedToWindow(VH holder) { super.onViewAttachedToWindow(holder); mAdapter.onViewAttachedToWindow(holder); } @Override public void onViewDetachedFromWindow(VH holder) { super.onViewDetachedFromWindow(holder); mAdapter.onViewDetachedFromWindow(holder); } @Override public void onAttachedToRecyclerView(RecyclerView recyclerView) { super.onAttachedToRecyclerView(recyclerView); mAdapter.onAttachedToRecyclerView(recyclerView); } @Override public void onDetachedFromRecyclerView(RecyclerView recyclerView) { super.onDetachedFromRecyclerView(recyclerView); mAdapter.onDetachedFromRecyclerView(recyclerView); } @Override public void onBindViewHolder(VH holder, int position) { mAdapter.onBindViewHolder(holder, position); final View itemView = holder.itemView; ViewGroup.LayoutParams lp; if (itemView.getLayoutParams() == null) { lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); } else { lp = itemView.getLayoutParams(); if (mViewPager.getLayoutManager().canScrollHorizontally()) { lp.width = ViewGroup.LayoutParams.MATCH_PARENT; } else { lp.height = ViewGroup.LayoutParams.MATCH_PARENT; } } itemView.setLayoutParams(lp); } @Override public void setHasStableIds(boolean hasStableIds) { super.setHasStableIds(hasStableIds); mAdapter.setHasStableIds(hasStableIds); } @Override public int getItemCount() { return mAdapter.getItemCount(); } @Override public int getItemViewType(int position) { return mAdapter.getItemViewType(position); } @Override public long getItemId(int position) { return mAdapter.getItemId(position); } }