回答
的<包括/>將只包括XML內容在你的基地xml文件,就好像整個事情只是一個大的文件。這是在不同佈局之間共享佈局部件的好方法。
的< ViewStub />是一個有點不同,因爲它不直接包括在內,而當你真正使用它只會加載/需要它,即當您的可見性設置爲VISIBLE
(實際可見)或INVISIBLE
(仍然不可見,但它的大小不再是0)。這是一個很好的優化,因爲你可以有一個複雜的佈局,有大量的小視圖或標題在任何地方,仍然有你的活動加載速度非常快。一旦你使用其中的一個視圖,它將被加載。
由於Android標籤的共享和重複使用佈局非常簡單,有時甚至很簡單,您最終可能會得到包含大量視圖的用戶界面,其中一些很少使用。值得慶幸的是,Android提供了一個名爲ViewStub的非常特殊的小部件,它爲您帶來了所有好處,而不會污染您的用戶界面和很少使用的視圖。
ViewStub是一個笨重而輕量級的視圖。它沒有維度,它沒有繪製任何東西,也沒有以任何方式參與佈局。這意味着ViewStub膨脹非常便宜,而且保存在視圖層次結構中非常便宜。 ViewStub可以被最好地描述爲一個懶惰的包含。 ViewStub引用的佈局只會在您決定時誇大並添加到用戶界面。
http://android-developers.blogspot.com/2009/03/android-layout-tricks-3-optimize-with.html – Zyoo
- 包括
它是用來reuse佈局資源 - ViewStub
它是用來lazily inflate佈局資源
的另一個重要區別是與佈局充氣。由於不可能改變已經在XML中靜態膨脹的佈局,所以有必要替換視圖並以編程方式設置佈局參數。 可以定義(例如)高度,寬度等......並在運行時膨脹不同的佈局
- 1. 差之間<%:和<%=
- 2. <semaphore.h>和<sys/sem.h>之間的差異
- 3. <type'generator'>和<type'xrange'之間的差異
- 4. <s:VGroup>和「<s:Group>垂直佈局」之間的差異
- 5. 差異<>和=
- 6. <f:subview>與<ui:composition>標籤之間的差異
- 7. -h <name>與-o <outputfile>之間的差異cc(C++)
- 8. 差異<< a_value
- 9. 差異與<beans>之間<beans:beans>
- 10. Spring 3(SWS2):<context:component-scan>和<sws:annotation-driven>之間的差異
- 11. 什麼是貓文件和貓之間的差異<文件
- 12. 是否有「=」和「< - 」之間的技術差異
- 13. 渲染html.RenderPartial之間的差異和<%@寄存器
- 14. ByteArray和數組之間的差異<Byte> in kotlin
- 15. LINQ中FirstOrDefault()和FirstOrDefault之間的差異<string>()LINQ
- 16. 之間有什麼MySQL的差異=和<>
- 17. [Import]和_container.GetExportedValue <>()之間的任何差異?
- 18. 訂閱和訂閱者之間的差異<T> angular2
- 19. DictionaryBase和Dictionary之間的差異<Tkey,Tvalue>
- 20. 差異<?>
- 21. SQL之間的差異在運算符和「> =」&「<=」運算符之間
- 22. @using和<%使用差異
- 23. >和<差異猛砸
- 24. 是什麼返回類型ResponseEntity <?>和ResponseEntity <Object>和ResponseEntity之間的差異<MyCustomClass>
- 25. SDK和NDK之間的差異在android
- 26. RTC和RTC_WAKEUP之間的差異android
- 27. Android 2.1和2.2之間的SQLite差異
- 28. 餅乾和SharedPreferences之間的android差異
- 29. 完成()和this.finish()之間的差異android
- 30. 條件註釋之間的差異<! - [如果LT IE 9]>和<! - [如果LTE IE 8]>
您可以將視圖的可見性設置爲「true」? VISIBLE,INVISIBILE和GONE是視圖的唯一可見性選項嗎?該視圖是隻在視圖爲「VISIBLE」時加載的,還是在不是「GONE」時加載? – RestInPeace
@RestInPeace確實,不知道爲什麼我寫了(現在已經3年了...)。從文檔:「當可見性設置爲'VISIBLE'或'INVISIBLE'時,將調用inflate(),並將此StubbedView替換爲其父級中的膨脹佈局資源。」所以當能見度被設置爲除了「GONE」以外的任何東西時都會膨脹。 – Gregory
感謝您的澄清。 – RestInPeace