WindowManager
Letzte Aktualisierung | Stabile Version | Releasekandidat | Beta-Ausgabe | Alpharelease |
---|---|---|---|---|
2. Juli 2025 | 1.4.0 | - | 1.5.0-beta01 | - |
Abhängigkeiten deklarieren
Wenn Sie eine Abhängigkeit von WindowManager hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.
Fügen Sie der Datei build.gradle
für Ihre App oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:
Groovy
dependencies { implementation "androidx.window:window:1.4.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.4.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.4.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.4.0" // For testing implementation "androidx.window:window-testing:1.4.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.4.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.4.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.4.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.4.0") // For testing implementation("androidx.window:window-testing:1.4.0") }
Feedback
Ihr Feedback hilft uns, Jetpack zu verbessern. Lassen Sie es uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können für ein vorhandenes Problem abstimmen, indem Sie auf die Schaltfläche mit dem Stern klicken.
Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung.
Version 1.5
Version 1.5.0-beta01
2. Juli 2025
androidx.window:window-*:1.5.0-beta01
wird veröffentlicht. Version 1.5.0-beta01 enthält diese Commits.
Version 1.5.0-alpha02
7. Mai 2025
androidx.window:window-*:1.5.0-alpha02
wird veröffentlicht. Version 1.5.0-alpha02 enthält diese Commits.
API-Änderungen
- Fügen Sie
WindowSizeClass
-Haltepunkte für „Large“ und „XLarge“ hinzu. (I40d85) - Berechnung von
WindowMetrics
auf Anwendungskontext ausweiten (I8eeeb, b/360934048) - Stellen Sie eine Getter-Methode bereit, um den direkten Zugriff auf
WindowLayoutInfo
zu ermöglichen (Ie9513) - Einführung einer API zum automatischen Speichern des Einbettungsstatus und zum automatischen Wiederherstellen des Einbettungsstatus, wenn der App-Prozess neu gestartet wird. (Ie0295)
- Entfernen Sie die experimentelle
WindowInsets
API. (I68a71) - Einige Konstruktoren ausblenden (I87b8d)
Fehlerkorrekturen
- Es wurde ein Fehler behoben, durch den
EmbeddingRule
in einigen Fällen unterschiedlichehashCode
zurückgegeben hat. (I748cc)
Version 1.5.0-alpha01
12. März 2025
androidx.window:window-*:1.5.0-alpha01
wird veröffentlicht. Version 1.5.0-alpha01 enthält diese Commits.
Neue Funktionen
- Erste Version von next 1.5.0.
Version 1.4
Version 1.4.0
20. Mai 2025
androidx.window:window-*:1.4.0
wird veröffentlicht. Version 1.4.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.3.0
- Einbettung von Aktivitäten
- API zum Anpassen der Startanimationen
- Interaktive Trennlinie
ActivityStack
Anpinnen- Abdunkeln von Vollbild-Dialogfeldern
- Callback für Informationen zum eingebetteten Aktivitätsfenster
- Verbesserte
ActivityStack
-Verwaltung - Aktivität in einem bestimmten
ActivityStack
starten
WindowMetricsCalculator
- Unterstützung für Testbarkeit verbessern
WindowMetrics
- Einfache Methoden zur Berechnung von
withDp
undheightDp
- Grenzenprüfung auf
isAtLeast
aktualisieren und Untergrenzen verwenden, um das Hinzufügen neuer Werte zu unterstützen
- Einfache Methoden zur Berechnung von
WindowSizeClass
- Berechnungsmethode für
WindowMetrics
hinzufügen
- Berechnungsmethode für
WindowInfoTracker
- API zum Erkennen der unterstützten Haltungen auf dem Gerät hinzufügen
Version 1.4.0-rc02
23. April 2025
androidx.window:window-*:1.4.0-rc02
wird veröffentlicht. Version 1.4.0-rc02 enthält diese Commits.
Fehlerkorrekturen
- Behebe einen ProGuard-Absturz für
ActivityEmbedding
.
Version 1.4.0-rc01
12. März 2025
androidx.window:window-*:1.4.0-rc01
wird veröffentlicht. Version 1.4.0-rc01 enthält diese Commits.
Neue Funktionen
- Aktualisierungen der
WindowSizeClass
API - Aktualisierungen der APIs zum Einbetten von Aktivitäten
Version 1.4.0-beta02
12. Februar 2025
androidx.window:window-*:1.4.0-beta02
wird veröffentlicht. Version 1.4.0-beta02 enthält diese Commits.
Neue Funktionen
- Eine Anmerkung korrigieren, die nur für die Property, nicht aber für die Getter-Methode vorhanden war.
Version 1.4.0-beta01
15. Januar 2025
androidx.window:window-*:1.4.0-beta01
wird veröffentlicht. Version 1.4.0-beta01 enthält diese Commits.
Neue Funktionen
- Es wurde eine API hinzugefügt, mit der
ActivityEmbedding
-Animationen angepasst werden können. - Erweitern Sie
WindowMetricsCalculator
test APIs, um das Faken der Fenstermesswerte zu ermöglichen.
API-Änderungen
- Einige Konstruktoren ausblenden (I87b8d)
- Apps dürfen
ActivityEmbedding
-Animationen anpassen (If31a8) - Unterstützung für das
watchosDeviceArm64
-KMP-Ziel und Kotlin 1.9 als Ziel hinzugefügt (Icf15d, b/364652024) WindowMetricsCalculator
-APIs verfügbar machen. (I1cebf)
Fehlerkorrekturen
- In dieser Bibliothek werden jetzt JSpecify-Nullable-Annotationen verwendet, die typbezogen sind. Kotlin-Entwickler sollten das folgende Compiler-Argument verwenden, um die korrekte Verwendung zu erzwingen:
-Xjspecify-annotations=strict
(dies ist die Standardeinstellung ab Version 2.1.0 des Kotlin-Compilers). (Ie69ac, b/326456246)
Version 1.4.0-alpha05
16. Oktober 2024
androidx.window:window-*:1.4.0-alpha05
wird veröffentlicht. Version 1.4.0-alpha05 enthält diese Commits.
Neue Funktionen
- Fügen Sie praktische Funktionen hinzu, um
widthDp
undheightDp
ausWindowMetrics
abzurufen.
API-Änderungen
- Fügen Sie
widthDp
undheightDp
zuWindowMetrics
hinzu. (Ide026) - Entfernen Sie die experimentelle
WindowInsets
API. (I68a71) - Namen der Methoden für die Bereichsprüfung in
isAtLeast
ändern (Ib0ab7)
Version 1.4.0-alpha04
2. Oktober 2024
androidx.window:window-*:1.4.0-alpha04
wird veröffentlicht. Version 1.4.0-alpha04 enthält diese Commits.
API-Änderungen
- Es wurde eine Methode zum Berechnen von
WindowSizeClass
ausWindowMetrics
hinzugefügt. (874dba) - Ändern Sie die
WindowSizeClass
-Methoden incontainsWidthDp
,containsHeightDp
undcontainsWindowSizeDp
, um die Übersichtlichkeit zu verbessern. (fa760d) - Konvertiere
WindowAreaController
in eine abstrakte Basisklasse. (I90893)
Fehlerkorrekturen
- Unterstützung für relative Grenzen beim Erstellen eines Tests
FoldingFeature
wurde hinzugefügt. (2e6b3e) - Allgemeine Fehlerkorrekturen bei der Auswahl eines
WindowSizeClass
.
Version 1.4.0-alpha03
18. September 2024
androidx.window:window-*:1.4.0-alpha03
wird veröffentlicht. Version 1.4.0-alpha03 enthält diese Commits.
Neue Funktionen
- Fügen Sie eine Hilfsmethode hinzu, um ein
WindowSizeClass
ausWindowMetrics
abzurufen. (I83f1f) - Benennen Sie
isAtLeast
incontainsBreakpoint
um. (I85b47) - Fügen Sie
computeWindowSizeClass
eine Überlastung mit Gleitkommazahlen hinzu. (I3dcb2, b/364677934, b/364677802, b/364680886)
Fehlerkorrekturen
- Fügen Sie dem Standard-Haltepunktset
WindowSizeClass
fehlende Haltepunkte hinzu. - Ein Fehler wurde behoben, bei dem in einigen Fällen nicht die richtigen kompakten Abmessungen ausgewählt wurden.
Version 1.4.0-alpha02
4. September 2024
androidx.window:window-*:1.4.0-alpha02
wird veröffentlicht. Version 1.4.0-alpha02 enthält diese Commits.
Neue Funktionen
Unterstützung für benutzerdefinierte WindowSizeClass
hinzugefügt.
- Öffnen Sie den Konstruktor für
WindowSizeClass
, damit Entwickler ihren eigenen verwenden können. - Fügen Sie
isAtLeast
-Hilfsmethoden hinzu, damit Entwickler eine Reihe vonWindowSizeClass
-Werten verarbeiten können. - Fügen Sie eine Erweiterungsfunktion für
Set<WindowSizeClass>
hinzu, um die beste Übereinstimmung aus dem Set zu berechnen. - Konstanten für die empfohlenen Android-Haltepunkte hinzufügen
- Fügen Sie den Haltepunktsatz hinzu, der den von Android empfohlenen Haltepunkten entspricht.
API-Änderungen
- Aktualisieren Sie die Methodennamen für die Grenzen für
WindowSizeClass
. (If89a6) - Aktualisieren Sie die
WindowSizeClass
API, damit in Zukunft neue Haltepunktwerte hinzugefügt werden können. Anstelle von absoluten Grenzen verwenden wir die Untergrenzen und empfehlen Entwicklern, Untergrenzenprüfungen bei der Verarbeitung vonWindowSizeClass
zu verwenden. Die bestehendenWindowWidthSizeClass
undWindowHeightSizeClass
werden eingestellt, da sie nicht weiterentwickelt werden. (I014ce)
Version 1.4.0-alpha01
7. August 2024
androidx.window:window-*:1.4.0-alpha01
wird veröffentlicht. Version 1.4.0-alpha01 enthält diese Commits.
Neue Funktionen
- Mit ActivityStack Pinning können Apps Inhalte in einem Container anpinnen und die Navigation davon vom anderen Container isolieren.
- Mit Interactive Divider können Apps eine feste oder ziehbare Trennlinie zwischen den beiden Aktivitäten in einer geteilten Darstellung anzeigen.
- Mit Abdunklung von Vollbilddialogfeldern können Apps den Abdunklungsbereich des Dialogfelds angeben, um entweder das gesamte Aufgabenfenster oder nur den Container, in dem das Dialogfeld angezeigt wird, abzudunkeln.
- Mit dem Callback für Informationen zum eingebetteten Aktivitätsfenster können Apps kontinuierlich Updates zum eingebetteten Aktivitätsfenster erhalten.
- Mit Embedding Animation Background können Apps den Animationshintergrund angeben, wodurch die Qualität der Übergangsanimation verbessert wird, wenn
ActivityEmbedding
verwendet wird. - Verbessertes ActivityStack-Management: Apps haben mehr Kontrolle über den
ActivityStacks
, wennActivityEmbedding
verwendet wird. Dazu gehören: - Aktivität in einem bestimmten
ActivityStack
starten ActivityStack
abschließen
API-Änderungen
Eine neue API
WindowInfoTracker#supportedPostures
:- Eine API, mit der ermittelt werden kann, ob das Gerät den Tabletop-Modus für Faltgeräte unterstützt. WindowAreaSessionPresenter#getWindow wird hinzugefügt
Fügen Sie APIs hinzu, um das Anpinnen von
ActivityStack
zu unterstützen:- Klasse
SplitPinRule
SplitController#pinTopActivityStack
SplitController#unpinTopActivityStack
- Klasse
APIs hinzufügen, um die interaktive Trennlinie zu aktivieren und zu konfigurieren
- Klasse
DividerAttributes
SplitAttributes.Builder#setDividerAttributes
- Klasse
APIs zum Festlegen von
EmbeddingConfiguration
undDimAreaBehavior
für Dialogfelder hinzugefügt- Klasse
EmbeddingConfiguration
- Klasse
DimAreaBehavior
ActivityEmbeddingController#setEmbeddingConfiguration
- Klasse
APIs hinzufügen, um Updates zu Informationen zum eingebetteten Aktivitätsfenster zu erhalten
- Klasse
EmbeddedActivityWindowInfo
ActivityEmbeddingController#embeddedActivityWindowInfo
- Klasse
APIs zum Festlegen des Hintergrunds für die Einbettungsanimation hinzufügen
EmbeddingAnimationBackground
SplitAttributes.Builder#setAnimationBackground
APIs hinzufügen, um
ActivityStacks
abzuschließenActivityEmbeddingController#finishActivityStacks
APIs zum Festlegen des Starts von
ActivityStack
hinzufügenActivityEmbeddingOptions#setLaunchingActivityStack
Die folgenden APIs sind stabil und nicht mehr experimentell:
ActivityEmbeddingController#invalidateVisibleActivityStacks
(moved from SplitController#invalidateTopVisibleSplitAttributes)ActivityEmbeddingController#getActivityStack
SplitController#updateSplitAttributes
APIs für Version 1.4 hinzufügen (I56774)
Fehlerkorrekturen
- Ein Fehler wurde behoben, bei dem auf bestimmten Geräten UNAVAILABLE anstelle von ACTIVE zurückgegeben wurde, wenn eine Sitzung aktiv war.
- Der Support für
transferActivityToWindowArea
auf Geräten mit einemvendorApiLevel
von 2 wird aufgrund instabilen API-Supports entfernt. - Einführung einer API, mit der die Trennlinie für das Ziehen in den Vollbildmodus für das Einbetten von Aktivitäten verschoben werden kann. (I645c9)
- Apps können
ActivityEmbedding
-Animationen über Animationsparameter fürSplitAttributes
deaktivieren. (Idc01a) - Die manuelle Beschreibung des Zugriffs auf neue Plattform-APIs wurde entfernt, da dies automatisch über die API-Modellierung erfolgt, wenn R8 mit AGP 7.3 oder höher (z.B. R8-Version 3.3) verwendet wird, und für alle Builds, wenn AGP 8.1 oder höher (z.B. D8-Version 8.1) verwendet wird. Clients, die AGP nicht verwenden, wird empfohlen, auf D8-Version 8.1 oder höher zu aktualisieren. Weitere Details findest du in diesem Artikel. (Ia60e0, b/345472586)
- Erlauben Sie, dass Erweiterungen Animationsparameter für
SplitAttributes
verwenden, damit das Gerät sie für Animationsübergänge nutzen kann. (Iede00) - Overlay-APIs ausblenden (Ic4251)
- Einführung von APIs zum Konfigurieren des fixierten oder ziehbaren Trennzeichens für die Aufteilung (Ia7a78)
- Dichte für
WindowMetrics
hinzugefügt (Id6723) - Fügen Sie eine API hinzu, um
SupportedPostures
zu erhalten. (If557a) setLaunchingActivityStack
aus experimenteller API entfernen (I191cf)- Einführung von
ActivityEmbeddingController#embeddedActivityWindowInfo
(I24312) #getToken
einstellen und#getActivityStackToken
hinzufügen (Ie0471)- Callback-Adapter für die
embeddedActivityWindowInfo
-Flow-API einführen (Ida77f) - Callback-Adapter für die OverlayInfo-Flow-API hinzugefügt (I7264f)
- Führen Sie
WindowSdkExtensionsRule
ein, umextensionsVersion
für Tests zu überschreiben. (Ifb928) - –
#setLaunchingActivityStack
zu Bundle migrieren, um mitActivityOptionsCompat
-Verwendungen kompatibel zu sein.- Nutzer sollten
activityOptions.toBundle
anstelle vonActvityOptions
übergeben. - Entfernen Sie
#setLaunchingActivityStack(Activity)
. Nutzer sollten zuActivityEmbeddingController#getActivityStac(Activity)
migrieren, um einActivityStack
zu erhalten, und dasActivityStack
an#setLaunchingActivityStack
übergeben. (Ie0ccc)
- Nutzer sollten
- –
ActivityStack.Token
undSpltInfo.Token
als Kennung für die Kommunikation zwischen WM Jetpack und Erweiterungen eingeführt.- APIs einstellen/ersetzen, um Token anstelle von IBinder zu verwenden/zurückzugeben. (I12b24)
- – Stelle
ActivityEmbeddingController#invalidateVisibleActivityStacks
vor.- Entferne
SplitController#invalidateTopVisibleSplitAttributes
, da die Funktion in#invalidateVisibleActivityStacks
zusammengefasst wird (I02ef5).
- Entferne
- – API zum Festlegen der Einbettungskonfiguration hinzugefügt. (I59a4a)
- – Hinzufügen von APIs zum Anpinnen/Lösen von Pins für die obersten
ActivityStack
androidx.Window
.- Demo-App wird aktualisiert, um das Anpinnen/Lösen von oben zu ermöglichen
ActivityStack
(I24dd3)
- Demo-App wird aktualisiert, um das Anpinnen/Lösen von oben zu ermöglichen
#finishActivityStacks
undActivityEmbeddingOptions
wieder hinzufügen (Ic1ab3)- Entfernen Sie instabile APIs. (Ibc534, b/302380585)
Version 1.3
Version 1.3.0
29. Mai 2024
androidx.window:window-*:1.3.0
wird veröffentlicht. Version 1.3.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.2.0
- Unterstützung von Kotlin Multiplatform für Window Size Classes.
Version 1.3.0-rc01
14. Mai 2024
WindowManager
Jetpack 1.3 bietet Unterstützung für Kotlin Multiplatform für WindowSizeClass
-Funktionen sowie mehrere Fehlerkorrekturen.
androidx.window:window-*:1.3.0-rc01
wird veröffentlicht. Version 1.3.0-rc01 enthält diese Commits.
Version 1.3.0-beta02
1. Mai 2024
androidx.window:window-*:1.3.0-beta02
wird veröffentlicht. Version 1.3.0-beta02 enthält diese Commits.
API-Änderungen
- Die Unterstützung für das Erstellen und Verwenden benutzerdefinierter
WindowSizeClass
wurde entfernt. (Id1143)
Fehlerkorrekturen
- Es wurde ein Fehler
KotlinReflectionInternalError
behoben, der dadurch verursacht wurde, dass Proguard in bestimmten Geräteimplementierungen einige Dateien entfernt hat. (I01b02)
Version 1.3.0-beta01
3. April 2024
androidx.window:window-*:1.3.0-beta01
wird veröffentlicht. Version 1.3.0-beta01 enthält diese Commits.
Version 1.3.0-alpha03
6. März 2024
androidx.window:window-*:1.3.0-alpha03
wird veröffentlicht. Version 1.3.0-alpha03 enthält diese Commits.
API-Änderungen
WindowSizeClassUtil
in fokussiertere Methoden aufteilen (Ie9292)WindowSizeClass#compute
wiederherstellen (I21355, b/324293374)
Fehlerkorrekturen
- Ein Absturz wurde behoben, der auftrat, weil der bereitgestellte Kontext nicht richtig entpackt wurde. (94d10ce , b/318787482)
Version 1.3.0-alpha02
7. Februar 2024
androidx.window:window-*:1.3.0-alpha02
wird veröffentlicht. Version 1.3.0-alpha02 enthält diese Commits.
Neue Funktionen
- Die API-Oberfläche der Window Size Class API wurde aktualisiert, um die Flexibilität für Entwickler zu verbessern, die ihre eigenen Größenklassen verwenden möchten.
API-Änderungen
- Fügen Sie der Breiten-Auswahl Höhenbeschränkungen hinzu. (I23393)
- Dienstfunktionen zum Auswählen eines
WindowSizeClass
aus einer Menge hinzugefügt. Hinzufügen experimenteller Scoring-Funktionen, damit Entwickler eigene Selektoren schreiben können. Fügen Sie eine Selektorerweiterungsfunktion hinzu, um die breitesteWindowSizeClass
innerhalb einer bestimmten Grenze auszuwählen. (I0c944) - Öffnen Sie den
WindowSizeClass
-Konstruktor, damit benutzerdefinierte Haltepunkte hinzugefügt werden können. (Ic1ff3) - Es wurde eine praktische Funktion zum Erstellen einer Größenklasse aus Breite, Höhe und Dichte hinzugefügt. (If67f4)
Fehlerkorrekturen
- Es wurde ein Fehler behoben, der auftrat, wenn ein Gleitkommawert auf 0 gekürzt wurde. (272ffac)
Version 1.3.0-alpha01
15. November 2023
androidx.window:window-*:1.3.0-alpha01
wird veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.
Neue Funktionen
- Experimentelle Fenster-APIs für den Zugriff auf den Rückbildschirm verfügbar machen
- Die Test-APIs zum Erstellen von
FoldingFeature
sind jetzt stabil. - Test-APIs zum Einrichten gefälschter
ActivityEmbedding
-Werte sind jetzt stabil. WindowLayoutInfoPublisherRule
meldet jetzt die Überschreibung, wenn ein Wert aus einerUiContext
abgerufen wird.- Mit dieser Funktion werden Daten aus
WindowInfoTracker
inUiContext
-Parameter zusammengefasst. - Die Extensions-Version auf dem Gerät verfügbar machen.
WindowProperties
-Konstanten für appspezifische Überschreibungen durch Nutzer:PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
: Informiert das System darüber, dass die App die Überschreibung der Kompatibilität des Seitenverhältnisses für Nutzer deaktiviert hat.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
: Informiert das System darüber, dass die App die Vollbildoption der Einstellungen für die Überschreibung der Kompatibilität des Seitenverhältnisses des Nutzers deaktiviert hat.
Version 1.2
Version 1.2.0
15. November 2023
androidx.window:window-*:1.2.0
wird veröffentlicht. Version 1.2.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.1.0
- Experimentelle Fenster-APIs für den Zugriff auf den Rückbildschirm verfügbar machen
- Die Test-APIs zum Erstellen von
FoldingFeature
sind jetzt stabil. - Test-APIs zum Einrichten gefälschter
ActivityEmbedding
-Werte sind jetzt stabil. WindowLayoutInfoPublisherRule
meldet jetzt die Überschreibung, wenn ein Wert aus einerUiContext
abgerufen wird.- Mit dieser Funktion werden Daten aus
WindowInfoTracker
inUiContext
-Parameter zusammengefasst. - Die Extensions-Version auf dem Gerät verfügbar machen.
Version 1.2.0-rc01
1. November 2023
androidx.window:window-*:1.2.0-rc01
wird veröffentlicht. Version 1.2.0-rc01 enthält diese Commits.
Neue Funktionen
- Experimentelle Fenster-APIs für den Zugriff auf den Rückbildschirm verfügbar machen
- Die Test-APIs zum Erstellen von
FoldingFeature
sind jetzt stabil. - Test-APIs zum Einrichten gefälschter
ActivityEmbedding
-Werte sind jetzt stabil. WindowLayoutInfoPublisherRule
meldet jetzt die Überschreibung, wenn ein Wert aus einerUiContext
abgerufen wird.- Mit dieser Funktion werden Daten aus
WindowInfoTracker
inUiContext
-Parameter zusammengefasst. - Die Extensions-Version auf dem Gerät verfügbar machen.
Version 1.2.0-beta04
18. Oktober 2023
androidx.window:window-*:1.2.0-beta04
wird veröffentlicht. Version 1.2.0-beta04 enthält diese Commits.
API-Änderungen
- Entfernen Sie instabile APIs. (Ibc534, b/302380585)
Version 1.2.0-beta03
20. September 2023
androidx.window:window-*:1.2.0-beta03
wird veröffentlicht. Version 1.2.0-beta03 enthält diese Commits.
Neue Funktionen
- Fügen Sie
RequiresApi
-Prüfungen für APIs hinzu, für die eine bestimmte Version von Erweiterungen erforderlich ist, damit sie richtig funktionieren. - Fügen Sie eine API hinzu, um die Erweiterungsversion auf dem Gerät verfügbar zu machen.
API-Änderungen
- Die erforderliche Version der Windows SDK-Erweiterung wird in öffentlichen APIs angegeben.
- Entfernen Sie
isXXXSupported
in der Komponente „Aktivität einbetten“. (Ie3dae)
- Entfernen Sie
- Führen Sie
WindowSdkExtensions
ein, um die Erweiterungsversion auf dem Gerät zu melden.- Führen Sie
RequiresWindowSdkExtension
ein, um die erforderliche Mindestversion der Erweiterung anzugeben. (I05fd4)
- Führen Sie
- Macht
WindowAreaInfo#getCapability
zu einem Feld, in dem keine Nullwerte zulässig sind. (I17048)
Version 1.2.0-beta01
26. Juli 2023
androidx.window:window-*:1.2.0-beta01
wird veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.
Neue Funktionen
- Experimentelle Fenster-APIs für den Zugriff auf den Rückbildschirm verfügbar machen
- Die Test-APIs zum Erstellen von
FoldingFeature
sind jetzt stabil. - Test-APIs zum Einrichten gefälschter
ActivityEmbedding
-Werte sind jetzt stabil. WindowLayoutInfoPublisherRule
meldet jetzt die Überschreibung, wenn ein Wert aus einerUiContext
abgerufen wird.- Mit dieser Funktion werden Daten aus
WindowInfoTracker
inUiContext
-Parameter zusammengefasst.
API-Änderungen
- Markiert die
WindowArea
-APIs als experimentell, damit API-Änderungen für eine stabile Version in 1.3 (I857f5) fortgesetzt werden können. - Aktualisierte API-Dateien zum Annotieren der Kompatibilitätsunterdrückung (I8e87a, b/287516207)
Version 1.2.0-alpha03
21. Juni 2023
androidx.window:window-*:1.2.0-alpha03
wird veröffentlicht. Version 1.2.0-alpha03 enthält diese Commits.
Neue Funktionen
- Veraltete APIs aus der API-Oberfläche entfernen.
- APIs zur Unterstützung gleichzeitiger Displays hinzufügen
- Fügen Sie eine Property hinzu, um die Überschreibung der erzwungenen Größenänderung zu deaktivieren.
- Fügen Sie eine Property hinzu, um die Überschreibung des Mindestseitenverhältnisses zu deaktivieren.
- Stabilisieren Sie
ActivityEmbeddingRule
, um Unittests für die Aktivitätseinbettung zu unterstützen.
API-Änderungen
Fehlerkorrekturen
- Kompatibilitätseigenschaft zum Deaktivieren der Überschreibung für die erzwungene Größenanpassung hinzugefügt (Ie7ab1)
- Entfernt
SESSION_STATE_CONTENT_INVISIBLE
aus der Erweiterungsoberfläche. (I6ed19) - Stabilisieren Sie
ActivityEmbeddingRule
, um Unittests für die Einbettung von Aktivitäten zu unterstützen. (I8d6b6) - Es wird eine Opt-out-kompatible Property für die Überschreibung des Mindestseitenverhältnisses hinzugefügt. (I66390)
- Entfernt die eingestellten WindowArea-APIs (Ieb67c)
- Benennen Sie die Eigenschaft für die Schleife der Ausrichtungsanfrage in
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
um. (Ie2fbd) - Aktualisiert die Namen der Sitzungskonstanten für den Fensterbereich (I83675)
- Es wurde eine Opt-out-Kompatibilitätseigenschaft hinzugefügt, die die Schleife für die Ausrichtung anfordert, wenn sie erkannt wird (I0a7a2).
- Fügen Sie
WindowAreaComponent#STATUS_ACTIVE
hinzu, um anzugeben, dass das Feature bereits aktiv ist. (I62bc3) RearDisplayPresentationMode
-APIs hinzufügen (I0401c)- Entfernen der API zum Entfernen der Hintergrundfarbe für die stabile Version. (I34c3e)
- Window Area APIs ausblenden. (I39de0)
- Fügen Sie Methoden hinzu, um
SplitInfo
inSplitController
zu überschreiben. Fügen Sie Testmethoden hinzu, um Doubles fürSplitInfo
undActivityStack
zu erstellen. (Icd69f) - Tag für
ActivityRule.Builder
als optional festlegen. (Ib0b44) - Entferne
RatioSplitType
,ExpandContainersSplit
undHingeSplitType
. Sie sind jetztSplitType
.- Ersetzen Sie
#splitEqually()
,#expandContainers()
und#splitByHinge
durch die KonstantenSplitType SPLIT_TYPE_EQUAL
,SPLIT_TYPE_EXPAND
undSPLIT_TYPE_HINGE
. - Die Funktion zum Festlegen des Fallback-Typs für den Scharniersplitt-Typ wird entfernt. Wenn der Scharnier-Aufteilungstyp aufgrund des aktuellen Geräte- oder Fensterstatus nicht angewendet werden kann, wird der übergeordnete Task-Container gleichmäßig aufgeteilt. Verwenden Sie
SplitController#setSplitAttributesCalculator
, um den Fallback-Split-Typ anzupassen. (Ifcc59)
- Ersetzen Sie
add
/removeSplitCallback
einstellenadd
/removeSplitCallback
nachSplitControllerCallbackAdapter
verschiebenFlow
-Unterstützung hinzufügen, um dieSplitInfo
-Liste zu erhalten (I7f1b6)
- Testregel für
ActivityEmbeddingController
(I42e9b) hinzufügen ActivityOptionsCompat
wird inActivityEmbeddingOptions
umbenannt (I89301)- Fügen Sie
splitSupportStatus
hinzu, um anzugeben, ob die Einbettung von Aktivitäten verfügbar ist. (I10024) - Wir haben
SplitAttributes.BackgroundColor
eingeführt, um denDEFAULT
-Wert besser darzustellen. Es wird klargestellt, dass keine nicht deckende Hintergrundfarbe für Animationen unterstützt wird. Alle nicht deckenden Farben werden als Standard behandelt, d. h., es wird die aktuelle Hintergrundfarbe des Designfensters verwendet. (Ic6b95) - Ersetzen Sie
alwaysAllow()
undalwaysDisallow()
durchALWAYS_ALLOW
undALWAYS_DISALLOW
. (I3057b) - Fügen Sie APIs für
SplitRule
,SplitAttributes
undSplitAttributesCalculator
hinzu. (I92d23) - Fügen Sie
TestActivityStack
hinzu, umActivityStack
zum Testen zu erstellen.- Fügen Sie
TestSplitInfo
hinzu, umSplitInfo
zum Testen zu erstellen. (I8e779)
- Fügen Sie
- Möglichkeit zum Erstellen gefälschter
SplitAttributesCalculatorParams
hinzufügen, damit Entwickler ihre benutzerdefiniertenSplitAttributesCalculator
(Id4a6e) überprüfen können WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)
undWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)
hinzufügen (I66c7f)
Version 1.2.0-alpha02
7. Juni 2023
androidx.window:window-*:1.2.0-alpha02
wird veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.
Neue Funktionen
- Aktualisieren Sie die Test-API, um eine Konstante für nicht angegebene Faltfunktionen zu haben.
- Wenn Sie
WindowLayoutInfoPublishRule
überschreiben, werden alle Werte vonwindowLayoutInfo
überschrieben, einschließlich der kontextbasierten API.
API-Änderungen
- Konstante für nicht angegebene Mittelfalzung hinzufügen. (I7530c)
Fehlerkorrekturen
- Aktualisiere
WindowLayoutInfoPublishRule
, um Überschreibungen fürContext
basierend aufWindowLayoutInfo
zu unterstützen. (I2037a)
Version 1.2.0-alpha01
24. Mai 2023
androidx.window:window-*:1.2.0-alpha01
wird veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.
Neue Funktionen
Test-APIs für Activity Embedding und WindowLayoutInfoTracker
stabilisieren. ActivityEmbeddingRule
wurde zur stabilen Version hochgestuft.
WindowMetricsCalculatorRule
wurde zur stabilen Version hochgestuft.
Hilfsfunktionen zum Erstellen eines FoldingFeature
für Tests wurden in die stabile Version aufgenommen.
API-Änderungen
- Stabilisieren Sie
ActivityEmbeddingRule
, um Unittests für die Einbettung von Aktivitäten zu unterstützen. (I8d6b6) WindowMetrisCalculatorTestRule
ist stabil und ermöglicht das Erstellen von Stub-Messwerten für JVM-Tests. Wir empfehlen, für genaue Ergebnisse einen Emulator zu verwenden.- Test-APIs für
WindowLayoutInfo
stabilisieren, um JVM-Tests zu unterstützen. (Ie036e) - Fügen Sie
IntRange
für Test-Folding-Funktionswerte hinzu. (I69f7d)
Version 1.1
Version 1.1.0
7. Juni 2023
androidx.window:window-*:1.1.0
wird veröffentlicht. Version 1.1.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.0.0
Aktivitätseinbettung
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
wurde als boolesche Eigenschaft des Tags<application>
im App-Manifest hinzugefügt.isSplitSupported
wurde eingestellt und durchsplitSupportStatus
ersetzt, um detailliertere Informationen dazu zu liefern, warum die Split-Funktion nicht verfügbar ist.- Die verschachtelte Klasse
SplitController.SplitSupportStatus
wurde hinzugefügt, um Statuskonstanten für das AttributsplitSupportStatus
bereitzustellen. SplitController
wurde in mehrere Module refaktoriert:ActivityEmbeddingController
-Modul für APIs, die mitActivity
oderActivityStack
zusammenhängen.isActivityEmbedded
wurde vonSplitController
nachActivityEmbeddingController
verschoben.RuleController
-Modul fürEmbeddingRule
-bezogene Vorgänge:- Entfernte
SplitController
-APIs: clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
RuleController
APIs hinzugefügt:addRule()
: Fügt eine Regel hinzu oder aktualisiert die Regel mit demselben Tag.removeRule()
: Entfernt eine Regel aus der Sammlung registrierter Regeln.setRules()
– Erstellt eine Sammlung von Regeln.clearRules()
: Entfernt alle registrierten Regeln.parseRules()
: Parst Regeln aus XML-Regeldefinitionen.
- Für alle Module muss ein Kontext mit der Methode
#getInstance()
initialisiert werden. Dazu gehören:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- Die Klasse
EmbeddingAspectRatio
wurde hinzugefügt, um Konstanten für das Verhalten im Stil von Enums in Bezug auf das Seitenverhältnis des Displays zu definieren. - Die Klasse
SplitAttributes
wurde hinzugefügt, um das geteilte Layout zu definieren. SplitAttributes
-Rechnerfunktionen wurdenSplitController
hinzugefügt, um geteilte Layouts anzupassen:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
, um zu prüfen, ob dieSplitAttributesCalculator
-APIs auf dem Gerät unterstützt werden
- Das Feld
EmbeddingRule#tag
wurde hinzugefügt. - API-Updates in
SplitRule
:defaultSplitAttributes
hinzugefügt: Definiert das Standardlayout für die Aufteilung eines Splits. ErsetztsplitRatio
undlayoutDirection
.- Übersetzung der XML-Attribute
splitRatio
undsplitLayoutDirection
indefaultSplitAttributes
hinzugefügt. - Die Definitionen der Mindestabmessungen wurden geändert, sodass anstelle von Pixeln dichteunabhängige Pixel (dp) verwendet werden.
minHeightDp
mit dem Standardwert 600 dp wurde hinzugefügt.minWidth
wurde inminWidthDp
mit dem Standardwert 600 dp geändert.minSmallestWidth
wurde inminSmallestWidthDp
mit dem Standardwert 600 dp geändert.maxAspectRatioInHorizontal
mit dem StandardwertALWAYS_ALLOW
wurde hinzugefügt.maxAspectRatioInPortrait
mit dem Standardwert 1,4 wurde hinzugefügt.- Die verschachtelte Klasse
FinishBehavior
wurde definiert, um die Konstanten für das Abschlussverhalten zu ersetzen. - Die Property-Änderungen wurden auf die verschachtelte Builder-Klasse von
SplitPairRule
undSplitPlaceholderRule
angewendet.
SplitInfo#getSplitRatio()
wurde durchSplitInfo#getSplitAttributes()
ersetzt, um zusätzliche Informationen zu Splits bereitzustellen.
WindowLayout
WindowInfoTracker
: Unterstützung für experimentellen UI-Kontext ohne Aktivität hinzugefügt.- Der experimentelle UI-Kontext für nicht aktivierte Nutzer wurde
WindowMetricsCalculator
hinzugefügt.
Migrationsschritte
- Damit Aktivitäten in Splits angezeigt werden können, müssen Apps dem Manifest-Tag
<application>
die EigenschaftPROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
hinzufügen:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
So kann das System das Split-Verhalten für eine Anwendung im Voraus optimieren. SplitInfo
-Verhältnis- Prüfe, ob der aktuelle Split gestapelt ist:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- Prüfen Sie das aktuelle Verhältnis:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Prüfe, ob der aktuelle Split gestapelt ist:
- SplitController-Migrationen:
SplitController.getInstance()
wird zuSplitController.getInstance(Context)
geändert.SplitController.initialize(Context, @ResId int)
wird zuRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
geändert.SplitController.getInstance().isActivityEmbedded(Activity)
wird zuActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
geändert.SplitController.getInstance().registerRule(rule)
wird zuRuleController.getInstance(Context).addRule(rule)
geändert.SplitController.getInstance().unregisterRule(rule)
wird zuRuleController.getInstance(Context).removeRule(rule)
geändert.SplitController.getInstance().clearRegisteredRules()
wird zuRuleController.getInstance(Context).clearRules()
geändert.SplitController.getInstance().getSplitRules()
wird zuRuleController.getInstance(Context).getRules()
geändert.
SplitRule
-Property-Migrationen:- Für
minWidth
undminSmallestWidth
werden jetzt dichteunabhängige Pixel anstelle von Pixeln verwendet. Apps können den folgenden Aufruf verwenden:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
oder einfachminWith
in Pixeln durchdisplayMetrics#density
dividieren.
- Für
- Die Konstanten für das Abschlussverhalten müssen zu
FinishBehavior
-Konstanten der Enum-ähnlichen Klasse migriert werden:FINISH_NEVER
wird zuFinishBehavior.NEVER
geändert.FINISH_ALWAYS
wird zuFinishBehavior.ALWAYS
geändert.FINISH_ADJACENT
wird zuFinishBehavior.ADJACENT
geändert.
- Die Layoutrichtung muss zu
SplitAttributes.LayoutDirection
migriert werden:ltr
wird zuSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
geändert.rtl
wird zuSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
geändert.locale
wird zuSplitAttributes.LayoutDirection.LOCALE
geändert.splitRatio
muss zuSplitAttributes.SplitType.ratio(splitRatio)
migriert werden.
SplitPairRule.Builder
migrations:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
wird geändert zukotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
setLayoutDirection(layoutDirection)
- undsetSplitRatio(ratio)
-Änderungen ankotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
setFinishPrimaryWithSecondary
undsetFinishSecondaryWithPrimary
verwenden dieFinishBehavior
-Konstanten, die Enums ähneln. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.- Verwenden Sie
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
, um Splits auf Geräten im Hochformat anzuzeigen.
SplitPlaceholder.Builder
migrations:- Enthält nur die Parameter
filters
undplaceholderIntent
. Andere Eigenschaften werden in Setter verschoben. Weitere Informationen finden Sie unter „SplitPairRule.Builder-Migrationen“. setFinishPrimaryWithPlaceholder
verwendet die enum-ähnlichen KonstantenFinishBehavior
. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.setLayoutDirection(layoutDirection)
undsetSplitRatio(ratio)
werden zu:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Verwenden Sie
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
, um Splits auf Geräten im Hochformat anzuzeigen.
- Enthält nur die Parameter
Version 1.1.0-rc01
10. Mai 2023
androidx.window:window-*:1.1.0-rc01
wird veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.
Neue Funktionen
- Release
ActivityEmbedding
als stabile API. - Verschiedene Fehlerkorrekturen.
Version 1.1.0-beta02
5. April 2023
androidx.window:window-*:1.1.0-beta02
wird veröffentlicht. Version 1.1.0-beta02 enthält diese Commits.
Neue Funktionen
- Interne Fehlerbehebungen und Bereinigungen.
Version 1.1.0-beta01
22. März 2023
androidx.window:window-*:1.1.0-beta01
wird veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.
Aktivitätseinbettung
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
wurde als boolesche Eigenschaft des Tags<application>
im App-Manifest hinzugefügt.isSplitSupported
wurde eingestellt und durchsplitSupportStatus
ersetzt, um detailliertere Informationen dazu zu liefern, warum die Split-Funktion nicht verfügbar ist.- Die verschachtelte Klasse
SplitController.SplitSupportStatus
wurde hinzugefügt, um Statuskonstanten für das AttributsplitSupportStatus
bereitzustellen. SplitController
wurde in mehrere Module refaktoriert:ActivityEmbeddingController
-Modul für APIs, die mitActivity
oderActivityStack
zusammenhängen.isActivityEmbedded
wurde vonSplitController
nachActivityEmbeddingController
verschoben.RuleController
-Modul fürEmbeddingRule
-bezogene Vorgänge:- Entfernte
SplitController
-APIs:clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
RuleController
-APIs hinzugefügt:addRule()
: Fügt eine Regel hinzu oder aktualisiert die Regel mit demselben Tag.removeRule()
: Entfernt eine Regel aus der Sammlung registrierter Regeln.setRules()
– Erstellt eine Sammlung von Regeln.clearRules()
: Entfernt alle registrierten Regeln.- `parseRules()`: Parst Regeln aus XML-Regeldefinitionen.
- Für alle Module muss ein Kontext mit der Methode
#getInstance()
initialisiert werden. Dazu gehören:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- Die Klasse
EmbeddingAspectRatio
wurde hinzugefügt, um Konstanten für das Verhalten im Stil von Enums in Bezug auf das Seitenverhältnis des Displays zu definieren. - Die Klasse
SplitAttributes
wurde hinzugefügt, um das geteilte Layout zu definieren. SplitAttributes
-Rechnerfunktionen wurdenSplitController
hinzugefügt, um geteilte Layouts anzupassen:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
, um zu prüfen, ob die SplitAttributesCalculator-APIs auf dem Gerät unterstützt werden
- Das Feld
EmbeddingRule#tag
wurde hinzugefügt. - API-Updates in
SplitRule
:defaultSplitAttributes
hinzugefügt: Definiert das Standardlayout für die Aufteilung eines Splits. ErsetztsplitRatio
undlayoutDirection
.- Übersetzung der XML-Attribute
splitRatio
undsplitLayoutDirection
indefaultSplitAttributes
hinzugefügt. - Die Definitionen der Mindestabmessungen wurden geändert, sodass anstelle von Pixeln dichteunabhängige Pixel (dp) verwendet werden.
minHeightDp
mit dem Standardwert 600 dp wurde hinzugefügt.minWidth
wurde inminWidthDp
mit dem Standardwert 600 dp geändert.minSmallestWidth
wurde inminSmallestWidthDp
mit dem Standardwert 600 dp geändert.maxAspectRatioInHorizontal
mit dem StandardwertALWAYS_ALLOW
wurde hinzugefügt.maxAspectRatioInPortrait
mit dem Standardwert1.4
wurde hinzugefügt.- Die verschachtelte Klasse
FinishBehavior
wurde definiert, um die Konstanten für das Abschlussverhalten zu ersetzen. - Die Änderungen an den Attributen wurden auf die verschachtelte Klasse
Builder
vonSplitPairRule
undSplitPlaceholderRule
angewendet.
SplitInfo#getSplitRatio()
wurde durchSplitInfo#getSplitAttributes()
ersetzt, um zusätzliche Informationen zu Splits bereitzustellen.
WindowLayout
WindowInfoTracker
unterstützt jetzt auch UI-Kontext ohne Aktivität.- Nicht aktivitätsbezogener UI-Kontext wurde zu
WindowMetricsCalculator
hinzugefügt.
Migrationsschritte
- Damit Aktivitäten in Splits angezeigt werden können, müssen Apps dem Manifest-Tag
<application>
die EigenschaftPROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
hinzufügen:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
So kann das System das Split-Verhalten für eine Anwendung im Voraus optimieren. SplitInfo
-Verhältnis- Prüfe, ob der aktuelle Split gestapelt ist:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- Prüfen Sie das aktuelle Verhältnis:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Prüfe, ob der aktuelle Split gestapelt ist:
SplitController
migrations:SplitController.getInstance()
wird zuSplitController.getInstance(Context)
geändert.SplitController.initialize(Context, @ResId int)
wird zuRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
geändert.SplitController.getInstance().isActivityEmbedded(Activity)
wird zuActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
geändert.SplitController.getInstance().registerRule(rule)
wird zuRuleController.getInstance(Context).addRule(rule)
geändert.SplitController.getInstance().unregisterRule(rule)
wird zuRuleController.getInstance(Context).removeRule(rule)
geändert.SplitController.getInstance().clearRegisteredRules()
wird zuRuleController.getInstance(Context).clearRules()
geändert.SplitController.getInstance().getSplitRules()
wird zuRuleController.getInstance(Context).getRules()
geändert.
SplitRule
-Property-Migrationen:- Für
minWidth
undminSmallestWidth
werden jetzt dichteunabhängige Pixel anstelle von Pixeln verwendet. Apps können den folgenden Aufruf verwenden:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
oder einfachminWith
in Pixeln durchdisplayMetrics#density
dividieren.
- Für
- Die Konstanten für das Abschlussverhalten müssen zu
FinishBehavior
-Konstanten der Enum-ähnlichen Klasse migriert werden:FINISH_NEVER
wird zuFinishBehavior.NEVER
geändert.FINISH_ALWAYS
wird zuFinishBehavior.ALWAYS
geändert.FINISH_ADJACENT
wird zuFinishBehavior.ADJACENT
geändert.
- Die Layoutrichtung muss zu
SplitAttributes.LayoutDirection
migriert werden:ltr
wird zuSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
geändert.rtl
wird zuSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
geändert.locale
wird zuSplitAttributes.LayoutDirection.LOCALE
geändert.splitRatio
muss zuSplitAttributes.SplitType.ratio(splitRatio)
migriert werden.
SplitPairRule.Builder
migrations:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
wird geändert zukotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
setLayoutDirection(layoutDirection)
undsetSplitRatio(ratio)
werden inkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
geändert.setFinishPrimaryWithSecondary
undsetFinishSecondaryWithPrimary
verwenden dieFinishBehavior
-Konstanten, die Enums ähneln. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.- Verwenden Sie
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
, um Splits auf Geräten im Hochformat anzuzeigen.
SplitPlaceholder.Builder
migrations:- Enthält nur die Parameter
filters
undplaceholderIntent
. Andere Eigenschaften werden in Setter verschoben. Weitere Informationen finden Sie unter „SplitPairRule.Builder-Migrationen“. setFinishPrimaryWithPlaceholder
verwendet die enum-ähnlichen KonstantenFinishBehavior
. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.setLayoutDirection(layoutDirection)
undsetSplitRatio(ratio)
werden zu:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Verwenden Sie
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
, um Splits auf Geräten im Hochformat anzuzeigen.
- Enthält nur die Parameter
Version 1.1.0-alpha06
22. Februar 2023
androidx.window:window-*:1.1.0-alpha06
wird veröffentlicht. Version 1.1.0-alpha06 enthält diese Commits.
Neue Funktionen
- Experimentelle Version zum Abrufen von
WindowLayoutInfo
aus einem UI-Kontext verfügbar machen.
API-Änderungen
- Fügen Sie
splitSupportStatus
hinzu, um anzugeben, ob die Einbettung von Aktivitäten verfügbar ist. (I10024) - Die API für den UI-Kontext
WindowLayoutInfo
wird als experimentell gekennzeichnet. (I58ee0) - Die
WindowAreaController
und die APIs werden eingeführt, um denRearDisplay
-Modus zu aktivieren, mit dem das aktuelle Fenster auf das Display verschoben wird, das mit der Rückkamera ausgerichtet ist. (Iffcbf) - Standardhintergrundfarbe aktualisieren. (I1ac1b)
SplitAttributes
-Parameter hinzufügen (I18bdd)- Fügen Sie APIs für
SplitRule
,SplitAttributes
undSplitAttributesCalculator
hinzu. (I92d23) - APIs für
maxAspectRatio
verbessern:- Ersetzen Sie
alwaysAllow()
undalwaysDisallow()
durchALWAYS_ALLOW
undALWAYS_DISALLOW
. - Aktualisieren Sie die API-Dokumentation von @see mit der eigenständigen Dokumentation. (I3057b)
- Ersetzen Sie
- Die folgenden Konstruktoren werden aus öffentlichen APIs entfernt, da sie nicht von Apps aufgerufen werden sollen.
SplitInfo
-KonstruktorActivityStack
-Konstruktor (Ide534)
SplitRule
dauert jetztmaxAspectRatioInPortrait/Landscape
. Aktivitäten können nur aufgeteilt werden, wenn das Seitenverhältnis der übergeordneten Grenzen kleiner oder gleich dem angefordertenmaxAspectRatio
ist. (Ia5990)- Ändern Sie
RuleController#parseRules
in statisch (I785df). - APIs für ActivityEmbedding verbessern
- API-Benennung anpassen – „add“/„remove“ für mehrere Instanzen verwenden:
registerRule
wird zuaddRule
geändertunregisterRule
wird zuremoveRule
geändert- Ersetzen Sie
getSplitRules
durchgetRules
, daActivityRule
keine Aufteilungsregel ist. - Fügen Sie
RuleController#setRules
hinzu, um mehrere Regeln festzulegen. - Extrahieren Sie regelbezogene APIs aus
SplitController
in das SingletonRuleController
. Die regionalen Gewinner sind: addRule
removeRule
getRules
setRules
clearRules
parseRules
- Extrahieren Sie
#isActivityEmbedded
ausSplitController
in das SingletonActivityEmbeddingController
. Die regionalen Gewinner sind: isActivityEmbedded
- Entfernen Sie
SplitController#initialize
. Wenn Sie Regeln aus einer XML-Datei festlegen möchten, verwenden SieRuleController#parseRules
und#setRules
. Vor dieser Änderung:SplitController.initialize(context, R.xml.static_rules)
Nach dieser Änderung:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
- Wir unterscheiden nicht mehr zwischen statischen Regeln und Laufzeitregeln. Durch den Aufruf von
#clearRules
werden jedoch alle Regeln gelöscht, unabhängig davon, ob sie mit statischen XML-Regeldefinitionen oder zur Laufzeit registriert wurden. Wenn Sie das alte Verhalten vonSplitController#clearRegisteredRules
beibehalten möchten, rufen SieRuleController#parseRules
mit der XML-Ressourcen-ID auf und rufen SieRuleController#setRules
auf, um die Regeln wieder festzulegen. Vor dieser Änderung:SplitController.getInstance(context).clearRegisteredRules()
Nach dieser Änderung:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
(Ib3967)
- SplitRule-APIs verbessern:
- Verwende für
SplitRule
Mindestabmessungen in DP anstelle von Pixeln. - Refactoring für
SplitRule
Builder, damit Mindestdimensionen optional sind. (I95f17)
- Verwende für
- Kontext zum Initialisieren von
SplitController
übergeben (I42549) SplitRule#layoutDir
wurde in#layoutDirection
undSplitRule Builder#setLayoutDir
inBuilder#setLayoutDirection
umbenannt. (I3f6d1)
Version 1.1.0-alpha04
9. November 2022
androidx.window:window-*:1.1.0-alpha04
wird veröffentlicht. Version 1.1.0-alpha04 enthält diese Commits.
Neue Funktionen
- Stellen Sie eine Methode bereit, mit der ermittelt werden kann, ob ein
ActivityStack
fürActivityEmbedding
leer ist. - Experimentelle API-Tags wurden aus
ActivityEmbedding
-APIs entfernt. ActivityRule
-Konstruktor ausblenden, daBuilder
die bevorzugte Methode zum Erstellen ist.- Fügen Sie eine experimentelle Methode hinzu, um
WindowInsets
fürWindowMetrics
zu erhalten. - Aktualisieren Sie
SplitPlaceholderFinishBehavior
, um zu verhindern, dass der Platzhalter fertiggestellt wird. Das Vervollständigen des Platzhalters hat zu einem verwirrenden Verhalten geführt.
API-Änderungen
- Machen Sie „val“
isEmpty
öffentlich, um „fun“isEmpty
zu ersetzen. - Benennen Sie Aktivitäten mit dem Parameter
ActivityStack
inactivitiesInProcess
um. (Ia5055) - Entferne
ActivityFilter#matchesClassName
undActivityFilter#matchesClassNameOrWildCard
, da sie verwirrend sind. - Fügen Sie
ActivityFilter#componentName
undActivityFilter#intentAction
hinzu, damit der Anrufer verschiedene Filter unterscheiden kann (I41f22). - Entfernen Sie die
@Deprecated
-APIs aus der experimentellen API (I216b3). @ExperimentalWindowApi
für Activity Embedding APIs entfernen (I69ebe)ActivityRule
-Konstruktor ausblenden, stattdessen Builder verwenden. (If4eb6)- Fügen Sie APIs hinzu, um zu prüfen, ob eine Aktivität Teil der
ActivityFilter
ist. (Ia43cf) - API-Dateien aktualisieren, um Änderungen in den Klassen
WindowMetrics
undWindowMetricsCalculatorCompat
zu berücksichtigen (I667fe) - Javadoc und Klassenname der Property
ActivityEmbedding
aktualisieren (Ia1386) - Hinzufügen von
ActivityEmbedding
-Eigenschaftstagnamen zur Verwendung in „AndroidManifest.xml“ (Id1ad4) - Die neuen APIs
SplitPlaceholderFinishBehavior
undSplitPlaceholderRule.finishPrimaryWithPlaceholder
wurden hinzugefügt. Sie ersetzen die vorhandene APISplitPlaceholderRule.finishPrimaryWithSecondary
, mit der definiert wird, wann Platzhalteraktivitäten abgeschlossen sind und wie sich zugehörige Aktivitäten in Activity Embedding verhalten sollen. (I64647)
Fehlerkorrekturen
- Die
WindowAreaController
und die APIs werden eingeführt, um denRearDisplay
-Modus zu aktivieren, mit dem das aktuelle Fenster auf das Display verschoben wird, das mit der Rückkamera ausgerichtet ist. (I388ab)
Version 1.1.0-alpha03
27. Juli 2022
androidx.window:window-*:1.1.0-alpha03
wird veröffentlicht. Version 1.1.0-alpha03 enthält diese Commits.
Neue Funktionen
- Aktualisieren Sie die Standardwerte für Einbettungsregeln.
API-Änderungen
- Standardwerte für Eigenschaften von Einbettungsregeln aktualisieren (Ic4d35)
Version 1.1.0-alpha02
11. Mai 2022
androidx.window:window-*:1.1.0-alpha02
wird veröffentlicht. Version 1.1.0-alpha02 enthält diese Commits.
Neue Funktionen
- Adapterbibliotheken zur Unterstützung von Java und RxJava veröffentlichen
Version 1.1.0-alpha01
11. Mai 2022
androidx.window:window-*:1.1.0-alpha01
wird veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.
Neue Funktionen
- Adapter für Java und RxJava veröffentlichen
Version 1.1.0-alpha01
20. April 2022
androidx.window:window:1.1.0-alpha01
wird veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.
Neue Funktionen
- Es wurde ein Fehler behoben, durch den beim Ausführen einer App im Hintergrund keine Informationen zu Faltfunktionen mehr ausgegeben wurden.
- Die experimentelle ActivityEmbedding API wird weiterentwickelt.
API-Änderungen
- Eine öffentliche API, mit der geprüft werden kann, ob eine Aktivität eingebettet wird. (I39eb7)
Fehlerkorrekturen
- APIs zum Anpassen des Abschlussverhaltens für Container in Aktivitätsaufteilungen hinzugefügt (I1a1e4)
- Es wurde eine neue Konfigurationsoption für Regeln zum Aufteilen von Aktivitäten hinzugefügt. (Iec6af)
Version 1.0
Version 1.0.0
26. Januar 2022
androidx.window:window-*:1.0.0
wird veröffentlicht. Version 1.0.0 enthält diese Commits.
Wichtige Funktionen von Version 1.0.0
- Unterstützung für Falt-Smartphones über
WindowInfoTracker
undFoldingFeature
.WindowMetricsCalculator
, um die aktuellen WindowMetrics zu berechnen.
Version 1.0.0-rc01
15. Dezember 2021
androidx.window:window-*:1.0.0-rc01
wird veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.
Neue Funktionen
- Unterstützung für Falt-Smartphones über
WindowInfoTracker
hinzugefügt. - Es wurden Methoden zum Berechnen des aktuellen und maximalen
WindowMetrics
hinzugefügt. - Unterstützende Test-APIs hinzufügen
Version 1.0.0-beta04
17. November 2021
androidx.window:window-*:1.0.0-beta04
wird veröffentlicht. Version 1.0.0-beta04 enthält diese Commits.
Neue Funktionen
- Benennen Sie WindowInfoRepository in WindowInfoTracker um.
- „Activity“ als explizite Methodenabhängigkeit für „WindowInfoTracker“ festlegen.
- Eine einfache TestRule für WindowMetricsCalculator wurde hinzugefügt, um Entwickler zu unterstützen, die Robolectric verwenden.
API-Änderungen
- Erweiterungen extrahieren (I25a5f)
- isEmpty in ActivityStack hinzufügen (I5a4e6)
- Benennen Sie WindowInfoRepository in WindowInfoTracker um.
- Aktualisieren Sie die Java-/RxJava-/Testing-Abhängigkeiten entsprechend. (I0da63)
- Fügen Sie eine Testregel für einen einfachen WindowMetricsCalculator hinzu. (Ibacdb)
Version 1.0.0-beta03
27. Oktober 2021
androidx.window:window-*:1.0.0-beta03
wird veröffentlicht. Version 1.0.0-beta03 enthält diese Commits.
Neue Funktionen
- Experimentelle APIs zum Einbetten von Aktivitäten hinzugefügt. In dieser ersten Layoutversion können zwei Aktivitäten nebeneinander angezeigt werden.
API-Änderungen
- Die currentWindowMetrics API wurde entfernt, da wir sie nicht genau bereitstellen können. Verwenden Sie stattdessen „WindowMetricsCalculator“ (Icda5f).
- Die Extensions API wurde aktualisiert. (Ica92b)
- Es wurde eine Schnittstelle für eine neue Funktion hinzugefügt, mit der Aktivitäten eingebettet und nebeneinander im übergeordneten Aufgabenfenster angezeigt werden können. (I5711d)
- Die Konstruktoren für WindowMetrics und WindowLayoutInfo wurden ausgeblendet. Verwenden Sie stattdessen die Test-APIs. (I5a1b5)
- Eine API zum Erstellen gefälschter WindowLayoutInfo-Objekte hinzufügen. (I4a2fd)
Fehlerkorrekturen
- Ein Speicherleck wurde behoben. (I3fc79, b/202989046)
Version 1.0.0-beta02
1. September 2021
androidx.window:window-*:1.0.0-beta02
wird veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.
Neue Funktionen
- Fügen Sie eine experimentelle Annotation hinzu, um experimentelle APIs zu annotieren. (I9f1b6)
- Fügen Sie eine Testmethode hinzu, um ein Test-FoldingFeature zu erstellen, das ein Rechteck akzeptiert. Das erleichtert das Testen mit Robolectric im Gegensatz zu einer tatsächlichen Aktivität. (Id1cca)
Version 1.0.0-beta01
18. August 2021
androidx.window:window-*:1.0.0-beta01
wird veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.
Neue Funktionen
- Alte Konstanten wurden entfernt und
FoldingFeature
wurde in eine Schnittstelle umgewandelt.
API-Änderungen
- Entfernen Sie alte Konstanten und machen Sie FoldFeature zu einer Schnittstelle. (I9a2d5)
Fehlerkorrekturen
- Bibliotheken, die von der
Test Core
-Bibliothek abhängen, wurden auf Version1.4.0
aktualisiert und funktionieren jetzt mit der Android-Plattformversion S. (I88b72, b/189353863)
Version 1.0.0-alpha10
4. August 2021
androidx.window:window-*:1.0.0-alpha10
wird veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.
Neue Funktionen
- Benennen Sie WindowInfoRepo in WindowInfoRepository um und passen Sie die entsprechenden Klassen / Dateien an.
- Messwerte für das aktuelle Fenster in einen Flow in WindowInfoRepository konvertieren, da sich der Wert im Laufe der Zeit ändert.
- WindowInfoRepoJavaAdapter in WindowInfoRepoCallbackAdapter umbenennen
- Hilfsmethode zum Erstellen von FoldingFeature-Testobjekten hinzufügen
- Pakete aktualisieren, um Klassen basierend auf dem unterstützten Feature zu gruppieren.
API-Änderungen
- Benennen Sie „ActivityExt“ in „ActivityExtensions“ um und ändern Sie „Repo“ in „Repository“. (I61a16)
- Pakete für Kurse aktualisieren (I23ae2)
- WindowMetrics aus WindowInfoRepo entfernen (I24663)
- WindowManager entfernen und WindowInfoRepo verwenden
- WindowBackend intern machen. (I06d9a)
- Fenstermesswerte in Flow umwandeln
- Java-Adapter in „WindowInfoRepoCallbackAdapter“ umbenennen
- Entfernen Sie „callbackFlow“, damit keine experimentellen APIs mehr verwendet werden. (Ia4d15)
- Es wurde eine Hilfsmethode zum Erstellen von Testanzeigefunktionen hinzugefügt.
- Änderung von „occlusionMode“ zu „occlusionType“ (If4cff)
Fehlerkorrekturen
- Ein Proguard-Fehler wurde behoben, bei dem die Core-Bibliothek entfernt wurde.
- Es wurde ein Fehler behoben, durch den WindowLayoutInfo nicht an zusätzliche Abonnenten gesendet wurde.
- Ein Fehler wurde behoben, durch den Konfigurationsänderungen keine Aktualisierungen der Faltfunktion ausgelöst haben.
Version 1.0.0-alpha09
30. Juni 2021
androidx.window:window-*:1.0.0-alpha09
wird veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.
Neue Funktionen
- Von Ganzzahlkonstanten zu unbegrenzten Enums wechseln.
- Es wurde ein Test-Tool zum Erstellen von Test-Folding-Funktionen hinzugefügt.
API-Änderungen
- Es wurde eine Hilfsmethode zum Erstellen von Testanzeigefunktionen hinzugefügt. (I3cf54)
- Ändern Sie
occlusionMode
inocclusionType
.
- Ändern Sie
Fehlerkorrekturen
- Gibt den Anfangswert aus, wenn mehrere Nutzer der Datenstreams hinzugefügt werden.
Version 1.0.0-alpha08
16. Juni 2021
androidx.window:window-*:1.0.0-alpha08
wird veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.
Neue Funktionen
- Es wurde ein Testartefakt veröffentlicht, um das Testen bei Verwendung von WindowInfoRepository zu erleichtern. Verwenden Sie WindowInfoRepository, um Informationen zu DisplayFeatures und WindowMetrics abzurufen. (I57f66, Ida620)
Version 1.0.0-alpha07
2. Juni 2021
androidx.window:window-*:1.0.0-alpha07
wird veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.
Neue Funktionen
- Migrieren Sie die Kernfensterbibliothek zu Kotlin. Wir werden in Zukunft Coroutinen und Suspend-Funktionen verwenden, um asynchrone Daten bereitzustellen.
- WindowInfoRepo als Hauptinteraktionspunkt zum Abrufen der WindowMetrics und des Streams von WindowLayoutInfo hinzufügen.
- Neues
window-java
-Artefakt, um Java-freundliche APIs zum Registrieren und Aufheben der Registrierung von Callbacks bereitzustellen. - Neue
window-rxjava2
- undwindow-rxjava3
-Artefakte zum Bereitstellen von RxJava-angepassten APIs.
API-Änderungen
- Fügen Sie
WindowServices
hinzu, um Abhängigkeiten einheitlich bereitzustellen.- Coroutine-basierte API zum Abrufen von Informationen zum Fensterlayout hinzugefügt (Iab70f)
- Die Core Window Manager-Bibliothek wird zu Kotlin migriert. (Icca34)
Fehlerkorrekturen
- Neue Datenklasse zur Darstellung von Feature-Grenzen hinzufügen. (I6dcd1)
Version 1.0.0-alpha06
5. Mai 2021
androidx.window:window:1.0.0-alpha06
wird veröffentlicht. Version 1.0.0-alpha06 enthält diese Commits.
Neue Funktionen
- Wir haben mit der Migration zu Kotlin begonnen und werden sie im nächsten Release abschließen.
- „DeviceState“ wurde aus der öffentlichen API entfernt. Verwenden Sie stattdessen „FoldingFeature“.
- Wir haben
STATE_FLIPPED
aus den FoldingFeature-Status entfernt, da es derzeit von keinem Anwendungsfall unterstützt wird. - Außerdem haben wir weitere eingestellte APIs entfernt.
API-Änderungen
- Kotlin als Abhängigkeit hinzufügen
- Kernbibliothek zu Kotlin migrieren. (Idd995)
- Der Builder
DisplayFeature
wurde entfernt. (I61fa4) DeviceState
wurde aus der öffentlichen API entfernt. Verwenden Sie stattdessenFoldingFeature
. (Id6079)- Entfernen Sie den Gerätestatus-Callback aus Erweiterungen. (I5ea83)
- Entfernen Sie
STATE_FLIPPED
aus FoldingFeature. (I9c4e1) - Entfernen Sie verworfene Registrierungsmethoden. (Ib381b)
Version 1.0.0-alpha05
24. März 2021
androidx.window:window:1.0.0-alpha05
wird veröffentlicht. Version 1.0.0-alpha05 enthält diese Commits.
Neue Funktionen
Wir haben FoldingFeature praktische Methoden hinzugefügt, damit Apps erkennen können, ob sich das Feature trennt oder verdeckt, und die Ausrichtung des Scharniers bestimmen können. Außerdem wird der Scharniertyp ausgeblendet, damit
Wir entfernen die synchronen Lesemethoden aus WindowManager. Synchrone Lesemethoden sind fehleranfällig, da es eine implizite Race Condition gibt. Registrieren Sie Listener und Callbacks, um Updates zu WindowLayoutInfo zu erhalten.
API-Änderungen
- Praktische Methoden für die Arbeit mit FoldingFeatures hinzufügen (Ie733f)
- Synchrone Lesemethoden aus WindowManager entfernen (I96fd4)
Version 1.0.0-alpha04
10. März 2021
androidx.window:window:1.0.0-alpha04
wird veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.
Neue Funktionen
- Es wurde ein Fehler behoben, bei dem keine WindowLayoutInfo ausgegeben wurde, wenn keine OEM-Implementierung vorhanden war. Jetzt geben wir ein leeres WindowLayoutInfo aus.
- Ein Fehler wurde behoben, durch den der Status nicht richtig aktualisiert wurde, wenn sich der Status des Scharniers änderte, während die App im Hintergrund ausgeführt wurde. Der Status sollte jetzt konsistent sein.
- Wir haben unsere ProGuard-Dateien aktualisiert, um Warnungen von Laufzeitabhängigkeiten zu ignorieren.
Fehlerkorrekturen
- Gibt einen leeren Wert aus, wenn die OEM-Bibliothek fehlt. (Ide935)
Version 1.0.0-alpha03
18. Februar 2021
androidx.window:window:1.0.0-alpha03
wird veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.
Neue Funktionen
- Gibt einen leeren Wert für WindowLayoutInfo aus, wenn die OEM-Implementierung leer ist. Dadurch sollte es einfacher sein, die Bibliothek auf mehr Geräten zu verwenden. Da die APIs asynchron sind, wird weiterhin empfohlen, dass Apps defensiven Code schreiben und nach einem Zeitlimit einen Standardwert ausgeben. Wir können keine Garantien für OEM-Implementierungen geben und der Anfangswert kann sich verzögern.
Fehlerkorrekturen
- Gibt einen leeren Wert aus, wenn die OEM-Bibliothek fehlt. (Ide935)
Version 1.0.0-alpha02
27. Januar 2021
androidx.window:window:1.0.0-alpha02
wird veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.
Neue Funktionen
Wir haben einige APIs eingestellt, um die API zu optimieren und Fehler zu reduzieren. Einige wichtige Beispiele sind das Entfernen der synchronen Lesevorgänge aus WindowManager und die Einstellung von DeviceState. Synchrones Lesen kann zu Race-Bedingungen und einer falschen Benutzeroberfläche führen.
Wir haben DisplayFeature in eine Schnittstelle umgewandelt, die künftig von anderen Funktionen implementiert wird. Das erste Feature ist „FoldingFeature“, das jetzt für eine Displayfalte oder ein Scharnier steht. Sie enthält auch den Status des Scharniers, der DeviceState ersetzt.
WindowMetrics wurde in Android 11 eingeführt, um Entwicklern eine einfache Möglichkeit zu bieten, Messwerte für ein Fenster abzufragen, z. B. seine Position und Größe auf dem Bildschirm sowie alle System-Insets. Wir haben die API in diesem Release rückportiert, damit Entwickler WindowMetrics nutzen und weiterhin ältere Android-Versionen unterstützen können. WindowMetrics können über die APIs
WindowManager#getCurrentWindowMetrics()
und WindowManager#getMaximumWindowMetrics() abgerufen werden.
API-Änderungen
- APIs einstellen, die in der nächsten Alphaversion (Ib7cc4) entfernt werden
ExtensionInterface
wurde aktualisiert, um explizite Activity-Referenzen zu akzeptieren. (I07ded)- Einführung der WindowMetrics API. (I3ccee)
- Synchrone Lesemethoden aus WindowManager entfernen (I69983)
- Das ExtensionWindowBackend-Paket ist jetzt geschützt. (Ied208)
Fehlerkorrekturen
ExtensionInterface
-APIs aktualisieren, um visuelle Kontexte zu akzeptieren (I8e827)
Externe Beiträge
- DeviceState und WindowLayoutInfo werden zusammengeführt, um den Zugriff auf Daten zu erleichtern. (Id34f4)
Version 1.0.0-alpha01
27. Februar 2020
androidx.window:window:1.0.0-alpha01
und androidx.window:window-extensions:1.0.0-alpha01
werden veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.
Dies ist die erste Version der Window Manager-Bibliothek.
Neue Funktionen
DisplayFeature
: Diese neue API erkennt Unterbrechungen auf durchgehend flachen Oberflächen wie Scharniere oder Falten.DeviceState
: Diese neue API gibt die aktuelle Ausrichtung des Smartphones aus einer Liste definierter Ausrichtungen zurück, z. B.CLOSED
,OPENED
,HALF_OPENED
usw.