怎么判断android中ScrollView滑动到了最底部
展开全部
在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);//很重要··················
代码有真相:
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);//很重要··················
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询