判断ListView到达顶端的方法
在写下拉刷新ListView时,需要用到判断ListView是否到达最顶端,进而判断是否开始滑动刷新,下面只是判断这一过程的核心方法:
/**
* 判断第一个child是否完全显示出来
*
* @return true完全显示出来,否则false
*/
private boolean isFirstItemVisible() {
final Adapter adapter = mListView.getAdapter();
if (null == adapter || adapter.isEmpty()) {
return true;
}
//第一个可见item在ListView中的位置
if (mListView.getFirstVisiblePosition() == 0) {
//getChildCount是当前屏幕可见范围内的count
int mostTop = (getChildCount() > 0) ? mListView.getChildAt(0)
.getTop() : 0;
if (mostTop >= 0) {
return true;
}
}
return false;
}
我们首先用getFirstVisiblePosition()判断是否是ListView的第一个item,如果是,再用getChildCount().getTop()取到该item顶端到屏幕顶端的距离,如果为负的,说明该item还有一部分在屏幕顶端上方,并没有完全显示,此时应该继续下拉,不能刷新,即return false。如果>=0,说明,已经完全显示,开始下拉刷新逻辑。
下一篇:
IDEA使用教程最全汇总(持续更新)
