/** * @file XFooterView.java * @description XListView's footer */ package com.jiuqi.ui.widget; import android.content.Context; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; import com.jqyd.uilib.R; public class XListViewFooter extends LinearLayout{ public final static int STATE_NORMAL = 0; public final static int STATE_READY = 1; public final static int STATE_LOADING = 2; public final static int STATE_NULLDATA = 3; public final static int STATE_NULLMOREDATA = 4; private Context mContext; private View mContentView; private View mProgressBar; private TextView mHintView; public XListViewFooter(Context context){ super(context); initView(context); } public XListViewFooter(Context context, AttributeSet attrs){ super(context, attrs); initView(context); } public void setState(int state){ mHintView.setVisibility(View.INVISIBLE); mProgressBar.setVisibility(View.INVISIBLE); mHintView.setVisibility(View.INVISIBLE); if(state == STATE_READY){ mHintView.setVisibility(View.VISIBLE); mHintView.setText(R.string.xlistview_footer_hint_ready); } else if(state == STATE_LOADING){ mProgressBar.setVisibility(View.VISIBLE); } else if(state == STATE_NULLDATA){ mHintView.setVisibility(View.VISIBLE); mHintView.setText(R.string.xlistview_footer_hint_nulldata); }else if(state == STATE_NULLMOREDATA){ mHintView.setVisibility(View.VISIBLE); mHintView.setText(R.string.xlistview_footer_hint_nullmoredata); } else{ mHintView.setVisibility(View.VISIBLE); mHintView.setText(R.string.xlistview_footer_hint_normal); } } public void setState(int state , String showMsg){ if(showMsg==null || "".equals(showMsg.trim())){ setState(state); return; } mHintView.setVisibility(View.INVISIBLE); mProgressBar.setVisibility(View.INVISIBLE); mHintView.setVisibility(View.INVISIBLE); switch (state) { case STATE_READY: mHintView.setVisibility(View.VISIBLE); mHintView.setText(R.string.xlistview_footer_hint_ready); break; case STATE_LOADING: mProgressBar.setVisibility(View.VISIBLE); break; case STATE_NULLDATA: mHintView.setVisibility(View.VISIBLE); mHintView.setText("没有"+showMsg+"信息"); break; case STATE_NULLMOREDATA: mHintView.setVisibility(View.VISIBLE); mHintView.setText("没有更多"+showMsg+"信息"); break; default: mHintView.setVisibility(View.VISIBLE); mHintView.setText("查看更多"+showMsg+"信息"); break; } } public void setBottomMargin(int height){ if(height < 0) return; LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams)mContentView.getLayoutParams(); lp.bottomMargin = height; mContentView.setLayoutParams(lp); } public int getBottomMargin(){ LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams)mContentView.getLayoutParams(); return lp.bottomMargin; } /** * normal status */ public void normal(){ mHintView.setVisibility(View.VISIBLE); mProgressBar.setVisibility(View.GONE); } /** * loading status */ public void loading(){ mHintView.setVisibility(View.GONE); mProgressBar.setVisibility(View.VISIBLE); } /** * hide footer when disable pull load more */ public void hide(){ LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams)mContentView.getLayoutParams(); lp.height = 0; mContentView.setLayoutParams(lp); } /** * show footer */ public void show(){ LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams)mContentView.getLayoutParams(); lp.height = LayoutParams.WRAP_CONTENT; mContentView.setLayoutParams(lp); } private void initView(Context context){ mContext = context; LinearLayout moreView = (LinearLayout)LayoutInflater.from(mContext).inflate(R.layout.xlistview_footer, null); addView(moreView); moreView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); mContentView = moreView.findViewById(R.id.xlistview_footer_content); mProgressBar = moreView.findViewById(R.id.xlistview_footer_progressbar); mHintView = (TextView)moreView.findViewById(R.id.xlistview_footer_hint_textview); } }