Android ListView:检测滚动完成后第一行/最后一行是否可见
问题描述:
我必须为ListView
的子类实现一种分页。 当用户向下滚动列表时,滚动结束,他查看最后一行,我必须请求下一页数据(如果有的话)。向上滚动/第一行/上一页同样的事情。Android ListView:检测滚动完成后第一行/最后一行是否可见
public class ContactList extends ListView implements OnGestureListener {
GestureDetector gestureDetector;
public ContactList(Context context) {
super(context);
gestureDetector = new GestureDetector(this);
}
//Other ctors here...
}
然后,我将一个GestureDetector附加到ListView,并转发给它所有的触摸。
public boolean onTouchEvent(MotionEvent ev) {
return gestureDetector.onTouchEvent(ev);
}
我可以在OnGestureListener.onScroll()
如果第一/最后一排检测可见使用getFirst/LastVisiblePosition()
?
也许这种方法被称为之前的滚动发生?
谢谢你的帮助。
答
我认为你需要设置OnScrollListener
您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
}
});
耻辱!当我搜索google搜索“android scroll listener”时,我发现没有OnScrollListener的东西:(让我有时间去研究它,非常感谢!:) – 2011-03-10 12:16:14