我的最终目标是停止在特定位置的滚动,以便查看的对象完全显示,并且我提出的解决方案是通过检查视图的scrollX位置触摸被释放。我确实有一个动量问题,由于在捕捉触摸事件之后滚动速度还可以继续,所以我解决了使用MotionEvent.ACTION_CANCEL,我不满意,因为scrollTo是令人愉快的,但MotionEvent .ACTION_CANCEL杀死它的效果。在Android上停止滚动视图在特定位置
我的问题是,有没有更好的方法来做到这一点?如果我可以简单地指示我的ScrollView不具有动量/速度,理想状态就是如此。
myView.setOnTouchListener(new HorizontalScrollView.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
event.setAction(MotionEvent.ACTION_CANCEL);
int x = myView.getScrollX();
if (x < 150)
myView.scrollTo(0,0);
else if (x<450)
myView.scrollTo(300,0);
else
myView.scrollTo(600,0);
}
return false;
}
});
谢谢,这方面我没问题。当使用OnTouchListener应用时,您描述的方法效果不佳,因为调用聚焦方法后滚动速度可能会发生残留滚动。 – Gil
谢谢,这个ViewPager似乎是我正在寻找的功能。 – Gil