Android Open Source - SwitchTabs X List View Footer






From Project

Back to project page SwitchTabs.

License

The source code is released under:

Apache License

If you think the Android project SwitchTabs 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 w w.j a  v  a2  s  .  com*/
 * @create Mar 31, 2012 9:33:43 PM
 * @author Maxwin
 * @description XListView's footer
 */
package com.normal.testdemo.view;

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.normal.testdemo.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;

  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 int getBottomMargin() {
    LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) mContentView.getLayoutParams();
    return lp.bottomMargin;
  }

  public void setBottomMargin(int height) {
    if (height < 0) return;
    LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) mContentView.getLayoutParams();
    lp.bottomMargin = height;
    mContentView.setLayoutParams(lp);
  }

  /**
   * 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

com.normal.testdemo.activitys.MainActivity.java
com.normal.testdemo.activitys.SplashActivity.java
com.normal.testdemo.adapters.HotelListAdapter.java
com.normal.testdemo.adapters.SectionsPagerAdapter.java
com.normal.testdemo.beans.Hotel.java
com.normal.testdemo.beans.Hotels.java
com.normal.testdemo.fragments.PlaceholderFragment.java
com.normal.testdemo.utils.AsynImageLoader.java
com.normal.testdemo.utils.Utils.java
com.normal.testdemo.view.XListViewFooter.java
com.normal.testdemo.view.XListViewHeader.java
com.normal.testdemo.view.XListView.java