您的位置:首页 > 移动开发 > Android开发

怎么判断android中ScrollView滑动到了最底部?

2015-07-26 00:00 525 查看
摘要: 判断滑动位置的地方,可以有两种方式:
1、实现OnTouchListener来监听是否滑动到最底部
2、2、重写ScrollView的onScrollChanged的方法,在onScrollChanged函数中判断

滚动到顶部判断:

getScrollY() == 0

滚动到底部判断:

View childView = getChildAt(0);

childView.getMeasuredHeight() <= getScrollY() + getHeight();

其中getChildAt表示得到ScrollView的child View

childView.getMeasuredHeight()表示得到子View的高度,

getScrollY()表示得到y轴的滚动距离,

getHeight()为scrollView的高度

getScrollY()达到最大时加上scrollView的高度就的就等于它内容的高度了.

判断滑动位置的地方,可以有两种方式:

1、实现OnTouchListener来监听是否滑动到最底部

OnTouchListener onTouchListener=new OnTouchListener(){

@Override

public boolean onTouch(View v, MotionEvent event) {

switch (event.getAction()) {

case MotionEvent.ACTION_UP:

if (childView != null && childView .getMeasuredHeight() <= getScrollY() + getHeight()) {

} else if (getScrollY() == 0) {

}

break;

}

return false;

}

}

2、重写ScrollView的onScrollChanged的方法,在onScrollChanged函数中判断

public class myScrollView extends ScrollView

{

public myScrollView(Context context)

{

super(context);

}

public myScrollView(Context context, AttributeSet attributeSet)

{

super(context,attributeSet);

}

@Override

protected void onScrollChanged(int l, int t, int oldl, int oldt)

{

View view = (View)getChildAt(getChildCount()-1);

int d = view.getBottom();

d -= (getHeight()+getScrollY());

if(d==0)

{

//you are at the end of the list in scrollview

//do what you wanna do here

}

else

super.onScrollChanged(l,t,oldl,oldt);

}

}

本文欢迎转载,转载请注明出处与作者

出处:http://blog.sina.com.cn/staratsky

作者:流星

android开发群,分享开发中问题的解决办法和经验,欢迎大家的加入,群号:293872059
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: