我正在使用smoothScrollBy()
滚动到ListView
. 我希望在完成滚动以将其与用户用手指滚动时触发ListView
的当前事件集成时收到通知。onScrollStateChanged()
目前,我正在使用Timer
在平滑滚动持续时间后 100 毫秒运行的 a,但这不像我希望的那样由事件驱动。
我正在使用smoothScrollBy()
滚动到ListView
. 我希望在完成滚动以将其与用户用手指滚动时触发ListView
的当前事件集成时收到通知。onScrollStateChanged()
目前,我正在使用Timer
在平滑滚动持续时间后 100 毫秒运行的 a,但这不像我希望的那样由事件驱动。
如果您已经为您的列表视图实现了 OnScrollListener,您可以观察 ScrollState 何时发生变化。在调用 smoothScrollBy() 时使用全局布尔值 (isScrolling) 设置为 true,然后在 OnScrollListener 注册 SCROLL_STATE_IDLE 的 ScrollState 时将其设置为 false。
sidebar1.smoothScrollToPositionFromTop(currentPosition, 0, 500);
isScrolling = true;
sidebar1.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
isScrolling = false;
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
}
});