Produktneuheiten

Jetpack WindowManager 1.5 ist stabil

Lesezeit: 3 Minuten
Francesco Romano
Developer Relations Engineer, Android

Wir freuen uns, Ihnen mitteilen zu können, dass Jetpack WindowManager 1.5.0 jetzt stabil ist.

Diese Version baut auf der starken Grundlage der Anpassungsfähigkeit in WindowManager auf und macht es noch einfacher, ansprechende, adaptive Benutzeroberflächen zu erstellen, die auf allen Bildschirmgrößen gut aussehen. Das Android-Ökosystem wächst stetig und Nutzer interagieren mit Apps auf einer Vielzahl von Geräten: von Smartphones und faltbaren Geräten über Tablets, vernetzte Displays und Chromebooks bis hin zu Autodisplays im geparkten Modus.

WindowManager 1.5 bietet bessere Tools für diese vielfältige Geräteumgebung.

Neu in WindowManager 1.5

In diesem stabilen Release werden neue Breakpoints für sehr große Displays eingeführt, die API zum Einbetten von Aktivitäten wird verbessert und die Berechnung von Fenstermesswerten wird flexibler.

Neue Fenstergrößenklassen: „Groß“ und „Extragroß“

Die größte Änderung in Version 1.5 ist die Einführung von zwei neuen Klassen für die Fensterbreite: „Large“ und „Extra-large“.

Fenstergrößenklassen sind unsere offiziellen, meinungsbasierten Viewport-Breakpoints, die Ihnen beim Entwerfen und Entwickeln adaptiver Layouts helfen. Mit Version 1.5 weiten wir diese Richtlinien auf Bildschirme aus, die über typische Tablets hinausgehen.

Das sind die neuen Breiten-Breakpoints:

  • Groß:Für Breiten zwischen 1.200 und 1.600 dp
  • Sehr groß:Für Breiten ≥ 1.600 dp
window_size_classes_width.png

Die verschiedenen Fenstergrößenklassen basierend auf der Displaybreite. 

Warum sind diese wichtig?

Ab Android 16 QPR1 Beta 2 unterstützt Android angeschlossene Displays. Nutzer können also ein externes Display an ihr Gerät anschließen und es so in ein desktopähnliches Tool mit großem Bildschirm verwandeln.

ADB_5350_asset.gif

Smartphone mit einem externen Display verbunden, auf dem eine Desktop-Sitzung läuft. 

Da diese neue Funktion verfügbar ist, ist es wichtig, dass wir eine klare Empfehlung für größere Displays aussprechen. 

Auf diesen sehr großen Oberflächen ist das einfache Hochskalieren des erweiterten Layouts eines Tablets nicht immer die beste Lösung. Ein E‑Mail-Client kann beispielsweise bequem zwei Bereiche (ein Postfach und eine Nachricht) in der Fenstergrößenklasse „Maximiert“ anzeigen. Auf einem extragroßen Desktopmonitor könnte der E‑Mail-Client jedoch elegant drei oder sogar vier Bereiche gleichzeitig anzeigen – vielleicht ein Postfach, eine Nachrichtenliste, den vollständigen Nachrichteninhalt und einen Kalender-/Aufgabenbereich.

WindowManager 1.5 bietet offizielle Breakpoints für sehr große Displays und gibt Ihnen damit ein klares Signal, Layouts einzuführen, die speziell für eine produktive, informationsreiche Desktopumgebung entwickelt wurden.

Die Fenstergrößenklassen können mit computeWindowSizeClass() berechnet werden. Das ist eine androidx.window.core.layout-Bibliotheks-Erweiterungsfunktion, die den Typ Set<WindowSizeClass> erweitert. 

Wenn Sie die neuen Fenstergrößenklassen in Ihr Projekt einbeziehen möchten, rufen Sie die Funktion einfach aus dem Set WindowSizeClass.BREAKPOINTS_V2 anstelle von WindowSizeClass.BREAKPOINTS_V1 auf:

val currentWindowMetrics =

    WindowMetricsCalculator.getOrCreate()

    .computeCurrentWindowMetrics(LocalContext.current)


val sizeClass = WindowSizeClass.BREAKPOINTS_V2

    .computeWindowSizeClass(currentWindowMetrics)


Wenden Sie dann das richtige Layout an, wenn Sie sicher sind, dass Ihre App mindestens so viel Platz hat:

if(sizeClass.isWidthAtLeastBreakpoint(

    WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){

    ...

    // window is at least 1200 dp wide


}

Adaptive Bibliotheken

Mit der Compose Material 3 Adaptive-Bibliothek können Sie adaptive UIs erstellen, die sich automatisch an die aktuellen Fensterkonfigurationen wie Fenstergrößenklassen oder Gerätestatus anpassen. 

Die gute Nachricht ist, dass die Bibliothek bereits an die neuen Breakpoints angepasst wurde. Ab Version 1.2 (derzeit Release Candidate) unterstützen die Standard-Pane-Scaffold-Direktivenfunktionen die Größenklassen „Large“ und „Extra-large“ für die Fensterbreite.

Sie müssen die neuen Breakpoints nur aktivieren, indem Sie in Ihrer Gradle-Build-Datei deklarieren, dass Sie sie verwenden möchten:

currentWindowAdaptiveInfo(

    supportLargeAndXLargeWidth = true)

Zusätzliche Verbesserungen

  • Einbettung von Aktivitäten – automatisches Speichern und Wiederherstellen: WindowManager kann jetzt den Status der Splits für die Einbettung von Aktivitäten automatisch speichern und wiederherstellen. So bleibt das Layout des Nutzers auch nach dem erneuten Erstellen des Prozesses erhalten, was zu einer stabileren und konsistenteren Nutzererfahrung führt. Entwickler müssen den Status nicht mehr manuell speichern und wiederherstellen, sondern können die automatische Speicherung einfach aktivieren, indem sie die Eigenschaft EmbeddingConfiguration#isAutoSaveEmbeddingState festlegen.
  • Erweiterte WindowMetrics: Sie können WindowMetrics jetzt nicht nur aus einem Activity-Kontext, sondern auch aus einem Application-Kontext berechnen. Dadurch haben Sie mehr Flexibilität beim Zugriff auf Fensterinformationen aus verschiedenen Teilen Ihrer App.

Erste Schritte

Wenn Sie die neuen Größenklassen „Groß“ und „Extragroß“ sowie andere Funktionen von Version 1.5 in Ihren Android-Projekten verwenden möchten, aktualisieren Sie die App-Abhängigkeiten in build.gradle.kts auf die aktuelle stabile Version:

dependencies {
    implementation("androidx.window:window:1.5.0") 

    // or, if you're using the WindowManager testing library:

    testImplementation("androidx.window:window-testing:1.5.0")

}

WindowManager 1.5 ist ein weiterer Schritt nach vorn bei der Entwicklung vollständig adaptiver Apps, die auf allen Android-Formfaktoren ausgeführt werden können. Eine vollständige Liste der Änderungen und Fehlerkorrekturen finden Sie in den offiziellen Versionshinweisen.

Viel Spaß beim Programmieren!

Verfasst von:

Weiterlesen