gpt4 book ai didi

android - 具有大量项目集合的 RecyclerView 和后台请求

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:30:12 24 4
gpt4 key购买 nike

我有一个 RecyclerView,上面绑定(bind)了一个大集合,比如 500 多个项目。当 onBindViewHolder 被调用时,我发出一个异步 HTTP 请求来加载一些数据。

但是当我快速向下滚动列表时,如何取消对所有不再可见的项目的请求?由于 RecyclerView 的加载方式,我看到 100 多个请求在后台启动,我认为我滚动过去的每个项目都会调用 onBindViewHolder?

我正在考虑在等待 500 毫秒的 onBindViewHolder 中启动一个请求,如果绑定(bind)到它的项目仍在 View 中/仍然相同,则启动异步请求。这行得通吗?如果是这样,那么我如何检查该项目是否仍在适配器中可见?

解决这个问题的正确方法是什么?

最佳答案

你可以为 RecyclerView 创建一个 OnScrollListener:

 public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == SCROLL_STATE_IDLE){
int firstVisibleItem = view.getFirstVisiblePosition();
int lastVisiblePosition = view.getLastVisiblePosition();

//call request from firstVisibleItem to lastVisiblePosition

}
}

关于android - 具有大量项目集合的 RecyclerView 和后台请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38341277/

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