package com.metis.base.widget.adapter.holder; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.StaggeredGridLayoutManager; import android.view.View; import android.view.ViewGroup; import android.widget.ProgressBar; import android.widget.TextView; import com.metis.base.R; import com.metis.base.module.Footer; import com.metis.base.widget.adapter.delegate.FooterDelegate; /** * Created by Beak on 2015/7/8. */ public class FooterHolder extends AbsViewHolder<FooterDelegate> { public ProgressBar mProgressBar = null; public TextView mTipTv = null; public FooterHolder(View itemView) { super(itemView); mProgressBar = (ProgressBar)itemView.findViewById(R.id.footer_progress); mTipTv = (TextView)itemView.findViewById(R.id.footer_tip); } @Override public void bindData(Context context, FooterDelegate footerDelegate, RecyclerView.Adapter adapter, int position) { if (footerDelegate.isInStaggeredGrid()) { StaggeredGridLayoutManager.LayoutParams params = (StaggeredGridLayoutManager.LayoutParams)itemView.getLayoutParams(); if (params == null) { params = new StaggeredGridLayoutManager.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); } params.setFullSpan(true); itemView.setLayoutParams(params); } switch (footerDelegate.getSource().getState()) { case Footer.STATE_FAILED: mProgressBar.setVisibility(View.INVISIBLE); mTipTv.setVisibility(View.VISIBLE); mTipTv.setText(R.string.footer_failed); break; case Footer.STATE_IDLE: mProgressBar.setVisibility(View.INVISIBLE); mTipTv.setVisibility(View.INVISIBLE); mTipTv.setText(""); break; case Footer.STATE_NO_MORE: mProgressBar.setVisibility(View.INVISIBLE); mTipTv.setVisibility(View.VISIBLE); mTipTv.setText(R.string.footer_no_more); break; case Footer.STATE_SUCCESS: mProgressBar.setVisibility(View.INVISIBLE); mTipTv.setVisibility(View.VISIBLE); mTipTv.setText(R.string.footer_success); break; case Footer.STATE_WAITTING: mProgressBar.setVisibility(View.VISIBLE); mTipTv.setVisibility(View.INVISIBLE); mTipTv.setText(""); break; } } }