ViewStub使用学习

来源:互联网 发布:淘宝手机充值退款 编辑:程序博客网 时间:2024/05/19 18:11

ViewStub使用

ViewStub是不可见且不占视图大小在运行的时候可以懒加载的View组件,他只有当可见或者调用了inflate()方法的时候才会加载布局资源,加载的布局资源就会取代在父控件中的ViewStub,同时viewStub也就不复存在了,viewStub的布局属性都会传给它指向的要加载的布局。

因此在设置某些布局属性的时候就尽量加在布局对应的ViewStub上而不是实际的布局上,当在inflate的时候,就可以把对应的属性传给相应的布局了。

总结一下ViewStub的使用场景:

  1. 只有一次变化的布局,某个布局在inflate以后,就不会有变化,除非重新启动。
  2. 想要控制显示与隐藏的是一个布局文件,而非某一个View。由代码就可以看出,ViewStub指向的是一个布局文件,而不是某一个view。
<ViewStub       android:id="@+id/viewstub_demo_image"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:layout_marginLeft="5dip"      android:layout_marginRight="5dip"      android:layout="@layout/viewstub_demo_image_layout"/>

当需要使用的时候,直接viewstub.inflate()就可以了

 ViewStub stub = (ViewStub) findViewById(R.id.viewstub_demo_image);   stub.inflate();   ImageView image = (ImageView) findViewById(R.id.viewstub_demo_imageview);   image.setImageResource(R.drawable.happy_running_dog);
0 0
原创粉丝点击