Ancho y alto de pantalla en Jetpack Compose

1 minuto de lectura

Avatar de usuario de AbdulMomen عبدالمؤمن
AbdulMomen عبدالمؤمن

Me pregunto cómo obtener el ancho y la altura de la pantalla con Jetpack Compose.

¿Hay alguna forma de recuperar las dimensiones de la pantalla que no sean
getWindowManager().getDefaultDisplay()?

Puedes lograr esto con LocalConfiguration.current:

@Composable
fun PostView() {
  val configuration = LocalConfiguration.current

  val screenHeight = configuration.screenHeightDp.dp
  val screenWidth = configuration.screenWidthDp.dp

  ...

}

  • Por alguna extraña razón, LocalConfiguration me está dando screenWidth de orientación horizontal a pesar de que cambié de Horizontal a Vertical. ¿Alguien más se enfrenta a este problema?

    – Ali_Waris

    3 de febrero a las 13:16

  • Si desea obtener el tamaño en píxeles: val screenDensity = configuration.densityDpi / 160f y multiplicar con dp, por ejemplo val screenHeight = configuration.screenHeightDp.toFloat() * screenDensity. Tu podrías querer round a un número entero también. ya que px es Int.

    – lenooh

    16 de febrero a las 21:03

Otras soluciones incluyen: –

A.) Declarar un BoxWithConstraints en el nivel más alto de la jerarquía, luego accediendo al maxHeight y atributos de ancho equivalente expuestos dentro del alcance de la caja

B.) Uso de diseños personalizados

Layout(
 content = { ... }
){ measurables, constraints ->
 //Exposes constraints.maxWidth, and a height equivalent
}

¿Ha sido útil esta solución?