Android Open Source - XListView-Android X List View Footer






From Project

Back to project page XListView-Android.

License

The source code is released under:

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, includi...

If you think the Android project XListView-Android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/**
 * @file XFooterView.java//from  w  ww  .  j a  va2 s  . c o m
 * @create Mar 31, 2012 9:33:43 PM
 * @author Maxwin
 * @description XListView's footer
 */
package me.maxwin.view;

import me.maxwin.R;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;

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;

  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 {
      mHintView.setVisibility(View.VISIBLE);
      mHintView.setText(R.string.xlistview_footer_hint_normal);
    }
  }
  
  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);
  }
  
  
}




Java Source Code List

me.maxwin.XListViewActivity.java
me.maxwin.view.XListViewFooter.java
me.maxwin.view.XListViewHeader.java
me.maxwin.view.XListView.java