之前
在某些场景下(比如,某个“点击查看更多”的情形),对于不需要在最开始时就展现的 View,可以进行 Lazy loading 处理,以优化应用体验。之前我想到的方法是使用 Java 代码动态地向布局中 addView,然而比起写 XML Layout,这种方法略显繁琐;而且违反我尽量在 XML 中写 UI 层的习惯XD。
依然以“点击查看更多”举例,如果用户点开“更多”的概率并不大,而且“更多”中包含很多重量级的操作,则懒加载会显得更加必要。最常用的 findViewById 就是一个很重的操作,它是遍历 id 来查找所需 View 的。如果这些重量级操作发生在 ListView / RecyclerView 中,则会进一步造成无用的资源浪费。
比 addView 更优雅
说的就是 ViewStub 咯。
A ViewStub is an invisible, zer