我有一个带有覆盖方法的observableScrollView:
@Override
public void onScrollChanged(MyScrollView scrollView, int x, int y,
int oldx, int oldy) {
.
.
.
}
效果很好,但我需要的是:
我有一些位置(900px,1800px,2700px ......),我需要知道scrollView.getScrollY()何时到达这些位置。一旦到达某个位置,我想调用一个方法。 但是我希望在达到某个位置时只调用一次该方法。 所以
if(scrollView.getScrollY()>900){
myMethod()
}
将无效,因为myMethod()将一直调用滚动> 900 这更像是一个算法问题。我想在scrollview已到达的每一步调用一个方法。不知道是否清楚......
答案 0 :(得分:0)
您可以为每个位置设置一个布尔变量。当scrollview超过阈值时,boolean设置为true,并且不再触发您的方法。
如果你想再次触发它,你可以将布尔值保持一次scrollView.getScrollY() < 900
,这样当你通过滚动视图时再次调用它
if (scrollView.getScrollY() > 900 && hasReached900 == false) {
myMethod();
hasReached900=true;
} else if (scrollView.getScrollY() < 900) {
hasReached900=false;
}