elv_music_res_fragment.setOnScrollListener(new AbsListView.OnScrollListener() {
private int mLastFirstPostion = 0;
private int mLastFirstTop = 0;
private int touchSlop = ViewConfiguration.get(getActivity()).getScaledTouchSlop(); @Override
public void onScrollStateChanged(AbsListView view, int scrollState) { } @Override
public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
int currentTop; View firstChildView = absListView.getChildAt(0);
if (firstChildView != null) {
currentTop = absListView.getChildAt(0).getTop();
} else {
//ListView初始化的时候会回调onScroll方法,此时getChildAt(0)仍是为空的
return;
}
//判断上次可见的第一个位置和这次可见的第一个位置
if (firstVisibleItem != mLastFirstPostion) {
//不是同一个位置
if (firstVisibleItem > mLastFirstPostion) {
// 下
if (rg_container_resFragment.getVisibility() != View.GONE) {
rg_container_resFragment.setVisibility(View.GONE);
}
} else {
// 上
if (rg_container_resFragment.getVisibility() != View.VISIBLE) {
rg_container_resFragment.setVisibility(View.VISIBLE);
}
}
mLastFirstTop = currentTop;
} else {
//是同一个位置
if (Math.abs(currentTop - mLastFirstTop) > touchSlop) {
//避免动作执行太频繁或误触,加入touchSlop判断,具体值可进行调整
if (currentTop > mLastFirstTop) {
// 上
if (rg_container_resFragment.getVisibility() != View.VISIBLE) {
rg_container_resFragment.setVisibility(View.VISIBLE);
}
} else if (currentTop < mLastFirstTop) {
// 下
if (rg_container_resFragment.getVisibility() != View.GONE) {
rg_container_resFragment.setVisibility(View.GONE);
}
}
mLastFirstTop = currentTop;
}
}
mLastFirstPostion = firstVisibleItem;
}
});

最新文章

  1. 基于SuperSocket的IIS主动推送消息给android客户端
  2. 【转】js实现复制到剪贴板功能,兼容所有浏览器
  3. Tortoise SVN 使用帮助
  4. redis中使用redis-dump导出、导入、还原数据实例
  5. C#构造方法重载
  6. redis集群出现JedisNoReachableClusterNodeException异常(No reachable node in cluster)
  7. root 授权
  8. OpenCV 图像处理学习笔记(一)
  9. 2012第二届GIS制图大赛——公开课技术问题&amp;答疑(珍贵资源哦!)(http://blog.csdn.net/arcgis_all/article/details/8216984)
  10. css3学习笔记之文本效果
  11. WPF内嵌代码和后台代码简单混合使用
  12. magento后台 Fatal error: Call to a member function getId() on a non-object in错误
  13. C#委托的详细使用
  14. PHP学习之-1.6 PHP语句结束符
  15. 浅解ARC中的 __bridge、__bridge_retained和__bridge_transfer
  16. Ehcache缓存配置以及基本使用
  17. oracle合并语句
  18. 第五章 Inheritance继承
  19. Android开发之使用SwipeRefreshLayout完成下拉刷新
  20. 【Nodejs】外研社小学英语教材一年级起各年级英语音频下载(全)

热门文章

  1. js 解析url中search时存在中文乱码问题解决方案
  2. Liferay开发人员培训计划
  3. 记一次sentry部署过程
  4. @pathvariable和@RequestParam的区别
  5. 链表的创建(C语言实现)
  6. [源码]一键获取windows系统登陆密码vc6版源码
  7. eval() 和 with()
  8. spring cloud(断路器——初学四)
  9. 关于unity3d的ios帧频问题.
  10. 获取多个checkbox的选中值