清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
代码很简单,给mListView监听onScrollListener事件,然后在onScroll进行判断
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | //listView中第一项的索引 private int mListViewFirstItem = 0 ; //listView中第一项的在屏幕中的位置 private int mScreenY = 0 ; //是否向上滚动 private boolean mIsScrollToUp = false ; @Override public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (mListView.getChildCount()> 0 ) { boolean isScrollToUp = false ; View childAt = mListView.getChildAt(firstVisibleItem); int [] location = new int [ 2 ]; childAt.getLocationOnScreen(location); Log.d( "onScroll" , "firstVisibleItem= " +firstVisibleItem+ " , y=" +location[ 1 ]); if (firstVisibleItem!=mListViewFirstItem) { if (firstVisibleItem>mListViewFirstItem) { Log.e( "--->" , "向上滑动" ); isScrollToUp = true ; } else { Log.e( "--->" , "向下滑动" ); isScrollToUp = false ; } mListViewFirstItem = firstVisibleItem; mScreenY = location[ 1 ]; } else { if (mScreenY>location[ 1 ]) { Log.i( "--->" , "->向上滑动" ); isScrollToUp = true ; } else if (mScreenY<location[ 1 ]) { Log.i( "--->" , "->向下滑动" ); isScrollToUp = false ; } mScreenY = location[ 1 ]; } if (mIsScrollToUp!=isScrollToUp) { onScrollDirectionChanged(mIsScrollToUp); } } } private void onScrollDirectionChanged( boolean isScrollToUp) { } |