Bildschirmbreite und -höhe in Jetpack Compose

Lesezeit: 1 Minute

Benutzeravatar von AbdulMomen عبدالمؤمن
AbdulMomen عبدالمؤمن

Ich frage mich, wie ich mit Jetpack Compose die Bildschirmbreite und -höhe erhalten kann.

Gibt es eine andere Möglichkeit, die Bildschirmabmessungen abzurufen als
getWindowManager().getDefaultDisplay()?

Dies erreichen Sie mit LocalConfiguration.current:

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

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

  ...

}

  • Aus irgendeinem seltsamen Grund gibt mir LocalConfiguration screenWidth im Querformat, obwohl ich von Querformat auf Hochformat umgeschaltet habe. Ist noch jemand mit diesem Problem konfrontiert?

    – Ali_Waris

    3. Februar um 13:16 Uhr

  • Wenn Sie die Größe in Pixel erhalten möchten: val screenDensity = configuration.densityDpi / 160f und zum Beispiel mit dp multiplizieren val screenHeight = configuration.screenHeightDp.toFloat() * screenDensity. Sie möchten vielleicht round auch auf eine ganze Zahl. da px ist Int.

    – lenooh

    16. Februar um 21:03 Uhr

  • Wahrscheinlich ein besserer Weg, um die Größe in Pixel zu erhalten: val density = LocalDensity.current; val configuration = LocalConfiguration.current; val screenWidthPx = with(density) {configuration.screenWidthDp.dp.roundToPx()}

    – Aragorn Crozier

    4. November um 18:41 Uhr


Andere Problemumgehungen umfassen:-

A.) Erklären a BoxWithConstraints auf der höchsten Ebene der Hierarchie, dann Zugriff auf die maxHeight und äquivalente Breitenattribute, die innerhalb des Bereichs der Box exponiert sind

B.) Verwenden von benutzerdefinierten Layouts

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

1432130cookie-checkBildschirmbreite und -höhe in Jetpack Compose

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy