最近做一个listview刷新数据的时候,到最后一行要提示“没有数据了”
但是总是最后一个Item刚露出来的时候就弹出来这个提示,并不是在最后一个Item完全露出来后才提示,网上查到这样一个办法,作为笔记先记下来
/**
* 判断listview的最后一个item是否完全露出来
* @return
*/
protected boolean isLastItemVisible(){
final Adapter adapter=lv_agricultural.getAdapter();
if (adapter==null||adapter.isEmpty()){
return true;
}
final int lastItemPosition=adapter.getCount()-1;
final int lastVisiblePosition=lv_agricultural.getLastVisiblePosition();
if (lastVisiblePosition >= lastItemPosition - 1) {
final int childIndex = lastVisiblePosition - lv_agricultural.getFirstVisiblePosition();
final int childCount = lv_agricultural.getChildCount();
final int index = Math.min(childIndex, childCount - 1);
final View lastVisibleChild = lv_agricultural.getChildAt(index);
if (lastVisibleChild != null) {
return lastVisibleChild.getBottom() <= lv_agricultural.getBottom();
}
}
return false;
}
笔记,忘了在哪个博客上看的了,sorry了