布局优化:使用include、merge、ViewStub

1.include:

布局复用,使用layout=设置引用的布局。需要注意的是只支持android:id 和android:layout_xxx,而且要设置android:layout_xxx必须设置宽高,否则无效。


2.merge:

用于减少冗余的布局嵌套,相当于他包裹的内容直接放到他的父组件下(只能用作布局文件的根标签)。常用于include引用的布局文件,比如说原来有一个垂直线性布局,其中有一个include,引用的布局又是一个垂直线性布局。这时就没必要在引用的布局使用线性布局作为根布局,用merge就可以了。


3.ViewStub:

应用场景是刚开始不需要加载的布局内容(如网络断开界面),意义就是减少刚开始的加载时间。

这个组件刚开始不占空间,通过android:layout设置要加载的内容。再设置可见性或调用inflate后要加载的内容替换掉他显示,相应的空间弹开(像是gone到visible)。

一般要设置android:id和android:inlfateId,第一个就是他的ID,第二个是要加载的内容的ID。

使用:

vs= (ViewStub) findViewById(R.id.vs);
                vs.setVisibility(View.VISIBLE);
                //vs.inflate();第二种显示方式
                View view1=findViewById(R.id.show);
                TextView tv=(TextView) view1.findViewById(R.id.tv);

这里的show就是InflateId

待通知viewstub加载后再获取加载的view,并通过这个view的findViewById来获取其子组件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值