我正在處理預訂引擎android應用程序,如航空公司預訂系統。要獲取特定於乘客搜索的所有可用航空公司的內容,該信息將顯示在移動設備的屏幕上。網格佈局VS.表佈局
考慮到屏幕加載時間,系統內存消耗和附加功能,哪一個表格佈局或網格佈局會有效?
我正在處理預訂引擎android應用程序,如航空公司預訂系統。要獲取特定於乘客搜索的所有可用航空公司的內容,該信息將顯示在移動設備的屏幕上。網格佈局VS.表佈局
考慮到屏幕加載時間,系統內存消耗和附加功能,哪一個表格佈局或網格佈局會有效?
我認爲TableLayout會更容易使用。對於GridLayout,您需要構建自定義適配器,因此導致更復雜的應用程序。
看看不同的sceensizes,GridLayout會根據內容自行選擇很多列和行,添加項目會更加靈活。
此外,GridLayout將更加靈活,但它是一些更多的工作。
我認爲GridView
應該更好地工作,因爲它是從視圖回收和從AbsListView
繼承的東西實施。 GridView
更難部署,因爲您必須使用Adapter
,但如果您有很多沉重的視圖來加載,如圖像
**編輯:此行在寫此答案時是正確的,但它會工作有效不再適用於99.9%的所有Android設備+:There is no GridLayout in the Android API.
**
(注:由於API 14級的,還有最後的網格佈局;請參閱下面的答案此外,V7支持庫增加了網格佈局的支持下到API 7.但是,對GridView的這個回答的描述仍然準確並且很好陳述。)
如果你的意思是GridView,TableLayout和GridView都是完全是不同的東西。
一個GridView基本上就像一個ListView,但其項目被排列在一個嚴格的網格中。它連接到一個適配器,並從適配器中檢索用戶滾動瀏覽的視圖。網格中的所有元素必須爲爲相同的大小。用戶可以通過每個項目移動一個可見的選擇器 - GridLayout的目標是顯示來自適配器的數據,並讓用戶導航並選擇每個顯示的項目。與ListView的唯一區別是這些項目放在網格中而不是垂直列表中。
TableLayout只是一個佈局管理器,有點像HTML中的表格。它本身不會進行任何滾動;要有滾動的東西,你必須把TableLayout放在ScrollView中。這意味着您顯示的所有數據都必須預先填充到TableLayout中,以便ScrollView知道要滾動的總空間。它也不會直接爲您提供每項「項目」選擇或交互,因爲一個TableLayout沒有項目,它只是一個佈局管理器。
你實際上並沒有提供足夠的有用信息,說明你實際上試圖爲任何人推薦使用什麼。這取決於你想要的具體內容。
我的意思是什麼將在「附加功能」方面有用?那麼你在尋找什麼功能!
無論如何,作爲一般規則,基於適配器的視圖應該用於任何情況下,您有大量的用戶滾動視圖的數據;這些比預先創建整個視圖層次以顯示數據要高效得多。他們也是唯一自動提供每個項目選擇和其他此類功能的人。應用程序使用的主要視圖是ListView,但也可以使用GridView。
由於** API級別14 **(冰淇淋三明治),有一個[GridLayout](http://developer.android.com/reference/android/widget/GridLayout.html)。 –
API LEVEL 14支持Gird佈局和空間佈局。請參閱此鏈接http://android-developers.blogspot.in/2011/11/new-layout-widgets-space-and-gridlayout.html – bapatla
V7(API級別7 - 2.1)android支持庫有GridLayout。 –
由於安卓4.0,有這樣的事情作爲GridLayout。 GridLayout總是比TableLayout更可取。它提供了TableLayout上已有的所有功能,並且可以替換其他佈局。
看起來很酷,Google似乎希望它像LinearLayout一樣受歡迎(根據Android 4.0的視頻)。
編輯:如果你必須展示很多項目,考慮使用RecyclerView和GridLayoutManager。這可以在內存和CPU使用率方面提供幫助。
@ToolmakerSteve問題是關於有一個網格佈局視圖,但當時還沒有,所以當它可用時,我寫道你可以用它作爲他的問題的解決方案。當然,如果有大量的項目要顯示,帶GridLayoutManager的RecyclerView會更合適(稍後也會添加)。由於其奇怪的行爲和煩人的用法,TableLayout幾乎從未被使用過。 –
這是網格佈局的一個很好的演示文稿,其中還列出相比TableLayout的差異: http://blog.stylingandroid.com/archives/669
其中一個最重要的區別不過是,它只是在ICS(冰淇淋三明治)和更新可用。目前這意味着不到30%的market share,所以對於大多數開發人員來說,答案是:在使用GridLayout之前等待幾年。 YMMV當然。
它被添加到V7支持庫。 –
鏈接http://blog.stylingandroid.com/archives/669已損壞。 @johndodo如果你知道更新的鏈接,將不勝感激。 –
我已將鏈接更改爲網絡存檔。請注意,你可以自己做同樣的事,謝謝指出它。 – johndodo
在網格佈局中,組件可以通過採用numcolumns =「autofit」自動設置爲視圖。在這裏我們不需要設置我們需要多少行&列,但是在表格佈局中,我們沒有這種類型的選項&,我們必須設置我們需要多少行&列。 在表格佈局,我們不能在一排,而無需使用相對佈局
TableLayout配置插入多於1個項目通常是直接地 容納,如GridLayout的同時支持行和列跨越。 TableRows可以被刪除,因爲GridLayout不需要它們。對於 相同的用戶界面,GridLayout通常會比TableLayout更快,佔用的內存也更少。
TableLayout支持所有的Android版本,而GridLayout的需要電平11(的Android ICS 4.0)或更高,但它可以通過支持librarry V7被容易地添加到支持7電平(的Android 2.1)或更高
給出這個答案-1,因爲它是完全錯誤的。 GridLayout不需要適配器...您正在考慮GridView ....以下是GridLayout的文檔:https://developer.android.com/reference/android/widget/GridLayout.html – Justin