我的最終目標是停止在特定位置的滾動,以便查看的對象完全顯示,並且我提出的解決方案是通過檢查視圖的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