aspectRatio
fun Modifier.aspectRatio(
@FloatRange(from = 0.0, fromInclusive = false) ratio: Float,
matchHeightConstraintsFirst: Boolean = false,
) =
this.then(
AspectRatioElement(
ratio,
matchHeightConstraintsFirst,
debugInspectorInfo {
name = "aspectRatio"
properties["ratio"] = ratio
properties["matchHeightConstraintsFirst"] = matchHeightConstraintsFirst
},
)
)
Attempts to size the content to match a specified aspect ratio by trying to match one of the
incoming constraints in the following order: Constraints.maxWidth
, Constraints.maxHeight
,
Constraints.minWidth
, Constraints.minHeight
if matchHeightConstraintsFirst
is false
(which is the default), or Constraints.maxHeight
, Constraints.maxWidth
,
Constraints.minHeight
, Constraints.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
Constraints.maxWidth
or Constraints.maxHeight
is matched (depending on
matchHeightConstraintsFirst
).
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 |