判断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使用教程最全汇总(持续更新)