22

<\include> 标签和 <\ViewStub> 标签之间有什么区别,在设计布局时最好使用哪一个。

谢谢,
维努

4

4 回答 4

32

<include /> 只会在您的基本 xml 文件中包含 xml 内容,就好像整个内容只是一个大文件一样。这是在不同布局之间共享布局部分的好方法。

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

于 2011-07-04T06:09:49.343 回答
11
于 2013-08-06T03:56:27.780 回答
4

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

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

于 2012-07-29T16:07:12.413 回答
0

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

于 2015-06-04T14:01:50.800 回答