gpt4 book ai didi

Android smoothScrollTo 不调用 onScrollStateChanged

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:18:27 25 4
gpt4 key购买 nike

我正在使用 smoothScrollBy() 滚动到 ListView 中的特定位置。我希望在 ListView 完成滚动时收到通知,以便将其与当前的 onScrollStateChanged() 事件集成,该事件在用户用手指滚动时触发。

目前,我正在使用一个 Timer,它在平滑滚动持续时间后运行 100 毫秒,但这并不像我希望的那样是事件驱动的。

最佳答案

如果您已经为您的 ListView 实现了 OnScrollListener,您可以观察 ScrollState 何时发生变化。在调用 smoothScrollBy() 时使用全局 bool 值 (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) {

}
});

关于Android smoothScrollTo 不调用 onScrollStateChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7585718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com