< \ include>之间有什么区别?标签和< \ ViewStub>标签以及在设计布局时最喜欢哪一个。
谢谢,
VENU
答案 0 :(得分:26)
<包括/>只会将xml内容包含在基本xml文件中,就像整个文件只是一个大文件一样。这是在不同布局之间共享布局部分的好方法。
< ViewStub />有点不同,因为它不是直接包含的,只有在您实际使用它/需要它时才会加载,即,当您将其可见性设置为VISIBLE
(实际可见)或INVISIBLE
时(仍然不可见,但它的大小不再是0)。这是一个很好的优化,因为您可以在任何地方使用大量小视图或标题的复杂布局,并且仍然可以非常快速地加载您的活动。一旦你使用其中一个视图,它就会被加载。
答案 1 :(得分:10)
答案 2 :(得分:3)
由于标签的存在,Android的共享和重用布局非常简单,有时甚至太简单,最终可能会出现包含大量视图的用户界面,其中一些很少使用。值得庆幸的是,Android提供了一个名为ViewStub的非常特殊的小部件,它可以为您带来所有好处,而不会在很少使用的视图中污染您的用户界面。
ViewStub是一个愚蠢而轻量级的视图。它没有尺寸,它不会绘制任何东西,也不会以任何方式参与布局。这意味着ViewStub非常便宜,并且非常便宜,可以保持在视图层次结构中。 ViewStub可以最好地描述为惰性包含。只有在您决定时,ViewStub引用的布局才会膨胀并添加到用户界面。
答案 3 :(得分:0)
另一个重要的区别与布局膨胀有关。由于无法更改已在XML中静态膨胀的布局,因此必须替换视图并以编程方式设置布局参数。 使用它可以定义(例如)高度,宽度等......并在运行时膨胀不同的布局