您的位置:首页 > 其它

view.scrollTo()无效的原因

2016-05-21 05:42 591 查看
背景:在利用scroller对view进行操作是调用view.scrollTo()失效。

@Override
public boolean onTouchEvent(MotionEvent event) {
Log.v("SlindingDeleteView", String.valueOf(5));
// TODO Auto-generated method stub

if (event.getAction()==MotionEvent.ACTION_UP || event.getAction()==MotionEvent.ACTION_CANCEL) {
if (Math.abs(getScrollX())>=width/8) {
postDelayed(new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
scrollTo(width/4, 0);
}
},200);
}else{
postDelayed(new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
scrollTo(0, 0);
}
},200);
}

}

return gesturedetector.onTouchEvent(event);
}
一开始认为是up事件被拦截了,然而debug之后发现并没有拦截,查阅相关资料发现了罪魁祸首:

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

在这里有一个延时200ms的操作,我暂时理解为在view没有完成这200ms的动作之前,scrollTo()方法是无效的,于是有了上面的postDelayed。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: