在iPhone上,这很简单——每个视图都有一个scrollViewDidScroll方法。我正在尝试找到Android中的等效方法。
我的代码可以工作,但它没有给我想要的结果。我需要在整个视图滚动期间执行代码。因此,即使我使用OnGestureListener的onScroll方法,它仅在手指触摸屏幕时触发(它的名称并不准确——它应该被称为“onSlide”或“onSwipe”,侧重于手势而不是UI动画)。如果用户轻弹视图并且在用户放开手指后仍然滚动几秒钟,它不会继续触发。
是否有一种在滚动的每一步调用的方法?
我的代码可以工作,但它没有给我想要的结果。我需要在整个视图滚动期间执行代码。因此,即使我使用OnGestureListener的onScroll方法,它仅在手指触摸屏幕时触发(它的名称并不准确——它应该被称为“onSlide”或“onSwipe”,侧重于手势而不是UI动画)。如果用户轻弹视图并且在用户放开手指后仍然滚动几秒钟,它不会继续触发。
是否有一种在滚动的每一步调用的方法?
public class Scroll extends Activity implements OnGestureListener {
public WebView webview;
public GestureDetector gestureScanner;
public int currentYPosition;
public int lastYPosition;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
webview = new WebView(this);
setContentView(webview);
webview.loadUrl("file:///android_asset/Scroll.html");
gestureScanner = new GestureDetector(this);
currentYPosition = 0;
lastYPosition = 0;
}
public boolean onTouchEvent(final MotionEvent me) {
return gestureScanner.onTouchEvent(me);
}
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
// I do stuff here.
return true;
}