布局优化:使用include、merge、ViewStub
16lz
2021-01-24
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来获取其子组件。
更多相关文章
- Android适配器Adapter的学习
- android动态加载Jar/dex--原创
- 你需要了解下Android(安卓)View的更新 requestLayout 与重绘 inv
- android登录tomcat服务器并查找数据库的内容
- proguard-project.txt和project.properties混淆代码
- Android(安卓)- 分享内容 - 添加一个简单的分享操作
- Android之View的诞生之谜
- Android:创建可穿戴应用 - 自定义布局
- Android成长(三)——页面布局