一个简单的ListView 的滑动事件
// listview的滑动事件
listView.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// 判断滑动是否停止
if(scrollState == SCROLL_STATE_IDLE){
// 当滑动停止的时候是否已经到达了底部
if (isLastRow){
isLastRow = false;
// 执行加载更多的操作
loadData(1);
}
}
}
/**
* @param view
* @param firstVisibleItem 表示在现时屏幕第一个ListItem(部分显示的ListItem也算)在整个ListView的位置(下标从0开始)
* @param visibleItemCount 表示在现时屏幕可以见到的ListItem(部分显示的ListItem也算)总数
* @param totalItemCount 表示ListView的ListItem总数
*/
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if ((visibleItemCount > 0) && (firstVisibleItem == 0)) {
if (view.getChildAt(0).getTop() >= 0) {
// 当listview 滑动到顶部时 在这做处理
}
}
// 判断是否到达listview的底部
if ((totalItemCount > 0) && (view.getLastVisiblePosition() == totalItemCount - 1)) {
if (view.getBottom() == view.getChildAt(
view.getChildCount() - 1).getBottom()) {
// 到了listview 底部的时候将isLastRow 设置为true
isLastRow = true;
}
}
}
});