我想創建一個定製的ListView(或類似),它會像一個封閉的(圓形)之一:如何創建一個封閉的(圓形)ListView?
- 向下滾動 - 最後一個項目達到第一開始(..,N-1後, N,1,2,...)
- 向上滾動 - 第一項後達到最後開始(..,2,1,N,N-1,..)
聽起來很簡單在概念上,但顯然,沒有直接的方法來做到這一點。 任何人都可以指出我正確的解決方案嗎? 謝謝!
我已經收到答覆(從街道波士頓Android的開發者谷歌組),但它聽起來莫名其妙醜陋:) -
我創造我自己的 名單適配器這樣做(子類從 BaseAdapter)。
我使用 這種方式編寫了我自己的列表適配器,它的getCount()方法返回一個HUUUUGE數字 。
如果項的 'x' 被選擇,則這個 項對應於適配器 位置= 'adapter.getCount()/ 2 + X'
而對於我的適配器的方法 的getItem(INT位置),我看在我 陣列,備份適配器和 獲取對指數的項目: (位置getCount將()/ 2)%myDataItems.length
你需要做一些更多的「特殊」 的東西,使它一切正常, ,但你明白了。
原則,但仍可能 到達終點或 列表的開始,但如果你設置getCount將()來 圍繞一個億左右,這是很難 做:-)
波士頓先生的解決方案是唯一可行的選擇,如果你堅持'AdapterView'層次結構中的類(例如'ListView')。 – CommonsWare
我不會堅持任何類型的。我提到ListView只是爲了瞭解控件的行爲和外觀,如果需要,也可以稱它爲「table」。非常自定義的東西可能是一組形成List的單元格,當其中一個單元格離開可見區域時 - 引擎會更新(從不同的線程,我認爲)它的位置(座標)和內容(文本+圖像) 。但是這個更新過程可能會影響滾動的平滑度。 – user281076
我應該在哪裏寫position = adapter.getcount()/ 2 + x? – Diffy