aspectRatio
public fun SubspaceModifier.aspectRatio(
@FloatRange(from = 0.0, fromInclusive = false) ratio: Float,
matchHeightConstraintsFirst: Boolean = false,
): SubspaceModifier
Attempts to size the content to match a specified aspect ratio by trying to match one of the incoming constraints in the following order: VolumeConstraints.maxWidth, VolumeConstraints.maxHeight, VolumeConstraints.minWidth, VolumeConstraints.minHeight if matchHeightConstraintsFirst is false (which is the default), or VolumeConstraints.maxHeight, VolumeConstraints.maxWidth, VolumeConstraints.minHeight, VolumeConstraints.minWidth if matchHeightConstraintsFirst is true. The size in the other dimension is determined by the aspect ratio. The combinations will be tried in this order until one non-empty is found to satisfy the constraints. If no valid size is obtained this way, it means that there is no non-empty size satisfying both the constraints and the aspect ratio, so the constraints will not be respected and the content will be sized such that the VolumeConstraints.maxWidth or VolumeConstraints.maxHeight is matched (depending on matchHeightConstraintsFirst). Note that this modifier constrains the ratio between the content's width and height only. The depth dimension is not affected or constrained by this aspect ratio modifier.
SpatialPanel(SubspaceModifier.width(100.dp).aspectRatio(16f / 9f)) { Text(text = "Inner Composable Content")
}
Parameters
| ratio | the desired width/height positive ratio |
| matchHeightConstraintsFirst | if true, height constraints will be matched before width constraints and used to calculate the resulting size according to ratio |