布局

布局写法和Jetpack Compose类似。用Box{}表示层叠,Row{}表示行,Column{}表示列。

布局过程中先完成所有组件的横向布局,再完成所有组件的纵向布局,因为部分组件需要计算文字换行所需的纵向空间。

Box{}

Box {
    ColorRect(Modifier.padding(left = 10.scaled, top = 10.scaled),color = Color.RED) {}
    ColorRect(Modifier.padding(right = 10.scaled, bottom = 10.scaled),color = Color.BLUE) {}
}

更靠前的组件会排在更上层。右下角红色矩形在上层,左上角蓝色矩形在下层。

createScreen{}showScreen{}默认也是Box{}Button{}也是一种特殊的Box{},只是额外渲染了背景。

Row{}

Row {
    ColorRect(color = Color.RED) {}
    ColorRect(color = Color.GREEN) {}
    ColorRect(color = Color.BLUE) {}
}

三个色块会横向排列,并平均分配空间。

Column

Column {
    ColorRect(color = Color.RED) {}
    ColorRect(color = Color.GREEN) {}
    ColorRect(color = Color.BLUE) {}
}

三个色块会纵向排列,并平均分配空间。

在默认情况下,父组件总是会被子组件填满并平分空间。后面会讲解如何更细致的调整空间分配。


This site uses Just the Docs, a documentation theme for Jekyll.