千锋教育论坛

查看: 840|回复: 0

Android 判断ListView滑动方向

[复制链接]

18

主题

193

帖子

438

积分

牛人

Rank: 3Rank: 3

发表于 16-5-13 13:47:20 | 显示全部楼层 |阅读模式
  Android 判断ListView滑动方向


  1. //listView中第一项的索引
  2. private int mListViewFirstItem = 0;
  3. //listView中第一项的在屏幕中的位置
  4. private int mScreenY = 0;
  5. //是否向上滚动
  6. private boolean mIsScrollToUp = false;
  7. @Override
  8. public void onScroll(AbsListView absListView, int firstVisibleItem,int visibleItemCount, int totalItemCount) {
  9. if(mListView.getChildCount()>0)
  10. {
  11. boolean isScrollToUp = false;
  12. View childAt = mListView.getChildAt(firstVisibleItem);
  13. int[] location = new int[2];
  14. childAt.getLocationOnScreen(location);
  15. Log.d("onScroll", "firstVisibleItem= "+firstVisibleItem+" , y="+location[1]);
  16. if(firstVisibleItem!=mListViewFirstItem)
  17. {
  18. if(firstVisibleItem>mListViewFirstItem)
  19. {
  20. Log.e("--->", "向上滑动");
  21. isScrollToUp = true;
  22. }else{
  23. Log.e("--->", "向下滑动");
  24. isScrollToUp = false;
  25. }
  26. mListViewFirstItem = firstVisibleItem;
  27. mScreenY = location[1];
  28. }else{
  29. if(mScreenY>location[1])
  30. {
  31. Log.i("--->", "->向上滑动");
  32. isScrollToUp = true;
  33. }
  34. else if(mScreenY<location[1])
  35. {
  36. Log.i("--->", "->向下滑动");
  37. isScrollToUp = false;
  38. }
  39. mScreenY = location[1];
  40. }
  41. if(mIsScrollToUp!=isScrollToUp)
  42. {
  43. onScrollDirectionChanged(mIsScrollToUp);
  44. }
  45. }
  46. }
  47. private void onScrollDirectionChanged(boolean isScrollToUp)
  48. {
  49. }
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系我们

电话:400-654-7778
交流群:523516910

点击咨询

学习资料

千锋教育

订阅|小黑屋|手机版|千锋教育论坛 ( 京ICP备12003911号-3 

GMT+8, 20-2-27 14:46 , Processed in 0.301158 second(s), 36 queries .

Powered by 千锋教育 X3.2

© 2001-2015

快速回复 返回顶部 返回列表