针对滑动 的方法 可以重写以下方法
mListView.OnTouchListener (new View.OnTouchListener)
public boolean onTouch(){
switch (event.getAction){
case MotinEvent.ACTION_DOWN:// 触摸时候
break
case MotinEvent.ACTION_MOVE // 移动时候
break
case MotinEvent.ACTION_UP
break
}
return false;
}
或者 OnScrollListener
mListView.OnScrollListener(new OnScrollListener){
}
- //监听是否滑动尽头,是的话就加载新的内容
- listview.setOnScrollListener(new OnScrollListener() {
- /*
- * scrollState值:
- * 当屏幕停止滚动时为SCROLL_STATE_IDLE = 0;
- * 当屏幕滚动且用户使用的触碰或手指还在屏幕上时为SCROLL_STATE_TOUCH_SCROLL = 1; //正在滚动
- * 由于用户的操作,屏幕产生惯性滑动时为SCROLL_STATE_FLING = 2 //手指抛动的时候 (等用户做手指抛动的时候会调用3次 没有的时候会调用2次)
- */
- @Override
- public void onScrollStateChanged(AbsListView view, int scrollState) {
- }
- /*
- * firstVisibleItem:表示在现时屏幕第一个ListItem(部分显示的ListItem也算)在整个ListView的位置(下标从0开始)
- * visibleItemCount:表示在现时屏幕可以见到的ListItem(部分显示的ListItem也算)总数
- * totalItemCount:表示ListView的ListItem总数
- * listView.getFirstVisiblePosition()表示在现时屏幕第一个ListItem(第一个ListItem部分显示也算)在整个ListView的位置(下标从0开始)
- * listView.getLastVisiblePosition()表示在现时屏幕最后一个ListItem(最后ListItem要完全显示出来才算)在整个ListView的位置(下标从0开始)
- */
- @Override
- public void onScroll(AbsListView view, int firstVisibleItem,
- int visibleItemCount, int totalItemCount) {
- }
- });
判断是否滑到最后一行
if(firstVisibleItem+visibleItemCount==totalItemCount&&totalItem-Cont>0){
// 滚动最后一行}
if(firstVisibleItem>visibleItemCount){ 向上滑动}else{if(firstVisibleItem<visibleItemCount){下滑的}}
或者在代码里面用
//获得可看到区域最后一行的Item id
mListView.getLastVisiblePositon()
//获得可看到区域第一个Item 的ID
mListView.getFirstVisiblrPosition();