ViewStub在Android中的布局显示与隐藏优化

延迟加载的利器ViewStub,在 Android 开发里还是挺常见的。它的特点是轻,真的轻,初始化几乎不占资源。布局复杂又不想一上来全加载?用它就对了。你只需要在 XML 里先放一个ViewStub,等到真需要它那一刻,再用inflate()把它加载出来,挺灵活。

setVisibility(View.VISIBLE)只是让它准备好,真正让它出现的关键是inflate()。,一旦加载出来就不能再用原来的ViewStub了,这点要注意。

布局显示和隐藏嘛,就得提到View.VISIBLEView.GONE还有View.INVISIBLE这仨常量。前两个你经常一起用:前者是正常显示,后者直接让布局“消失”,连位置都不占。INVISIBLE就像透明人一样,看不见但还在那儿,场景选用看你需求。

如果你在做那种启动页、设置页、或者用户操作才触发的布局,那 ViewStub 真的挺香,性能也省了不少。搭配View.GONE控制显示状态,逻辑也清晰。

你也可以顺带看看类似的延迟加载技术,比如 Web 端的LazyLoad,或是更专业的StateView。不同平台玩法不同,但思路是一致的。

7z 文件大小:597.14KB