Android布局优化之ViewStub的使用
背景 最近刚好有看到ViewStub,因此根据个人理解记录下笔记。 ViewStub是Android布局优化的方式之一。 它可以让部分布局延迟加载,从而提高页面渲染速度。 场景 因为ViewStub是用于延迟加载使用,因此适用场景是一些不需要即时展示的页面。 举个例子,大家都用过登录页面。 假设第一次你输入登录用户名和密码错误时,第二次输入会要求你输入验证码。 这里的验证码第一次渲染页面时不需要显示,因此可以适用延迟加载场景。 而像用户名和密码输入框因为第一次显示的时候就要求展示在页面上,因此不适合使用ViewStub。 ViewStub和android:visibility="gone"区别 可能大家会好奇,如果ViewStub的作用是延迟加载。 那么如果我把要延迟加载的布局visibility设置为gone不是一样的效果吗? 表面上看起来效果是一样的,但是区别在哪呢? 设置某个布局模块为gone,但是系统在渲染该布局时还是会去计算这个布局模块的宽高等属性,还是会把它添加到布局树上。因此这个布局模块还是会占有渲染布局的部分时间。 而把该布局模块放在ViewStub,系统在渲染该布局时...