ViewStub使用学习

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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值