2016-09-08 41 views
3

我有一個問題涉及延遲加載視圖/佈局性能。 有時我們想要動態顯示/隱藏多個視圖。在這種情況下,我們有四個選項:ViewStub vs View.GONE vs充氣vs ViewSwitcher

  1. 包括以.xml所有的佈局和使用setVisibility方法(如View.GONE和VIEW.VISIBLE)
  2. 使用ViewFlipper/ViewSwitcher
  3. 使用ViewStub
  4. 以編程方式膨脹新佈局。

哪一個表現最好? 我一直在Google上搜索,發現ViewStub是專門爲此設計的,但我不確定。也許我錯了,或者甚至有第五種選擇,我不知道。你有與此有關的不同意見或經驗嗎?謝謝!

回答

6

這取決於你想膨脹自己的觀點。你提到的每種方法都有它自己的開銷,你需要決定在哪裏妥協。

  1. 如果您的視圖非常簡單並且不需要初始化太多,只需將其設置爲View.GONE即可。如果它相當複雜或佈局更好,則不要這樣做。
  2. ViewFlipperViewSwitcher旨在在不同視圖之間生成動畫。其目的不是顯示和隱藏單個視圖。如果您在不同的時間在不同的地方顯示不同的視圖,請使用它。
  3. ViewStub只是一個佔位符,用更復雜的佈局替代自己。
  4. 手動執行所有操作就像使用ViewStub而沒有佈局信息。如果您需要以編程方式創建或設置視圖,這可能是一個不錯的選擇。
相關問題