App*_*tic 3 android android-recyclerview
我想实现一个RecyclerView永远不会完成的。在第一个项目之前是最后一个项目,在滚动最后一个项目之后,显示第一个项目。我怎样才能做到这一点?我试图实现的是一个音乐播放器,显示当前歌曲,之前和之后的歌曲。像这样:

(ps。有没有比使用更好的方法recyclerview?)
我看到这样做的方法是定义您必须显示为Integer.MAX_VALUE. 在onBindViewHolder()适配器中,您将拥有以下内容:
@Override
public int getItemCount() {
return (mItems == null) ? 0 : Integer.MAX_VALUE;
}
Run Code Online (Sandbox Code Playgroud)
现在您不能真正拥有Integer.MAX_VALUE要显示的项目,所以这是对RecyclerView. 在您的代码中,将索引值从 0...Integer.MAX_VALUE-1 映射到 0...your_item_count-1,如下所示onBindViewHolder():
int realPos = position % mItems.size();
Run Code Online (Sandbox Code Playgroud)
使用realPos代替RecyclerView传入的位置。
剩下的就是将 滚动RecyclerView到范围的中间:
mRecycler.scrollToPosition(Integer.MAX_VALUE / 2);
Run Code Online (Sandbox Code Playgroud)
这工作正常,但它完美吗?不,但足够接近;我认为没有人会滚动到足以看到缺陷的程度。(它会在极端情况下停止换行。)
| 归档时间: |
|
| 查看次数: |
1926 次 |
| 最近记录: |