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

RickyLee 2015-07-26

滚动到顶部判断:

getScrollY()==0

滚动到底部判断:

ViewchildView=getChildAt(0);

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

其中getChildAt表示得到ScrollView的childView

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

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

getHeight()为scrollView的高度

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

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

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

OnTouchListeneronTouchListener=newOnTouchListener(){

@Override

publicbooleanonTouch(Viewv,MotionEventevent){

switch(event.getAction()){

caseMotionEvent.ACTION_UP:

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

}elseif(getScrollY()==0){

}

break;

}

returnfalse;

}

}

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

publicclassmyScrollViewextendsScrollView

{

publicmyScrollView(Contextcontext)

{

super(context);

}

publicmyScrollView(Contextcontext,AttributeSetattributeSet)

{

super(context,attributeSet);

}

@Override

protectedvoidonScrollChanged(intl,intt,intoldl,intoldt)

{

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

intd=view.getBottom();

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

if(d==0)

{

//youareattheendofthelistinscrollview

//dowhatyouwannadohere

}

else

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

}

}

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

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

作者:流星

android开发群,分享开发中问题的解决办法和经验,欢迎大家的加入,群号:293872059

相关推荐

ALDRIDGE / 0评论 2011-09-29