< include />标签将xml内容作为整体文件的一部分包含在您的基本xml文件中,就好像整个东西是一个单独的大文件。这是在不同布局之间共享布局部件的一种好方法。< ViewStub />有点不同,因为它不是直接包含的,只有在实际使用/需要时才会加载,即当您将其可见性设置为VISIBLE(实际可见)或INVISIBLE(仍未可见,但其大小不再为0)。这是一种很好的优化方式,因为您可以拥有具有大量小视图或任何标题的复杂布局,并且仍然可以快速加载Activity。一旦您使用其中一个视图,它将被加载。
使用 Android 的 tag,分享和重复使用布局非常容易,但有时会变得过于简单,可能会导致用户界面包含大量的视图,其中一些很少使用。幸运的是,Android 提供了一个非常特殊的小部件称为 ViewStub,它为您带来所有不污染用户界面的稀有视图的好处。ViewStub 是一种愚蠢而轻量的视图。它没有尺寸,不绘制任何内容,也不以任何方式参与布局。这意味着 ViewStub 很便宜地充气并且在视图层次结构中保持良好。可以最好地将 ViewStub 描述为懒惰包含。只有在您决定时,才会充气并将所引用的布局添加到用户界面中。
VISIBLE
、INVISIBLE
和GONE
不是视图的唯一可见性选项吗?视图仅在可见时加载,还是在不为GONE
时也会加载? - RestInPeaceVISIBLE
或INVISIBLE
时,会调用inflate()方法,并将此StubbedView替换为其父布局中的充气布局资源。”。因此,只要可见性不是GONE
,就会进行充气操作。 - Gregoryinclude
,那么ViewStub
相比之下有什么优势?!! - Muhammed Refaat