Compose布局(二)
1.自定义布局
在Compose中,界面元素由可组合函数表示,此类函数在被调用后会发出一部分界面,这部分界面随后会被添加到呈现在屏幕上的界面树中。每个界面元素都有一个父元素,还可能由多个子元素。此外,每个元素在其父元素中都有一个位置,指定为(x,y)位置;也都有一个尺寸,指定为width和height
1.1 使用布局修饰符
可以使用layout修饰符来修改元素的测量和布局方式。Layout是一个lambda;它的参数包括可以测量的元素(以measurable的形式传递)以及该可组合项的传入约束条件(以constraints的形式传递)
- padding
1 |
|
- firstBaselineToTop
直接使用firstBaselineToTop返回的是void,就无法继续设置background,所以要写它的拓展函数
1 | import androidx.compose.ui.unit.dp |
- MyOwnColumn
自定义布局实现Column的效果
首先测量,拿到每一个元素的高度,然后每一个元素的高度都等于前面所有元素的高度和
1 |
|
使用MyOwnColumn
1 |
|
- StaggeredGrid
准备一个圆角卡片,里面包含一个Box和Text
1 |
|
准备一个测试列表
1 | val topics = listOf<String>( |
首先要计算出来布局的宽高,计算出最宽的那一行就是布局的宽度,每一行高度最高之和就是布局的高度
简简单单写个自定义布局
1 |
|
再使用我们写好的这个布局容器,将测试列表填充进去
1 |
|