我希望跟踪Scrollview上的ScrollY(不,我不能使用网格或列表)。
我正在使用ViewTreeObserver和onScrollChanges监听器。但是,它会多次触发。更糟糕的是:当它被调用3或4次时,滚动视图的scrollY为0,只有1次正确。然而,并不是每4次调用都是正确的,正确值被触发的时刻是随机的,我需要能够监听滚动位置0。
以下是我用来观察我的Scrollview的代码:
我正在使用ViewTreeObserver和onScrollChanges监听器。但是,它会多次触发。更糟糕的是:当它被调用3或4次时,滚动视图的scrollY为0,只有1次正确。然而,并不是每4次调用都是正确的,正确值被触发的时刻是随机的,我需要能够监听滚动位置0。
以下是我用来观察我的Scrollview的代码:
mScrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
@Override
public void onScrollChanged() {
Log.d("StupidScrollView", "Scroll positionY: " + mScrollView.getScrollY());
}
});
样本输出:
D/StupidScrollView﹕ Scroll positionY: 0
D/StupidScrollView﹕ Scroll positionY: 0
D/StupidScrollView﹕ Scroll positionY: 0
D/StupidScrollView﹕ Scroll positionY: 77
我必须提到,我正在使用ViewPager,我的片段包含一个需要观察的ScrollView。这听起来有点像与此相关的问题。