2012-01-01 138 views
1

背景資料:自定義視圖或虛擬佈局?

我工作的一個小應用程序爲自己和幾個朋友,它包含了一些ListViews基於自定義XML佈局項目。佈局有些沉重 - 幾個ImageViews,TextViews,LinearLayoutRelativeLayout - 所以我開始考慮性能。我並沒有親身經歷任何性能問題,但我知道一些將使用該應用程序的朋友沒有高端手機,並且他們可能會遇到這些佈局問題。

我記得在觀看有關Android性能的視頻演示文稿,我記得Romain Guy提到了一些關於自定義Views更好的性能,而不是不斷膨脹自定義XML佈局的內容。我相信上下文是Gmail應用程序的早期開發(圍繞Android 1.5,我相信),其中Listview的每個項目都相當複雜。

可能值得指出的是,我在我的應用程序中重複使用了Views,並且我使用了Google推薦的ViewHolder原則。

我的問題:使用自定義Views的性能會更好還是可以膨脹自定義XML佈局?

回答

2

與往常一樣,答案是「它取決於」 - 從XML擴展視圖會對代碼中的簡單創建施加一些性能損失(解析開銷),但也提供了更大的靈活性。您應該儘可能重新使用視圖(尤其是在較大的列表中) - 它可以顯着提高滾動性能

+1

乾杯,康斯坦丁。這或多或少是我的想法。我會保持開放以獲得更多答案,但是非常感謝! +1 – 2012-01-01 15:24:22

0

如果您可以創建自定義佈局而不是具有線性佈局和相對佈局,則只需創建一個自定義佈局。這有點像,而不是使用嵌套線性佈局,你應該只使用相對佈局。如果您使用相對和線性以及大量視圖,那麼只需編寫自定義佈局應該是有益的。