gpt4 book ai didi

android - RecyclerView 双向无限滚动

转载 作者:搜寻专家 更新时间:2023-11-01 09:24:44 40 4
gpt4 key购买 nike

我想实现一个永不结束的 RecyclerView。在第一项之前有最后一项,在滚动最后一项之后,显示第一项。我怎样才能做到这一点?我想要实现的是一个音乐播放器,可以显示当前歌曲、之前和之后的歌曲。像这样: enter image description here

(ps.有没有比使用recyclerview更好的方法?)

最佳答案

我看到这样做的方法是将必须显示的项目数定义为 Integer.MAX_VALUE。在适配器的 onBindViewHolder() 中,您将拥有如下内容:

@Override
public int getItemCount() {
return (mItems == null) ? 0 : Integer.MAX_VALUE;
}

现在您真的不能显示 Integer.MAX_VALUE 项目,所以这是对 RecyclerView 的一个小谎言。在您的代码中,将索引值从 0...Integer.MAX_VALUE-1 映射到 0...your_item_count-1,就像在 onBindViewHolder() 中这样:

int realPos = position % mItems.size();

使用realPos代替RecyclerView传入的位置。

剩下的就是将 RecyclerView 滚动到范围的中间:

mRecycler.scrollToPosition(Integer.MAX_VALUE / 2);

这工作正常,但它完美吗?不,但足够接近;我认为没有人会滚动到足以看到缺陷。 (它会在极端处停止缠绕。)

关于android - RecyclerView 双向无限滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51482227/

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