今天刚实现了这个特效感觉理解还可以。给兄弟们晒下
这个效果很简单。主要是实现了OnScrollListener来完成这一个效果的
------------public void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount)
这个方法是用来获取listview当前状态的,也就是activity当前显示的view。view的第一个item,view当前的item总数,view所有的item总数
------------public void onScrollStateChanged(AbsListView view, int scrollState)
这个方法是用来判断当前滑动的状态。
实现思路:-------------------感觉我这个是最简单的了
在Activity的layout里面添加一个影藏的layout。下面也是。或者下面的可以自己定义一个layout xml文件要求都隐藏起来
初始化好ListView 当滑动的时候判断当前屏幕下面最后一个item是不是listview的最后一个item。如果是,而且滑动了就显示出来影藏的加载layout。同理刷新也是一样
----------SCROLL_STATE_IDLE 这个状态是描述下拉或者上拉的状态是否已停止(就是listview还滚动不~!)
核心代码:
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
Log.i(TAG, "scrollState="+scrollState);
//下拉到空闲是,且最后一个item的数等于数据的总数时,进行更新
if(lastItem == count && scrollState == this.SCROLL_STATE_IDLE){
Log.i(TAG, "拉到最底部");
moreView.setVisibility(view.VISIBLE);
mHandler.sendEmptyMessage(0);
}if(firstItem==0&&scrollState==this.SCROLL_STATE_IDLE){
Log.i(TAG, "拉到最上部");
//listView.addHeaderView(freView);
freView.setVisibility(view.VISIBLE);
mHandler.sendEmptyMessage(1);
}
}
处理完了 在mHandler 处理刷新和加载的方法 刷新和加载完了后记得影藏layout哦。
源码 连接---------------------------点击下载