变化的getWidth()来的getHeight()获取宽度最大滚动它是:
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);
}
}
您可以使用myScrollView xml布局或实例化它在哟你的代码。 提示:如果用户频繁访问列表的末尾10次,那么代码将运行10次。在某些情况下,例如当您想要从远程服务器加载数据来更新列表时,该行为将是不受欢迎的(最可能)。尝试预测不希望的情况并避免它们。
提示2:有时会越来越接近列表的末尾可能是让你的脚本运行在正确的时间。例如,用户正在阅读文章列表并越来越接近结束。那么你在列表完成之前开始加载更多。要做到这一点,仅仅这样做是为了实现你的目的:
if(d<=SOME_THRESHOLD) {}
由于滚动型只能有一个孩子,在那里你一定有一个: 如果(scrollView.getScrollY()+ scrollView.getHeight()> = scrollView.getChildAt(0).getMeasuredHeight()){/ *已滚动到底* /} – Tom 2015-01-14 22:07:17
这是放在一个方法?这个代码是如何实现的? – 2015-02-09 02:04:57
@ItzHoudini我尽可能通用,所以你可以任何你想要的方式使用它。 – sanna 2015-02-11 14:17:11