android </viewstub> </include>中<include>和<viewstub>之间的区别

时间:2011-07-04 04:41:32

标签: android include viewstub

&lt; \ include&gt;之间有什么区别?标签和&lt; \ ViewStub&gt;标签以及在设计布局时最喜欢哪一个。

谢谢,
VENU

4 个答案:

答案 0 :(得分:26)

&lt;包括/&gt;只会将xml内容包含在基本xml文件中,就像整个文件只是一个大文件一样。这是在不同布局之间共享布局部分的好方法。

&lt; ViewStub /&gt;有点不同,因为它不是直接包含的,只有在您实际使用它/需要它时才会加载,即,当您将其可见性设置为VISIBLE(实际可见)或INVISIBLE时(仍然不可见,但它的大小不再是0)。这是一个很好的优化,因为您可以在任何地方使用大量小视图或标题的复杂布局,并且仍然可以非常快速地加载您的活动。一旦你使用其中一个视图,它就会被加载。

答案 1 :(得分:10)

答案 2 :(得分:3)

由于标签的存在,Android的共享和重用布局非常简单,有时甚至太简单,最终可能会出现包含大量视图的用户界面,其中一些很少使用。值得庆幸的是,Android提供了一个名为ViewStub的非常特殊的小部件,它可以为您带来所有好处,而不会在很少使用的视图中污染您的用户界面。

ViewStub是一个愚蠢而轻量级的视图。它没有尺寸,它不会绘制任何东西,也不会以任何方式参与布局。这意味着ViewStub非常便宜,并且非常便宜,可以保持在视图层次结构中。 ViewStub可以最好地描述为惰性包含。只有在您决定时,ViewStub引用的布局才会膨胀并添加到用户界面。

答案 3 :(得分:0)

另一个重要的区别与布局膨胀有关。由于无法更改已在XML中静态膨胀的布局,因此必须替换视图并以编程方式设置布局参数。 使用它可以定义(例如)高度,宽度等......并在运行时膨胀不同的布局