其实本来应该是从代码到可视化才对,但是自从初学的时候知道可以直接拖拉生成控件,一直就没再手打过代码了。实习的时候boss告诉我要先熟悉好代码然后再可视化。好了 我就重新复习了一下,开始了码布局的生活~
进入正题啦:概念啥的就不说了,零零碎碎,做点笔记而已。
为啥用ConstraintLayout
首先,为什么要用约束布局?
其他布局的话在界面复杂的时候,会嵌套多层,能想象到有多丑了吧。嗯,很丑,而且很影响app的性能。性能这一点在谷歌官方的一篇文章里面有详细写到解析ConstraintLayout的性能优势.
将相同属性放入style
每个APP都有固定的风格,所以我们常会看到不同页面的按钮长得一模一样。这个时候,比较笨的方法就是直接复制某个页面的按钮然后改个ID约束条件什么的。但写多了就在想啊,有没有像方法一样的那种东西,把这些属性写在一个方法中,然后要用的时候直接调用就行了。嘿你别说还真有!呐呐~我们可以在values文件夹建一个styles.xml文件,把相同的属性都放在里面,在xml直接style="@style/style名称"就可以啦。不过有一点要注意:跟其他控件ID相关的,和parent相关的,都不可以抽出来。要不然无效。layout_width和layout_height也可以抽取出来。
关于include标签
如果多个页面都有一样的布局块,有一个省时省力的方法。先将这个脸熟的小布局写在一个xml文件中,在大布局中,利用引入这个小布局,怎么样方便吧?
EditText下划线长度
po一个例子:怎么显示这样的效果?
用edittext?没错就是edittext!那edittext下面的横线呢?你以为会像图片里面的那样长度?那你就和我一样太天真了,长度会随着字的长度而改变,就像你用word编辑的时候下面的下划线一样。那怎么办?很简单,利用属性android:background="@null"去掉edittext自带的下划线。自己在它下面加个view,长度颜色你自己定义~记得要放在hint上面。
大坑
有一个坑了我很久的错误,在写recyclerview的item的布局的时候,整体布局弄成了match_parent,结果显示的时候死活只显示一行。后来才知道是被全占满了~嗯嗯。自己踩过的坑要记得。
includefontpadding
很神奇的,我也是这两天才知道的,textview的content和边之间居然还有不知道多大的距离,字体越大,这个距离也会越大,真是神奇了bo~那么这样子的话即使你码了top_to_top或者bottom_to_bottom,也很难在显示的时候实现对齐效果。所以,对待textview的时候,默认给他加includefontpadding=“false”。如果还是不行,那么只能将最小字号的字和需要对齐的对齐,其他text再和这个对齐。
<