网上有学多对listview的滑动距离和方向的判断
其中滑动距离可参考文章
http://blog.csdn.net/c19344881x/article/details/50543969
滑动方向可参考
http://blog.csdn.net/wangbaochu/article/details/45503605
在对该代码分析过程中觉得代码过于复杂,于是想到可以通过控件距离屏幕的距离来获取滑动距离
先给listView头部加一个控件
final View v = inflaters.inflate(R.layout.XXX, null,false);
getListView().addHeaderView(v);
如果该布局里面有个View在最上方
public final int IS_VISIBLE_HEADER = 57;
getListView().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(headerText.getLocationOnScreen()[1]<IS_VISIBLE_HEADER){
// todo
}else{
// todo
}
}
});
其中,getLocationOnScreen()[1]代表Y方向的距离,该值就可以当成滑动距离