2010-08-14 180 views
16

我正在寫一個水平的電視視圖,類似於你知道的形式tivo系統和類似的。對於每個頻道,在接下來的6個小時左右有一排節目,其寬度與他們的播放時間成正比。ListView vs LinearLayout

我的想法是爲每一行編寫一個自定義小部件,並將它們堆疊在一起。這應該允許我遞增加載數據,而不是使用一個大的自定義視圖。然而,我仍然需要在頁面頂部向前/向後按鈕,點擊時更新所有行。

現在我不確定是否應該將這些視圖放置在ListView或LinearLayout中。

我已經收集了以下優點和缺點:

  • 的ListView
    • 優點
      • 內存使用效率 - 回收隱藏視圖
      • 似乎被所有人使用,在Android社區,任何事情。
      • 更新行時可能會更容易使其懶惰,因此需要更少的CPU。
    • 缺點
      • 矯枉過正 - 我不會使用大部分具有的功能,以提供
      • 它可能會稍難以附着在clickListeners。
  • 的LinearLayout
    • 優點
      • 簡單易用。做你的期望。
    • 缺點
      • 我還沒有看到它的任何地方使用長列表。
      • 也許它比較慢?

的「似乎所有人使用」的說法爲ListView控件還包括了「大師」 Twitter的應用程序,它使用谷歌炫耀「好設計的Android」。他們似乎也沒有使用其大部分功能。

您對此類工作有任何經驗嗎?在閱讀文檔時是否有任何建議我錯過了?

+0

其簡單易懂, 佈局可以保存視圖,但視圖不能保存佈局。 因此,根據您的需要思考和使用。 – 2013-04-16 07:36:15

+0

我也對這種折衷感興趣。我已經在LinearLayout和ListView(Nexus 4)中實現了所有傳感器數據的實時視圖。 ListView顯示速度較慢,屏幕更新限制爲每200ms。請注意,我使用了ExpandableListView,並未使用adapter.onDataSetChanged(),但只更改了相關的TextView。 – 2013-07-22 12:01:25

+0

有趣的問題 – Fattie 2016-02-08 21:53:25

回答

1

我結束了使用自定義小部件。 我仍然不知道哪一個是最有效的。

2

該計劃看起來與Google IO 2010應用類似。 你可以checkout他們的代碼,看看他們是如何做到的。

+1

感謝您的提示。一個偉大的應用程序學習。 但是,應用程序中的計劃視圖是垂直而非水平的,並且構建爲一個大的自定義佈局。它也不需要支持很多條目。因此,它並不能真正幫助我解決整體決策問題。 – 2010-08-14 16:42:54