ListView已到顶部的判断
public boolean isListViewReachTopEdge ( final ListView listView ) {boolean result = false ;if ( listView . getFirstVisiblePosition ()== 0 ){final View topChildView = listView . getChildAt ( 0 );result = topChildView . getTop ()== 0 ;}return result ;}
注:view的
getTop()表示的是该View的顶部到父控件的左上角的垂直距离。
当ListView的第一个child View的
getTop()为零时,就表示ListView已经滚动到顶部了或已经在顶部不能在向上滑动了。
ListView已到底部的判断
ListView已到底部的判断
public boolean isListViewReachBottomEdge ( final ListView listView ) {boolean result = false ;if ( listView . getLastVisiblePosition () == ( listView . getCount () - 1 )) {final View bottomChildView = listView . getChildAt ( listView . getLastVisiblePosition () - listView . getFirstVisiblePosition ());result = ( listView . getHeight ()>= bottomChildView . getBottom ());};return result ;}
注:view的
getBottom()表示的是该View底部到父控件的左上角的垂直距离
当ListView的最后一个child View的
getBottom()
小于等于ListView的
getHeight()时,就表示ListView滚动到底部或已经在底部了,不能再向下滑动了。
关于View的getLeft, getRight, getTop, getBottom更多内容请参考《
Android View的getLeft, getRight, getTop, getBottom》
结束