使用constraintlayout约束布局的注意事项
约束布局作为Google官方力推的新型布局方式 , 通过简单的拖拉拽便能实现相对复杂的页面布局。但在国内,似乎大部分人都不愿意使用这种看起来简便的一种新型布局方式。笔者将在下文介绍一些使用约束布局时的注意事项(本文所使用的皆是图形化界面布局方式)
1.如何使用约束布局
-
创建Activity时生成的默认布局文件就是约束布局,
点击Design,就会进入到图形界面
-
图形界面的左侧是各种主流的布局控件(注意:一些第三方控件并不含有,需要自行手写)
-
使用时只需将所需要使用的布局控件从左侧拖到中心布局界面即可,鼠标悬浮在边界处即可自由缩放大小
使用约束布局能极大的减轻以往我们使用传统线性布局和相对布局时的多层嵌套,提高开发效率。
2.注意事项
- 使用约束布局时切记要为所有的布局控件添加约束,否则所设置的布局会因缺少约束而失效
- 添加约束时,不要一次四个约束都添加,添加两个即可,其他视情况而定。
3.适配问题
相信很多曾经尝试过约束布局的小伙伴都被它的适配问题给难住了,本人在刚使用约布局时也被该问题困扰过,查阅多方资料后发现。约束布局虽然在通过拖拉时会自行计算坐标尺寸,但是在建立约束时,它能很好的与各个控件之间建立约束关系,具体使用的话,在这里贴出一些我平时有使用到的地方给大家做参考。
- 案例1
让下面的布局块始终处于TextView下方
只需以下操作即可,将TextView的下方原点拉出箭头指向下方布局块,或者反之亦可
-
案例2
明明创建的布局在视图中没问题,但在模拟器或者真机上运行时就发生了一部分布局跃出屏幕的问题
- 这是因为,在约束布局中创建的布局块或控件,在通过拖拉的时候,自行设置了固定的尺寸,与我们平时设置的wrap_content不同,这一点,在布局块中体现的尤为明显,该如何解决呢。
由于我们已经在上面建立了约束,所以在下面的宽高设置中,可将其设置为0dp,这样它的大小就会固定在父容器里面,而不会发生跃出的情况
常见的居中,只需将左右的约束都设置为0dp或相同即可
总结
使用约束布局,只需要灵活运用约束关系,就可以抛开繁琐的代码式布局,通过简单的拖拉拽,实现多种丰富的布局形式,简化了以往使用多种布局嵌套而导致部分控件难以修改的问题。让程序员能花更多的时间来完成自己的逻辑代码。而这种简便而高效的方式,在不久相信一定会广泛推行。
- 这是因为,在约束布局中创建的布局块或控件,在通过拖拉的时候,自行设置了固定的尺寸,与我们平时设置的wrap_content不同,这一点,在布局块中体现的尤为明显,该如何解决呢。