SwipeRefreshLayout只能实现下拉刷新,而不能实现上拉加载更多。所以这需要对其进行扩充。
1、首先继承SwipeRefreshLayout
public class SwipeRefreshAndMoreLoadLayout extends SwipeRefreshLayout implements OnScrollListener {
接下来直接替代码了
package com.example.swiperefreshlayout;
import android.content.Context;
import android.support.v4.widget.SwipeRefreshLayout;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewConfiguration;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class SwipeRefreshAndMoreLoadLayout extends SwipeRefreshLayout implements OnScrollListener {
/**
* 滑动到最下面时的上拉操作
*/
private int mTounchslop;
/**
* ListView的加载中footer
*/
private View mListViewFooter;
private ListView mListView;
/**
* 按下时的y坐标
*/
private int mYdown;
private int mYlast;
private boolean isLoading = false;
private OnLoadMoreListener mOnLoadMoreListener;
private TextView mTvLoadMore;
private int mVisibleItemCount;
private int mTotalItemCount;
public SwipeRefreshAndMoreLoadLayout(Context context) {
this(context, null);
}
public SwipeRefreshAndMoreLoadLayout(Context context, AttributeSet attrs) {
super(context, attrs);
mTounchslop = ViewConfiguration.get(context).getScaledTouchSlop();
mListViewFooter = LayoutInflater.from(context).inflate(R.layout.footer