我在用smoothScrollBy()
滚动到 a 中的特定位置ListView
。我希望在以下情况时得到通知ListView
完成滚动以将其与当前集成onScrollStateChanged()
当用户用手指滚动时触发的事件。
目前我正在使用Timer
它在平滑滚动持续时间后运行 100 毫秒,但这并不像我希望的那样由事件驱动。
如果您已为列表视图实现了 OnScrollListener,则可以监视 ScrollState 何时发生变化。调用 smoothScrollBy() 时,使用设置为 true 的全局布尔值 (isScrolling),然后在 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) {
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)