Android:知道ObservableScrollView何时到达某个位置

时间:2015-01-23 13:31:05

标签: android scrollview

我有一个带有覆盖方法的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已到达的每一步调用一个方法。不知道是否清楚......

1 个答案:

答案 0 :(得分:0)

您可以为每个位置设置一个布尔变量。当scrollview超过阈值时,boolean设置为true,并且不再触发您的方法。

如果你想再次触发它,你可以将布尔值保持一次scrollView.getScrollY() < 900,这样当你通过滚动视图时再次调用它

if (scrollView.getScrollY() > 900 && hasReached900 == false) {
    myMethod();
    hasReached900=true;
} else if (scrollView.getScrollY() < 900) {
    hasReached900=false;
}