Android Open Source - Easy-PullToRefresh-Android Pull To Load More Footer View






From Project

Back to project page Easy-PullToRefresh-Android.

License

The source code is released under:

Copyright (c) 2013 neevek <i@neevek.net> 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 ...

If you think the Android project Easy-PullToRefresh-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

package net.neevek.android.demo.ptr;
//from ww w.j  a  v  a2s .c o  m
import android.content.Context;
import android.os.Build;
import android.util.AttributeSet;
import android.view.ViewTreeObserver;
import android.widget.FrameLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import net.neevek.android.lib.ptr.OverScrollListView;

/**
 * @author neevek <i@neevek.net>
 *
 * The default implementation of a pull-to-load-more footer view for OverScrollListView.
 * this can be taken as an implementation reference.
 */
public class PullToLoadMoreFooterView extends FrameLayout implements OverScrollListView.PullToLoadMoreCallback {
    private TextView mTvLoadMore;
    private ProgressBar mProgressBar;

    private String mPullText = "Pull to load more";
    private String mClickText = "Click to load more";
    private String mReleaseText = "Release to load more";
    private String mLoadingText = "Loading...";

    public PullToLoadMoreFooterView(Context context) {
        super(context);
    }

    public PullToLoadMoreFooterView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public PullToLoadMoreFooterView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    protected void onFinishInflate() {
        ensuresLoadMoreViewsAvailability();
    }

    private void ensuresLoadMoreViewsAvailability() {
        if (mTvLoadMore == null) {
            mTvLoadMore = (TextView)findViewById(R.id.tv_load_more);
            mTvLoadMore.setText(mClickText);
        }

        if (mProgressBar == null) {
            mProgressBar = (ProgressBar)findViewById(R.id.pb_loading);
        }
    }

    @Override
    public void onReset() {
        ensuresLoadMoreViewsAvailability();
        getChildAt(0).setVisibility(VISIBLE);
    }

    @Override
    public void onStartPulling() {
        ensuresLoadMoreViewsAvailability();
        mTvLoadMore.setText(mPullText);
    }

    @Override
    public void onCancelPulling() {
        ensuresLoadMoreViewsAvailability();
        mTvLoadMore.setText(mClickText);
    }

    @Override
    public void onReachAboveRefreshThreshold() {
        mTvLoadMore.setText(mReleaseText);
    }

    @Override
    public void onReachBelowRefreshThreshold() {
        onStartPulling();
    }

    @Override
    public void onStartLoadingMore() {
        ensuresLoadMoreViewsAvailability();
        mProgressBar.setVisibility(VISIBLE);
        mTvLoadMore.setText(mLoadingText);
    }

    @Override
    public void onEndLoadingMore() {
        mProgressBar.setVisibility(GONE);
        mTvLoadMore.setText(mClickText);
    }

    @Override
    public void setVisibility(int visibility) {
        super.setVisibility(visibility);
        getChildAt(0).setVisibility(visibility);
    }

    public void setPullText(String pullText) {
        mPullText = pullText;
    }

    public void setClickText(String clickText) {
        mClickText = clickText;
    }

    public void setReleaseText(String releaseText) {
        mReleaseText = releaseText;
    }

    public void setLoadingText(String loadingText) {
        mLoadingText = loadingText;
    }
}




Java Source Code List

net.neevek.android.demo.ptr.MainActivity.java
net.neevek.android.demo.ptr.PullToLoadMoreFooterView.java
net.neevek.android.demo.ptr.PullToRefreshHeaderView.java
net.neevek.android.lib.ptr.OverScrollListView.java