约束布局从可视化到代码

本文探讨了为何使用ConstraintLayout以避免界面嵌套和性能问题,并介绍了如何通过styles.xml管理相同属性,利用include标签复用布局,以及解决EditText下划线长度等问题。还涉及了负margin、layout_goneMargin、scaleType、bias偏移和baseline对齐等关键概念,最后提到了FrameLayout的应用和链式约束的创建。
摘要由CSDN通过智能技术生成

其实本来应该是从代码到可视化才对,但是自从初学的时候知道可以直接拖拉生成控件,一直就没再手打过代码了。实习的时候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!那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再和这个对齐。

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值