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