view.scrollTo()无效的原因

来源:互联网 发布:邀请函设计软件 编辑:程序博客网 时间:2024/04/29 15:59

背景:在利用scroller对view进行操作是调用view.scrollTo()失效。

@Overridepublic boolean onTouchEvent(MotionEvent event) {Log.v("SlindingDeleteView", String.valueOf(5));// TODO Auto-generated method stubif (event.getAction()==MotionEvent.ACTION_UP || event.getAction()==MotionEvent.ACTION_CANCEL) {if (Math.abs(getScrollX())>=width/8) {postDelayed(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubscrollTo(width/4, 0); }},200);}else{postDelayed(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubscrollTo(0, 0);}},200);}}return gesturedetector.onTouchEvent(event);}
一开始认为是up事件被拦截了,然而debug之后发现并没有拦截,查阅相关资料发现了罪魁祸首:

mScroller.startScroll(mScroller.getFinalX(), mScroller.getFinalY(), (int) distanceX, 0,200);

在这里有一个延时200ms的操作,我暂时理解为在view没有完成这200ms的动作之前,scrollTo()方法是无效的,于是有了上面的postDelayed。



0 0
原创粉丝点击