Android ListView:检测滚动完成后第一行/最后一行是否可见

Android ListView:检测滚动完成后第一行/最后一行是否可见,android,listview,scroll,android-listview,Android,Listview,Scroll,Android Listview,我必须为ListView的子类实现一种分页。 当用户向下滚动列表时,滚动完成,他查看最后一行,我必须请求下一页的数据,如果有的话。向上滚动/第一行/上一页也是如此 public class ContactList extends ListView implements OnGestureListener { GestureDetector gestureDetector; public ContactList(Context context) { super(

我必须为
ListView
的子类实现一种分页。 当用户向下滚动列表时,滚动完成,他查看最后一行,我必须请求下一页的数据,如果有的话。向上滚动/第一行/上一页也是如此

public class ContactList extends ListView implements OnGestureListener {

    GestureDetector gestureDetector;

    public ContactList(Context context) {
        super(context);
        gestureDetector = new GestureDetector(this);
    }

//Other ctors here...       
}
然后,我在ListView上附加了一个手势检测器,将所有的触摸都转发给它

public boolean onTouchEvent(MotionEvent ev) {
    return gestureDetector.onTouchEvent(ev);
}
我是否可以使用
getFirst/LastVisiblePosition()
在我的
OnTestureListener.onScroll()中检测第一行/最后一行是否可见

可能在滚动发生之前调用了此方法

感谢您的帮助。

我认为您需要设置ListView并从
onScroll
回调中收集位置:

    setOnScrollListener(new OnScrollListener() {
        @Override
        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
            // You cat determine first and last visible items here
            // final int lastVisibleItem = firstVisibleItem + visibleItemCount - 1;
        }

        @Override
        public void onScrollStateChanged(AbsListView arg0, int arg1) {
            // TODO Auto-generated method stub
        }
    });

我真丢脸!当我在谷歌上搜索“android scroll listener”时,我没有发现OnScroll listener的东西:(让我有时间研究一下。非常感谢!)