/**
* @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);
}
}