如何在 Jetpack Compose 中提供相对大小

Moh*_*siq 4 android kotlin android-jetpack android-jetpack-compose

我有一个框布局,我想相对于父框的大小来布局子视图。这可以在 SwiftUI 中使用 Geometry Reader 来实现。如何在 Jetpack Compose 中实现类似的目标?

Gab*_*tti 8

您可以使用BoxWithConstraints代替Box.
您可以使用内容 lambda 范围内可用的测量约束。

就像是:

BoxWithConstraints {
    Box(Modifier.width(maxWidth*0.7f).height(30.dp).background(Color.Blue))
    Box(Modifier.width(maxWidth*0.3f).height(30.dp).background(Color.Yellow))
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

否则,您可以将BoxandfillMaxWidthfillMaxHeight修饰符与分数一起使用。

Box(){
    Box(Modifier.fillMaxWidth(0.7f).height(30.dp).background(Color.Blue))
    Box(Modifier.fillMaxWidth(0.3f).height(30.dp).background(Color.Yellow))
}
Run Code Online (Sandbox Code Playgroud)