sty*_*972 6 android listview scroll event-driven
我smoothScrollBy()用来滚动到一个特定的位置ListView.我希望在ListView完成滚动时得到通知,将其与onScrollStateChanged()当用户用手指滚动时触发的当前事件集成.
目前我使用的Timer是在平滑滚动的持续时间之后运行100ms,但这不是我喜欢的事件驱动.
如果您已为列表视图实现了 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) {
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5629 次 |
| 最近记录: |