Android之ViewStub

    在日常Xml布局中我们常常会用的<include/>标签去重用一些layout布局文件,但是在有些情况下有些重用layout其实很少用到(或者换一种说法,是很少显示).在这种情况下使用<ViewStub/>标签替代<include/>标签,这样这种很少使用的layout就不会加载到主要的Layout布局文件中,节约的加载时间和开销,当我们需要使用该layout的时候直接调用ViewStub中的inflate()方法就可以显示出重用的layout布局文件。

wKiom1Sn9vbwe5cyAADCcdzGUCE480.jpg

使用ViewStub属性其实非常简单,在xml布局中的代码片段如下.

<ViewStub android:id="@+id/stub"
           android:inflatedId="@+id/subTree"
           android:layout="@layout/view_stub_test"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content" />

解释一下2个属性:

android:layout="@layout/view_stub_test"

这个属性与<include/>标签中layout属性一样,指明填充的layout布局。

android:inflatedId="@+id/subTree"

这个属性其实是填充的layout布局的重命名.

如果需要使用填充的layout布局(即view_stub_test)在代码中,只需要简单的调用如下即可

viewStub = (ViewStub)findViewById(R.id.stub);
viewStub.inflate();


你可能感兴趣的:(android,ViewStub)