package com.mobimvp.cliques.ui.widgets; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.widget.ProgressBar; import android.widget.TextView; import com.mobimvp.cliques.R; public class LoadingFooter { protected View mLoadingFooter; protected TextView mLoadingText; protected State mState = State.Idle; private ProgressBar mProgress; private long mAnimationDuration; public static enum State { Idle, TheEnd, Loading } public LoadingFooter(Context context) { mLoadingFooter = LayoutInflater.from(context).inflate(R.layout.loading_footer, null); mLoadingFooter.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 屏蔽点击 } }); mProgress = (ProgressBar) mLoadingFooter.findViewById(R.id.progressBar); mLoadingText = (TextView) mLoadingFooter.findViewById(R.id.textView); mAnimationDuration = context.getResources().getInteger( android.R.integer.config_shortAnimTime); setState(State.Idle); } public View getView() { return mLoadingFooter; } public State getState() { return mState; } public void setState(final State state, long delay) { mLoadingFooter.postDelayed(new Runnable() { @Override public void run() { setState(state); } }, delay); } public void setState(State status) { if (mState == status) { return; } mState = status; mLoadingFooter.setVisibility(View.VISIBLE); switch (status) { case Loading: mLoadingText.setVisibility(View.GONE); mProgress.setVisibility(View.VISIBLE); break; case TheEnd: mLoadingText.setVisibility(View.VISIBLE); mLoadingText.animate().withLayer().alpha(1).setDuration(mAnimationDuration); mProgress.setVisibility(View.GONE); break; default: mLoadingFooter.setVisibility(View.GONE); break; } } }