2011-09-27 88 views
0

我正在研究一個android應用程序,我遇到了一個決定,我不能以某種方式決定。我希望有人能夠闡明一些常見的做法和任何支持它們的理論。ListView vs嵌套佈局[優點/缺點]

這裏的問題:

我想有圖片和文字如表項目清單...

國家。。-.- - - - - .-流行 - 。 - SqrMi

[IMG]美國-. - - - - - .-。。XXX -.-.- XXXXX

現在我有爭論是,是否使用列表視圖來顯示數據,或者嵌套一個可滾動的佈局,並以這種方式顯示數據。

爲什麼我甚至會考慮嵌套佈局?靈活性。我可以設計分隔線,可能會在列表的上方/下方插入幾張圖。改變每個列表項的高度(比如,如果我想在一個列表項中顯示圖形,下一個沒有圖形)等。

我不確定是否打破了普遍接受方法在這裏。任何人都可以對此有所瞭解嗎?

回答

2

使用嵌套佈局時唯一的主要問題是內存消耗。 ListView重用它的孩子,所以它不會創造更多的孩子,然後它可以在一個時刻顯示。這個描述有點簡化,但我希望它能顯示ListView的目的。另外ListView實現了自己的快速滾動,因此它不必測量所有的孩子以確定其大小。並且使用適配器來填充數據。這是獲取數據的一種不錯而方便的方式。

另一方面,如果你創建一個內部有很多視圖的ScrollView,它會很慢,很難填充數據,並且需要大量內存來創建所有子視圖,即使你不喜歡他們看不到其中的一些。

而關於ListView的靈活性。您可以將不同類型的視圖存儲在一個ListView中,您可以改變每個視圖的高度。

+0

你可以直接找一些關於如何實現這些技術的教程/文獻嗎? – Rawr

+0

這裏有一個簡單的教程:http://developer.android.com/resources/tutorials/views/hello-listview.html。不幸的是,我不知道適配器的任何教程,但我確定互聯網上有很多。您可以在計算器上搜索與適配器相關的一些問題。 – Michael

+0

另請參閱'BaseAdapter'和'ArrayAdapter'類。這是開發自己的適配器的一個很好的起點。你甚至可以閱讀這些類的源代碼。他們非常簡單。 – Michael

0

您所描述的「嵌套佈局」的所有內容都可以通過ListView實現。只需使用不同類型的行,在適配器中使用頁眉/頁腳。如同Pixie所說,ListView的內存效率更高,速度更快。