无论如何都没有找到检测滚动结束但使用 CountDownTimer 似乎有效:
我还需要重写HorizontalScrollView 来添加一个回调IHorizontalScrollListener,它在HorizontalScrollView 的onScrollView 内部调用。viewGroupContainer 是 ImageViews 的容器 LinearLayout。滚动视图只能直接包含一个 ViewGroup,因此我将所有图像添加到视图组中。CountDownTimer 是在活动中维护的参考。
hzScrollView.setScrollListener(new IHorizontalScrollListener(){
@Override
public void onScrollChanged(int l, int t, int oldl, int oldt) {
Log.i(TAG, "onScrollChanged to x="+l+" y="+t);
Log.i(TAG, "onScrollChanged from x="+oldl+ " y="+oldt);
if (scrollUpdateTimer == null)
{
scrollUpdateTimer = new CountDownTimer(30000, 1000){
@Override
public void onFinish() {
scrollUpdateTimerRunning = false;
}
@Override
public void onTick(long interval) {
Log.d(TAG, "onTick updateImageViews");
updateImageViews(hZScrollView, viewGroupContainer);
}};
}
if (scrollUpdateTimerRunning == false)
{
scrollUpdateTimerRunning = true;
scrollUpdateTimer.start();
}
}});
}