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

 我来答
约定20125
推荐于2016-08-16 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.1万
采纳率:96%
帮助的人:2882万
展开全部
在Scrollview里面添加了listview,注意由于两这会有滚动条的冲突,因此listview一定要自已复写,

代码有真相:

public class CompleteListView extends ListView {
public CompleteListView(Context context, AttributeSet attrs) {
super(context, attrs);
}

public CompleteListView(Context context) {
super(context);
}

public CompleteListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}

@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}

注意onMeasure(int widthMeasureSpec, int heightMeasureSpec)方法是解决冲突的方法。

项目需求是当scrollview滚动到最底端时listview进行加载更多。

判断方法在,

该类需要implents OnTouchListener

@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:

break;
case MotionEvent.ACTION_MOVE:
index++;
break;
default:
break;
}
if(event.getAction()==MotionEvent.ACTION_UP && index > 0){
index=0;

mLastY = scrollView.getScrollY();//赋值给mLastY
//alllinear是scrollview里包括的那个linearlayout布局
[java] view plaincopy
if(mLastY == (alllinear.getHeight()-scrollView.getHeight())){
//TODO
//滑动到底部,你要做的事
[java] view plaincopy
}

return false;

不好意思,有几个步骤很重要不加的话你会发现没有效果的:

1:定义Scrollview scrollview,

2:为了优化滑动监听加一个成员变量:int index;

3:findviewById不必说,

4:scrollView.setOnTouchListener(this);//很重要··················
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式