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 ejemploval screenHeight = configuration.screenHeightDp.toFloat() * screenDensity
. Tu podrías quererround
a un número entero también. ya que px esInt
.– 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
}