网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
include 标签
include标签可以允许在一个布局当中引入另外一个布局。
比如说程序的所有界面都有一个公共的部分,这个时候最好的做法就是将这个公共的部分提取到一个独立的布局文件当中,然后在每个界面的布局文件当中来引用这个公共的布局。
举例:所有页面的通用标题栏
merge标签
1、include标签的缺点:非常容易造成多余的布局嵌套。
**View Hierarchy工具:**在实际的开发过程中,我们可以通过来查看自己页面布局的一个复杂度。
2、解决方案merge标签是作为include标签的一种辅助扩展进行使用。它的主要作用是为了防止在引用布局文件时产生多余的布局嵌套。
二、布局按需加载
某个布局当中的元素非常多,但并不是所有元素都一起显示出来的,而是普通情况下只显示部分常用的元素,而那些不常用的元素只有在用户进行特定操作的情况下才会显示出来。
Android提供了一种轻量级的控件:ViewStub。ViewStub虽然也是View的一种,但是它没有大小,没有绘制功能,也不参与布局,资源消耗非常低,将它放置在布局当中基本可以认为是完全不会影响性能的。
三、使用约束布局ConstraintLayout
前文已经介绍过几种常见的UI布局,在Android9以后提供了约束布局。目前新建Android项目,生成的布局文件,默认也是约束布局。因此,可以在进行布局的时候,使用约束布局来进行控件的摆放,和约束条件的限制。
优点:可以通过布局文件的可视化的视图,按照简单粗暴的"拖拉拽"的形式进行控件的摆放,和位置的约束,前文已经演示和介绍过,此处不再赘述。
四、常用UI布局的特点
Android布局渲染原理:Android每个视图的显示,需要经过测量(Measure)、布局(Layout)、绘制(View)三个步骤和过程。因此布局的复杂程度,布局的嵌套深度都会影响UI视图的绘制和流畅度。
- LinearLayout线性布局的weight属性,会引起视图的重新测量。
- 常见的LinearLayout和RelativeLayout布局相比,完成相同效果,Linearlayout往往嵌套层级会过多,RelativeLayout相对可以减少嵌套的层数。
- 视图可见性的设置:视图的隐藏与展示,有visible、invisible和gone三个可选值。使用gone属性值时,视图不再占用空间,此时会引起视图的重新测量、布局和绘制;invisible属性值仅仅是改变可变性,仍然占用空间位置,因此,不会引起布局的重新测量和绘制。推荐invisible。
五、Android Studio布局优化工具
Layout Inspector:通过该工具可以查看布局层级,方便开发者优化布局层级嵌套。
在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。
需要完整版PDF学习资源
需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!