listview添加头部后判断是否到达顶部的方法
2015-12-10 14:09
169 查看
今天使用listview+swiperefreshlayout进行刷新页面的制作,因为需要在头部添加一个viewpager,所以索性就listview.addheaderview进行了,发现添加了头部以后不能够通过firstVisibleItem进行判断,一般我们常规写法如下:
但由于我们加了一个头部,所以不能通过上述方法判断,那该如何判断呢?
我们可以通过获取头部的高度位置,即(getY())方法进行判断:
listView.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { //或者在这里判断 if (view.getFirstVisiblePosition()==0){ //同样也可以 } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (firstVisibleItem == 0 ) { //到达头部 } });
但由于我们加了一个头部,所以不能通过上述方法判断,那该如何判断呢?
我们可以通过获取头部的高度位置,即(getY())方法进行判断:
listView.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (firstVisibleItem<=oldfirstVisibleItem &&firstVisibleItem==0 &&getHeaderY()==0){ //到头部后的操作 }else { //其余操作 } oldfirstVisibleItem=firstVisibleItem; } }); //判断 private float getHeaderY(){ View headerView= listView.getChildAt(0); if (headerView!=null){ LogUtils.showE("headerView.getY();",headerView.getY()+""); return headerView.getY(); } return -1f; }
相关文章推荐
- How to Customize your Terminal Prompt
- 性能测试分享: Jmeter的源码分析main函数参数
- C++通过ANE发送中文字符串到AS防止乱码的处理
- 性能测试分享:Jmeter多机协作原理
- 系统架构之TOMCAT中文参数
- BM25
- Scrapy研究和探索(五岁以下儿童)——爬行自己主动多页(抢别人博客所有文章)
- UI - 绘制 - 文字(或者其他控件)阴影效果
- pyhooks
- 驱动 ENC28J60 SPI网卡移植 linux 2.6.28 SAMSUNG 6410 ARM11
- HDOJ 2023 求平均成绩
- java bean反向生成powerdesigner字段注释
- 关于Socket的一些Guide2 - 数据结构和关系
- 禁用cookie后session的设置
- 有空去了解知识
- 有空去了解
- CommandBehavior.CloseConnection
- 老李分享:QTP的录制原理以及实现
- java类成员属性修饰符default, public, private, protected
- 经验贝叶斯克里金——基于ArcGIS 10.1Geostatistical Analyst