您的位置:首页 > 其它

listview添加头部后判断是否到达顶部的方法

2015-12-10 14:09 169 查看
今天使用listview+swiperefreshlayout进行刷新页面的制作,因为需要在头部添加一个viewpager,所以索性就listview.addheaderview进行了,发现添加了头部以后不能够通过firstVisibleItem进行判断,一般我们常规写法如下:

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: