判断ScrollView、listview滚动到顶部或者底部
2017-02-06 本文已影响581人
MC_Honva
ScrollView
滚动到顶部判断
getScrollY() == 0
滚动到底部判断
View contentView = getChildAt(0);
contentView.getMeasuredHeight() <= getScrollY() + getHeight();
其中getChildAt表示得到ScrollView的child View,因为ScrollView只允许一个child view,所以contentView.getMeasuredHeight()表示得到子View的高度, getScrollY()表示得到y轴的滚出距离,getHeight()为scrollView可见的高度。当getScrollY()达到最大时加上scrollView的高度就的就等于它内容的高度了啊
ListView
滚动到顶部
view.getLastVisiblePosition() == 0
滚动到底部
listview添加setOnScrollListener方法
listview.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch (scrollState) {
// 当不滚动时
case OnScrollListener.SCROLL_STATE_IDLE:
// 判断滚动到底部
if (view.getLastVisiblePosition() == (view.getCount() - 1)) {
}
break;
}
}
滚动三种状态:
OnScrollListener.SCROLL_STATE_IDLE:停滞
OnScrollListener.SCROLL_STATE_FLING:没有触摸的滚动
OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:触摸的滚动
参考地址:
ListView滚动到底部判断