思路
1添加页脚,并隐藏
2监听滑动事件,判断当滑到低部时,显示页脚,并加载数据(接口回调到activity中加载)
3数据添加完成之后隐藏页脚
效果图:
项目结构:
自定义listView类LoadListView
package com.zhh.android;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.RotateAnimation;
import android.widget.AbsListView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 自定义listview
*/
public class LoadListView extends ListView implements AbsListView.OnScrollListener {
View footer;// 底部布局;
int totalItemCount;// 总数量;
int lastVisibleItem;// 最后一个可见的item;
boolean isLoading;// 正在加载数据;
ILoadListener iLoadListener;
public LoadListView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
initView(context);
}
/**
* 添加底部加载提示布局到listview
*
* @param context
*/
private void initView(Context context) {
LayoutInflater inflater = LayoutInflater.from(context);
footer = inflater.inflate(R.layout.footer_layout, null);
footer.findViewById(R.id.load_layout).setVisibility(View.GONE);
this.addFooterView(footer);
this.setOnScrollListener(this);
}
/**
* 滑动监听重写的方法
* @param view
* @param firstVisibleItem
* @param visibleItemCount
* @param totalItemCount
*/
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
this.lastVisibleItem = firstVisibleItem + visibleItemCount;
this.totalItemCount = totalItemCount;
}
/**
* 滑动监听重写的方法
* @param view
* @param scrollState
*/
@Override
public void onScrollStateChanged(AbsList