ScrollView可以监听滚动结束事件吗
2个回答
展开全部
如何判断ScrollView的滚动条滚动到底部了呢?网上查了许多资料,大部分都一样,跟着学了一个比较靠谱的,放在自己项目里没问题,我所实现的是在Scrollview里面添加了listview,注意由于两这会有滚动条的冲突,因此listview一定要自已复写,代码有真相:publicclassCompleteListViewextendsListView{publicCompleteListView(Contextcontext,AttributeSetattrs){super(context,attrs);}publicCompleteListView(Contextcontext){super(context);}publicCompleteListView(Contextcontext,AttributeSetattrs,intdefStyle){super(context,attrs,defStyle);}@OverridepublicvoidonMeasure(intwidthMeasureSpec,intheightMeasureSpec){intexpandSpec=MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST);super.onMeasure(widthMeasureSpec,expandSpec);}}注意onMeasure(intwidthMeasureSpec,intheightMeasureSpec)方法是解决冲突的方法。项目需求是当scrollview滚动到最底端时listview进行加载。判断方法在,该类需要implentsOnTouchListener@OverridepublicbooleanonTouch(Viewv,MotionEventevent){switch(event.getAction()){caseMotionEvent.ACTION_DOWN:break;caseMotionEvent.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//滑动到底部,你要做的事}}returnfalse;}不好意思,有几个步骤很重要不加的话你会发现没有效果的:1:定义Scrollviewscrollview,2:为了优化滑动监听加一个成员变量:intindex;3:findviewById不必说,4:scrollView.setOnTouchListener(this);//很重要··················
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询