失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 如何判断Scrollview滚动条滚动到底部

如何判断Scrollview滚动条滚动到底部

时间:2021-01-23 12:49:21

相关推荐

如何判断Scrollview滚动条滚动到底部

如何判断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);}@Overridepublic 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

@Overridepublic 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布局

if(mLastY == (alllinear.getHeight()-scrollView.getHeight())){//TODO//滑动到底部,你要做的事

}}return false;}

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

1:定义Scrollview scrollview,

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

3:findviewById不必说,

4:scrollView.setOnTouchListener(this);//很重要··················

如果觉得《如何判断Scrollview滚动条滚动到底部》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。