ViewStub 使用
2018-11-10 本文已影响0人
sexyhair
概述
ViewStub
初始不可见且大小为0
ViewStub
可用于在运行时延迟扩展布局资源,可以避免资源浪费。在UI性能优化时比较好用的,尤其layout比较复杂的时候。
ViewStub
的setVisibility(int)或inflate()被调用后,ViewStub会被其属性layout指定的View替换掉,即ViewStub执行setVisibility(int)或inflate()后会不存在,所以不可再后续使用ViewStub进行操作
可以使用ViewStub的inflatedId属性来定义/覆盖inflate View的id。
使用
使用场景:以蒙层引导为例
xml中
<ViewStub
android:id="@+id/guideHomeMsg"
android:layout_width="match_parent"
android:layout="@layout/viewstub_layout"
android:layout_height="match_parent" />
Kotlin代码中
var guideMsgContainer = guideHomeMsg.inflate()
guideMsgContainer就是viewstub_layout中的父容器View
验证下ViewStub执行setVisibility(int)或inflate()后ViewStub会被layout所替代
https://www.jianshu.com/p/5f64bacbd759
https://developer.android.com/reference/android/view/ViewStub