ViewStub 是一个不可见的,大小为0的View,最佳用途就是实现View的延迟加载,避免资源浪费,在需要的时候才加载View;
发散: 和include相比,属于懒加载。用时候在inflate()使视图显示,但是 在inflater()之后隐藏view之后要再显示,则需要通过setvisiable()进行显示或隐藏了;
加载方式一。(通过.setLayoutResource 指定加载布局)
需要注意的是,加载view之后,viewstub本身就会被新加载进来的view替换掉
ViewStub sampleStub = (ViewStub) view.findViewById(R.id.sampleStub);
sampleStub.setLayoutResource(sampleLayoutRes);//sampleLayoutRes 要加载的布局
sampleStub.inflate();
加载方式二,(通过.android:layout="” 指定加载布局)
android:id="@+id/pic_stub" //inflate()之前fvb用
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:inflatedId="@+id/pic_view_id_after_inflate" /inflate()之后fvb用
android:layout="@layout/pic_view" />//加载的布局
参考:
http://blog.csdn.net/lyx4228716/article/details/47381385
http://blog.csdn.net/jason0539/article/details/26132267
网友评论