package com.wangdaye.mysplash.common._basic; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.wangdaye.mysplash.R; /** * Footer adapter. * * A RecyclerView.Adapter class with a footer view holder. By extending this adapter, child can * adapt footer view for RecyclerView more easily. * * */ public abstract class FooterAdapter<VH extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<VH> { /** * Basic ViewHolder for {@link FooterAdapter}. This holder is used to fill the location of * navigation bar. * */ protected static class FooterHolder extends RecyclerView.ViewHolder { private FooterHolder(View itemView) { super(itemView); } public static FooterHolder buildInstance(ViewGroup parent) { return new FooterHolder( LayoutInflater.from(parent.getContext()).inflate(R.layout.item_footer, parent, false)); } } protected abstract boolean hasFooter(); protected boolean isFooter(int position) { return hasFooter() && position == getItemCount() - 1; } @Override public int getItemCount() { return getRealItemCount() + (hasFooter() ? 1 : 0); } public abstract int getRealItemCount(); }