← 返回 Android 词条

宽高比

Android原生支持

在 Android 上叫aspectRatio

也叫 Modifier.aspectRatio

Compose: Modifier.aspectRatio(ratio, matchHeightConstraintsFirst)

官方措辞是「尝试」把内容尺寸匹配到指定比例,并逐条列出尝试顺序:maxWidth、maxHeight、minWidth、minHeight。也就是说结果取决于父级传下来的约束,不是无条件成立;matchHeightConstraintsFirst 用来把这个顺序倒过来。三端里只有它把解析顺序写进了文档。

元素的宽和高之间保持的比例,窗口变化时按这个比例一起缩放,而不是各缩各的。

  • 宽和高要按比例
  • 十六比九那种
  • 缩放的时候别变形
  • 宽高比
  • 长宽比
  • 纵横比

其他平台的相似实现

Web原生支持
aspect-ratio同名

官方定义是「允许你定义元素盒子期望的宽高比」—— 是一个期望值,最终尺寸仍受其他尺寸属性约束。

看 Web 视角 →
iOS原生支持
aspectRatio同名

官方描述是「把这个视图的尺寸约束到指定的宽高比」。

看 iOS 视角 →

使用规范

什么时候用

  • 图片、视频、封面需要在不同宽度下保持同一形状时
  • 占位区域要在内容加载前就撑出正确形状时

什么时候别用

  • 内容高度由文字多少决定,强行锁比例会截断或留白时
  • 只想限制最大高度 → 直接写高度上限,不要绕道比例

容易混淆

Android 出处

查看 Web / iOS / Android 完整对照 →