5. 百分比布局
我们需要页面刚好装满整个屏幕,不多不少,里面如果有子容器,希望能刚好装满父容器,不多不少。
1.html,body元素高度设置为100%;容器元素(#app),高度设置为100%;
2.将容器继续细分为几个子盒子(subbox),高度宽度分别设置为百分比形式,浮动布局。
3.在子容器里分别添加一个包裹盒子(可以用来设置背景图,盒模型设置为border-box,内边距等,高度百分比)
4.这样我们的每个元素的高度都依赖于父元素的高度。这样就能实现刚好装满屏幕的效果,测试完美
6. 约束布局
ConstraintLayout,可以翻译为约束布局,在2016年Google I/O 大会上发布。我们知道,当布局嵌套过多时会出现一些性能问题。之前我们可以去通过RelativeLayout或者GridLayout来减少这种布局嵌套的问题。现在,我们可以改用ConstraintLayout来减少布局的层级结构。ConstraintLayout相比RelativeLayout,其性能更好,也更容易使用,结合Android Studio的布局编辑器可以实现拖拽控件来编写布局等等。
1.相对位置
要在ConstraintLayout中确定view的位置,必须至少添加一个水平和垂直的约束。每一个约束表示到另一个view,父布局,或者不可见的参考线的连接或者对齐。如果水平或者垂直方向上没有约束,那么其位置就是0
2.尺寸约束
view中使用warp_content或者固定值等等是没有问题的。但是在ConstraintLayout中不推荐使用MATCH_PARENT这个值,如果需要实现跟MATCH_PARENT同样的效果,可以使用0dp来代替,其表示MATCH_CONSTRAINT,即适应约束。其跟MATCH_PARENT还是有区别的。
3. 宽高比
在ConstraintLayout中,还可以将宽定义成高的一个比例或者高定义成宽的比率。首先,需要将宽或者高设置为0dp(即MATCH_CONSTRAINT),即要适应约束条件。然后通过layout_constraintDimensionRatio属性设置一个比率即可。这个比率可以是一个浮点数,表示宽度和高度之间的比率;也可以是“宽度:高度”形式的比率