资料来源
https://blog.csdn.net/guolin_blog/article/details/53122387
老郭的入门
https://blog.csdn.net/lmj623565791/article/details/78011599?utm_source=tuicool&utm_medium=referral
属性完全解析
https://blog.csdn.net/guolin_blog/article/details/53122387
xml属性的讲解
https://blog.csdn.net/zhaojian3513012/article/details/47106873
虽然是苹果的自定义布局
但是添加View的层次原则很有帮助
同级的View添加到他们的父View上
两个不同层级的View,添加到他们最近的共同的父view上
对于有层次关系的两个View,添加到层次较高的View上
看下面的就会了
https://blog.csdn.net/io_field/article/details/77894191
https://blog.csdn.net/io_field/article/details/77947428
大佬的操作,看了基本就会了
这段时间在使用constraint布局,总结的一些经验
1.缺点:布局复用麻烦,工程量比较大
因为其他布局,遇到重复的部分,可以直接复制粘贴代码.约束布局不行
而且约束布局中每一个控件你都需要调整,如果只用约束布局,因为控件间是相互关联的,所以牵一发而动全身,可能只是改了一个参数,整个布局就会变成一团.
对单个控件管理很糟糕,因为控制这个控件位置的不是直接的布局,而是布局中其他的控件.
这个问题其实很好解决,一个是要梳理好级别关系,同级不互相约束,尽量把约束关系限定在上下级控件之间,方便以后的改动和管理
另一个就是对于要复用或者特殊要求的控件,用layout来包装
2.优势:可以实现所有其他布局的功能,而且比原有的布局更有优势.扁平化布局比多层嵌套的性能好,速度快
写的快,也是一个优势,编写界面就像画图...
3.总结:刚开始我还在用基本的布局,通过xml文件来写布局,学习了约束布局以后,认为约束布局可以胜任项目中的所有任务,开始用约束布局来写页面.
后来发现工作量一点也不小,而且因为不能复用,类似的页面,我也需要重新写,所以又回归了基础布局的工作方式.
这个时候的我才发觉,各种布局应该物尽其用,没有谁能一统天下,可以完全取代其他布局的角色
约束布局的功能很强大,但是单层次的线性布局,LinearLayout实现起来更快,而且以后的新页面也方便复用
约束布局更适合一些规模小的复杂布局,比如精确控制当前view的长宽比例.让容器中的某个控件动态填充空间的大小.等等实现起来的自由度更高.整个页面结构还是推荐用基础的布局来控制.
填坑
控制控件的大小
https://blog.csdn.net/h8800830/article/details/53014661
结论
1.实现水平方向线性布局,所有的View都必须设置左右边界控制属性,而且相互控制
2.实现比重大小控制,必须设置layout_width=”0dp”
3,设置layout_constraintHorizontal_weight属性