我想创建一个自定义ListView(或类似),其行为类似于封闭(循环)的:
这在概念上听起来很简单,但显然,没有直接的方法来做到这一点.谁能指出我正确的解决方案?谢谢 !
我已经收到一个答案(来自Streets Of Boston的Android开发者谷歌团体),但听起来有些丑陋:) -
我这样做是通过创建自己的列表适配器(从BaseAdapter子类).
我编写了自己的列表适配器,其getCount()方法返回一个HUUUUGE编号.
如果选择项'x',则此项对应于适配器位置='adapter.getCount()/ 2 + x'
对于我的适配器的方法getItem(int position),我查看我的数组备份适配器并获取索引上的项目:(position-getCount()/ 2)%myDataItems.length
你需要做一些更"特殊"的东西才能使它完全正常工作,但你明白了.
原则上,它仍然可以到达列表的结尾或开头,但如果你将getCount()设置为大约一百万左右,这很难做到:-)
假设我们有以下一组项目视图:
View1 -> View2 -> View3 -> ... -> View(n-1) -> View(n)
Run Code Online (Sandbox Code Playgroud)
在经典的RecyclerView上,View1将位于第一个位置,View(n)位于最后一个位置.现在我想制作那个循环,所以在最后一个位置之后我们再次滚动到第一个位置:
View1 -> View2 -> View3 -> ... -> View(n-1) -> View(n) -> View1 -> View2 -> ...
Run Code Online (Sandbox Code Playgroud)
这看起来很简单,但我不确定如何在View(n)之后完成"重置".任何建议都会非常有用.谢谢.