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

上一篇下一篇

猜你喜欢

热点阅读