2011-02-09 88 views
11

我是Android編程新手。我不知道有多少個ListView可以存儲的項目?我在文檔中搜索,但他們不談論這個。如果我將很多(可能是10k)項目放入ListAdapter,會對性能產生什麼影響?ListView可以存儲多少個項目?

乾杯, MK。

+0

_I會建議你一定要閱讀this_ ** [文章](http://android.amberfog.com/?p = 296)** – 2011-02-09 11:59:47

回答

-1

您有一個內存限制(這是設備特定的)。只要你不耗盡內存限制,你可以存儲任意多的物品。有ADT工具可用於監視應用程序隨時使用的內存量。

7

ListView在Android中被虛擬化。實際上,這意味着它內部的元素數量沒有實際限制。你可以在列表中放入數百萬行,它只會爲當前可見的內存分配內存(或者更多的頂級內存)。

查看幾十篇有關爲AdapterView編寫自定義Adapter類的教程(ListView擴展了它)。還請查看ListViews上的Google I/O 2010會話;這是非常有用的:here

+0

我們將這10k項目保存在列表適配器的數組列表中。是否導致任何內存問題? – user1767260 2014-02-13 03:50:25

3

我創建了一個ListView並使用Integer.MAX_VALUE作爲返回到適配器的數量,以便列表中的項目數。這對ListView的性能沒有影響,儘管它擁有大約20億個項目。

我認爲10K將工作:P

退房這裏我詳細解答,看看我的意思是:How to create a closed (circular) ListView?

5

有沒有限制的ListView控件只呈現的項目,當他們進入視野,等等只關心爲ListView的數據,當涉及到渲染的項目(儘管它需要知道物品的數量,以使正確的滾動條)

學習有關的ListView的谷歌IO視頻確實是偉大的 http://www.youtube.com/watch?v=wDBM6wVEO70

這就是說,我會問你是否應該加載這麼多,顯然用戶不能全部查看它們,並且滾動ListView,那麼很多項目將非常繁瑣。如果是我,我會問一些問題:

  • 該列表是否需要最初顯示它們?它可以顯示最相關的設置嗎?最近/最大/最小/最好/等
  • 而不是一次加載它們,你可以加載塊的項目頁面?因此,例如,您最初加載10-100,當用戶到達底部時顯示「正在加載更多...」,並顯示一個旋轉圖標,然後再拉動更多,然後用戶可以選擇加載多少,以及多少滾動他們準備做
  • 如果你正在建立一個用戶界面來過濾項目,所以他們從來沒有需要看10,000?

更多的ListView http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/ http://developer.android.com/guide/topics/ui/binding.html http://www.androidguys.com/2008/07/14/fancy-listviews-part-one/

3

Integer.MAX_VALUE,因爲它的大部分功能,將打破,因爲他們依靠int position

相關問題