WindowManager
Letzte Aktualisierung | Stabile Version | Release Candidate | Beta-Ausgabe | Alphaversion |
---|---|---|---|---|
16. Oktober 2024 | 1.3.0 | - | - | 1.4.0-alpha05 |
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 erforderlichen Artefakte hinzu:
Cool
dependencies { implementation "androidx.window:window:1.3.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.3.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.3.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.3.0" // For testing implementation "androidx.window:window-testing:1.3.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.3.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.3.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.3.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.3.0") // For testing implementation("androidx.window:window-testing:1.3.0") }
Feedback
Ihr Feedback hilft uns, Jetpack zu verbessern. Bitte teilen Sie uns mit, wenn Sie neue Probleme feststellen 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 einem vorhandenen Problem Ihre Stimme geben, indem Sie auf die Schaltfläche mit dem Stern klicken.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Version 1.4
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 das
widthDp
und dasheightDp
ausWindowMetrics
abzurufen.
API-Änderungen
- Fügen Sie
widthDp
undheightDp
zuWindowMetrics
hinzu. (Ide026) - Die experimentelle
WindowInsets
API wurde entfernt. (I68a71) - Namen der Grenzwertprüfung auf
isAtLeast
(Ib0ab7) aktualisieren
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 hinzugefügt, mit der
WindowSizeClass
ausWindowMetrics
berechnet werden kann. (874dba) - Ändern Sie die
WindowSizeClass
-Methoden zucontainsWidthDp
,containsHeightDp
undcontainsWindowSizeDp
, um für Klarheit zu sorgen. (fa760d) - Konvertieren Sie
WindowAreaController
in eine abstrakte Basisklasse. (I90893)
Fehlerkorrekturen
- Unterstützung für relative Begrenzungen beim Erstellen eines Tests
FoldingFeature
hinzufügen (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 Dienstmethode hinzu, um eine
WindowSizeClass
ausWindowMetrics
abzurufen. (I83f1f) - Benennen Sie
isAtLeast
incontainsBreakpoint
um. (I85b47) - Fügen Sie
computeWindowSizeClass
mithilfe von Floats eine Überladung hinzu. (I3dcb2, b/364677934, b/364677802, b/364680886)
Fehlerkorrekturen
- Fügen Sie dem Standard-
WindowSizeClass
-Haltepunktsatz fehlende Haltepunkte hinzu. - Ein Fehler wurde behoben, durch den kompakte Dimensionen in einigen Fällen nicht richtig 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
hinzufügen
- Öffne den Konstruktor für
WindowSizeClass
, damit Entwickler ihren eigenen verwenden können. - Fügen Sie
isAtLeast
-Dienstmethoden hinzu, damit Entwickler eine Reihe vonWindowSizeClass
-Werten verarbeiten können. - Fügen Sie eine Erweiterungsfunktion für
Set<WindowSizeClass>
hinzu, um den besten Übereinstimmungsvorschlag aus dem Set zu berechnen. - Fügen Sie Konstanten für die von Android empfohlenen Haltepunkte hinzu.
- Fügen Sie den Haltepunktsatz hinzu, der den von Android empfohlenen Haltepunkten entspricht.
API-Änderungen
- Aktualisieren Sie die Namen der Grenzwertmethoden für
WindowSizeClass
. (If89a6) - Aktualisieren Sie die
WindowSizeClass
API, damit in Zukunft neue Grenzwertwerte hinzugefügt werden können. Anstatt absolute Grenzwerte zu verwenden, verwenden wir die Untergrenzen. Wir empfehlen Entwicklern, bei der Verarbeitung vonWindowSizeClass
Untergrenzwertprüfungen durchzuführen. Die vorhandenenWindowWidthSizeClass
undWindowHeightSizeClass
werden eingestellt, da sie nicht weiter entwickelt 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 der Aktivitätsstapel-Anpinning-Funktion können Apps Inhalte in einem Container anpinnen und die Navigation davon getrennt halten.
- Mithilfe des interaktiven Trennstrichs können Apps in einer geteilten Ansicht einen festen oder verschiebbaren Trennstrich zwischen den beiden Aktivitäten anzeigen.
- Mit der Abdunkelung von Vollbilddialogfeldern können Apps den Bereich für die Abdunkelung des Dialogfelds angeben, um entweder das gesamte Aufgabenfenster oder nur den Container abzudunkeln, in dem das Dialogfeld angezeigt wird.
- Mit dem Callback für Informationen zum eingebetteten Aktivitätsfenster können Apps kontinuierlich Updates zum eingebetteten Aktivitätsfenster erhalten.
- Mit dem Eingebetteten Animationshintergrund können Apps den Animationshintergrund angeben, um die Qualität der Übergangsanimation zu verbessern, wenn
ActivityEmbedding
verwendet wird. - Durch die verbesserte Verwaltung des ActivityStacks haben Apps mehr Kontrolle über die
ActivityStacks
, wennActivityEmbedding
verwendet wird. Dazu gehören: - Starten einer Aktivität in einem bestimmten
ActivityStack
ActivityStack
fertigstellen
API-Änderungen
Eine neue API
WindowInfoTracker#supportedPostures
:- Eine API, mit der ermittelt wird, ob das Gerät den Modus „Auf dem Tisch“ für faltbare Geräte unterstützt. Füge WindowAreaSessionPresenter#getWindow hinzu
Fügen Sie APIs hinzu, um die
ActivityStack
-Anpinning-Funktion zu unterstützen:SplitPinRule
-KursSplitController#pinTopActivityStack
SplitController#unpinTopActivityStack
APIs hinzufügen, um den interaktiven Trennstrich zu aktivieren und zu konfigurieren
DividerAttributes
-KursSplitAttributes.Builder#setDividerAttributes
APIs hinzufügen, um
EmbeddingConfiguration
undDimAreaBehavior
für Dialogfelder festzulegenEmbeddingConfiguration
-KursDimAreaBehavior
-KursActivityEmbeddingController#setEmbeddingConfiguration
APIs hinzufügen, um Informationen zum eingebetteten Aktivitätszeitraum zu erhalten
EmbeddedActivityWindowInfo
-KursActivityEmbeddingController#embeddedActivityWindowInfo
APIs hinzufügen, um den Hintergrund der Einbettungsanimation festzulegen
EmbeddingAnimationBackground
SplitAttributes.Builder#setAnimationBackground
APIs hinzufügen, um
ActivityStacks
fertigzustellenActivityEmbeddingController#finishActivityStacks
APIs zum Festlegen der Einführung hinzufügen
ActivityStack
ActivityEmbeddingOptions#setLaunchingActivityStack
Die folgenden APIs sind stabil und nicht mehr experimentell:
ActivityEmbeddingController#invalidateVisibleActivityStacks
(verschoben von 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 bei einer aktiven Sitzung „NICHT VERFÜGBAR“ anstelle von „AKTIV“ zurückgegeben wurde.
- Die Unterstützung für
transferActivityToWindowArea
auf Geräten mit einervendorApiLevel
von 2 wurde aufgrund instabiler API-Unterstützung entfernt. - Einführung einer API, mit der sich der Trennstrich für eingebettete Aktivitäten per Drag-and-drop in den Vollbildmodus ziehen lässt. (I645c9)
- Apps dürfen
ActivityEmbedding
-Animationen über Animationsparameter fürSplitAttributes
deaktivieren. (Idc01a) - Die manuelle Kennzeichnung des Zugriffs auf neue Plattform-APIs wurde entfernt, da dies bei Verwendung von R8 mit AGP 7.3 oder höher (z.B. R8 Version 3.3) und für alle Builds bei Verwendung von AGP 8.1 oder höher (z.B. D8 Version 8.1) automatisch über die API-Modellierung erfolgt. Kunden, 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)
- Ermöglichen Sie Erweiterungen, Animationen für
SplitAttributes
zu 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 festen oder verschiebbaren Trennstrichs für die Aufteilung (Ia7a78)
- Dichte für
WindowMetrics
(Id6723) hinzugefügt - Fügen Sie die API hinzu, um die
SupportedPostures
abzurufen. (If557a) setLaunchingActivityStack
aus der experimentellen API entfernen (I191cf)ActivityEmbeddingController#embeddedActivityWindowInfo
(I24312) einführen#getToken
einstellen und#getActivityStackToken
hinzufügen (Ie0471)- Einführung eines Callback-Adapters für die
embeddedActivityWindowInfo
-Flow API (Ida77f) - Callback-Adapter für die OverlayInfo-API hinzufügen (I7264f)
- Geben Sie
WindowSdkExtensionsRule
ein, umextensionsVersion
für Tests zu überschreiben. (Ifb928) - –
#setLaunchingActivityStack
zu Bundle migrieren, um mitActivityOptionsCompat
-Nutzungen kompatibel zu sein- Nutzer sollten
activityOptions.toBundle
anstelle vonActvityOptions
selbst übergeben. - Entfernen Sie
#setLaunchingActivityStack(Activity)
. Nutzer sollten zuActivityEmbeddingController#getActivityStac(Activity)
migrieren, um eineActivityStack
zu erhalten, und dieActivityStack
an#setLaunchingActivityStack
weitergeben. (Ie0ccc)
- Nutzer sollten
- –
ActivityStack.Token
undSpltInfo.Token
als Kennung für die Kommunikation zwischen WM Jetpack und Erweiterungen einführen- APIs, die ein Token anstelle von IBinder annehmen/zurückgeben, werden eingestellt oder ersetzt. (I12b24)
- –
ActivityEmbeddingController#invalidateVisibleActivityStacks
einführenSplitController#invalidateTopVisibleSplitAttributes
entfernen, da die Funktion in#invalidateVisibleActivityStacks
zusammengeführt wird (I02ef5)
- – API zum Festlegen der Einbettungskonfiguration hinzufügen (I59a4a)
- –
ActivityStack
androidx.Window
APIs anpinnen/loslösen- Demo-App wird aktualisiert, damit oben angepinnte Elemente wieder gelöst werden können
ActivityStack
(I24dd3)
- Demo-App wird aktualisiert, damit oben angepinnte Elemente wieder gelöst werden können
#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
- Kotlin Multiplatform-Unterstützung für Fenstergrößenklassen
Version 1.3.0-rc01
14. Mai 2024
WindowManager
Jetpack 1.3 bietet Kotlin Multiplatform-Unterstützung 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
- Behebung von
KotlinReflectionInternalError
, die durch das Entfernen einiger Dateien durch Proguard bei bestimmten Geräteimplementierungen verursacht wurden. (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 spezifischere Methoden aufteilen (Ie9292)WindowSizeClass#compute
wiederherstellen (I21355, b/324293374)
Fehlerkorrekturen
- Ein Absturz wurde behoben, bei dem 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 Breitenauswahl Höhenbeschränkungen hinzu. (I23393)
- Dienstfunktionen zum Auswählen einer
WindowSizeClass
aus einem Satz hinzufügen Es werden experimentelle Bewertungsfunktionen hinzugefügt, damit Entwickler ihre eigenen Auswahlkriterien erstellen können. Fügen Sie eine Auswahlerweiterungsfunktion hinzu, um die breitesteWindowSizeClass
innerhalb einer bestimmten Grenze auszuwählen. (I0c944) - Öffnen Sie den Konstruktor von
WindowSizeClass
, damit benutzerdefinierte Haltepunkte hinzugefügt werden können. (Ic1ff3) - Eine praktische Funktion zum Erstellen einer Größenklasse aus Breite, Höhe und Dichte hinzufügen (If67f4)
Fehlerkorrekturen
- Ausnahme behoben, wenn der Gleitkommawert auf 0 gekürzt wird. (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 freigeben
- Test-APIs zum Erstellen einer
FoldingFeature
sind jetzt stabil. - Test-APIs zum Einrichten gefälschter
ActivityEmbedding
-Werte sind jetzt stabil. WindowLayoutInfoPublisherRule
gibt jetzt die Überschreibung an, wenn ein Wert aus einerUiContext
abgerufen wird.- In
WindowInfoTracker
-Berichten werden Daten zu Funktionen inUiContext
-Parametern zusammengefasst. - Die Version der Erweiterungen auf dem Gerät offenlegen
WindowProperties
-Konstanten für appspezifische Überschreibungen von Nutzern:PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
: Informiert das System darüber, dass die App die Nutzeroberfläche für die Überschreibung der Seitenverhältniskompatibilität deaktiviert hat.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
– Informiert das System darüber, dass die App die Option „Vollbild“ in den Einstellungen für die Überschreibung der Nutzerkompatibilität für das Seitenverhältnis 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 freigeben
- Test-APIs zum Erstellen einer
FoldingFeature
sind jetzt stabil. - Test-APIs zum Einrichten gefälschter
ActivityEmbedding
-Werte sind jetzt stabil. WindowLayoutInfoPublisherRule
gibt jetzt die Überschreibung an, wenn ein Wert aus einerUiContext
abgerufen wird.- In
WindowInfoTracker
-Berichten werden Daten zu Funktionen inUiContext
-Parametern zusammengefasst. - Die Version der Erweiterungen auf dem Gerät offenlegen
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 freigeben
- Test-APIs zum Erstellen einer
FoldingFeature
sind jetzt stabil. - Test-APIs zum Einrichten gefälschter
ActivityEmbedding
-Werte sind jetzt stabil. WindowLayoutInfoPublisherRule
gibt jetzt die Überschreibung an, wenn ein Wert aus einerUiContext
abgerufen wird.- In
WindowInfoTracker
-Berichten werden Daten zu Funktionen inUiContext
-Parametern zusammengefasst. - Die Version der Erweiterungen auf dem Gerät offenlegen
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 ordnungsgemäß funktionieren. - Fügen Sie eine API hinzu, um die Erweiterungsversion auf dem Gerät verfügbar zu machen.
API-Änderungen
- Notwendige Version der SDK-Erweiterung für Fenster in öffentlichen APIs angeben
- Entfernen Sie
isXXXSupported
in der Komponente „Aktivitäten einbetten“. (Ie3dae)
- Entfernen Sie
- Führen Sie
WindowSdkExtensions
ein, um die Erweiterungsversion auf dem Gerät zu melden.- Fügen Sie
RequiresWindowSdkExtension
hinzu, um die erforderliche Mindestversion der Erweiterung anzugeben. (I05fd4)
- Fügen Sie
- Damit wird
WindowAreaInfo#getCapability
als Pflichtfeld festgelegt. (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 freigeben
- Test-APIs zum Erstellen einer
FoldingFeature
sind jetzt stabil. - Test-APIs zum Einrichten gefälschter
ActivityEmbedding
-Werte sind jetzt stabil. WindowLayoutInfoPublisherRule
gibt jetzt die Überschreibung an, wenn ein Wert aus einerUiContext
abgerufen wird.- In
WindowInfoTracker
-Berichten werden Daten zu Funktionen inUiContext
-Parametern zusammengefasst.
API-Änderungen
- Die
WindowArea
API wird als experimentell gekennzeichnet, damit API-Änderungen für eine stabile Version in 1.3 fortgesetzt werden können (I857f5) - API-Dateien wurden aktualisiert, um die Unterdrückung der Kompatibilität zu vermerken (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 werden aus der API-Oberfläche entfernt.
- Fügen Sie APIs hinzu, um gleichzeitige Anzeigen zu unterstützen.
- Fügen Sie eine Property hinzu, um die Erzwingung der Größe zu deaktivieren.
- Fügen Sie eine Property hinzu, um die Überschreibung des Mindestseitenverhältnisses zu deaktivieren.
ActivityEmbeddingRule
stabilisieren, um Unittests für das Einbetten von Aktivitäten zu unterstützen
API-Änderungen
Fehlerkorrekturen
- Hinzufügen einer Option zum Deaktivieren der Kompatibilitätseigenschaft für die Überschreibung der Erzwingung der Größe (Ie7ab1)
SESSION_STATE_CONTENT_INVISIBLE
wird aus der Erweiterungsoberfläche entfernt. (I6ed19)ActivityEmbeddingRule
stabilisieren, um Unittests für die Einbettung von Aktivitäten zu unterstützen (I8d6b6)- Es wird eine optionale Kompatibilitätseigenschaft für die Überschreibung des Mindestseitenverhältnisses hinzugefügt. (I66390)
- Veraltete WindowArea API entfernt (Ieb67c)
- Benennen Sie die Eigenschaft „loop“ der Ausrichtungsanfrage in
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
um. (Ie2fbd) - Namen der Fensterbereichssitzungskonstanten werden aktualisiert (I83675)
- Hinzufügen einer Kompatibilitätseigenschaft, die bei Erkennung einer Schleife von Anfragen zur Geräteausrichtung ignoriert wird (I0a7a2)
- Fügen Sie
WindowAreaComponent#STATUS_ACTIVE
hinzu, um anzugeben, dass die Funktion bereits aktiv ist. (I62bc3) RearDisplayPresentationMode
APIs hinzufügen (I0401c)- API für die Hintergrundfarbe für die stabile Version entfernt. (I34c3e)
- Fensterbereich-APIs ausblenden (I39de0)
- Fügen Sie Methoden hinzu, um die
SplitInfo
inSplitController
zu überschreiben. Fügen Sie Testmethoden hinzu, um ein Doppel fürSplitInfo
undActivityStack
zu erstellen. (Icd69f) - Tag für
ActivityRule.Builder
als optional festlegen (Ib0b44) - Entfernen Sie
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 Scharniertyp wird entfernt. Wenn der Scharniertyp aufgrund des aktuellen Geräte- oder Fensterstatus nicht angewendet werden kann, wird der übergeordnete Aufgabencontainer gleichmäßig aufgeteilt. Verwenden Sie
SplitController#setSplitAttributesCalculator
, um den Fallback-Splittyp anzupassen. (Ifcc59)
- Ersetzen Sie
- Einstellung von
add
/removeSplitCallback
add
/removeSplitCallback
nachSplitControllerCallbackAdapter
verschieben- Unterstützung für
Flow
hinzufügen, umSplitInfo
-Liste abzurufen (I7f1b6)
- Testregel für
ActivityEmbeddingController
(I42e9b) hinzufügen ActivityOptionsCompat
inActivityEmbeddingOptions
umbenannt (I89301)- Fügen Sie
splitSupportStatus
hinzu, um anzugeben, ob das Einbetten von Aktivitäten verfügbar ist. (I10024) - Führen Sie
SplitAttributes.BackgroundColor
ein, um den Wert vonDEFAULT
besser darzustellen. Es wird klargestellt, dass keine nicht opaken Hintergrundfarben für Animationen unterstützt werden. Alle nicht opaken Farben werden als Standard behandelt, d. h. die Hintergrundfarbe des aktuellen Fensters wird 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
für Tests zu erstellen. (I8e779)
- Fügen Sie
- Möglichkeit zum Erstellen gefälschter
SplitAttributesCalculatorParams
hinzufügen, damit Entwickler ihre benutzerdefiniertenSplitAttributesCalculator
überprüfen können (Id4a6e) - Fügen Sie
WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)
undWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)
hinzu (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
- Test-API mit einer Konstante für nicht angegebene Faltfunktionen aktualisieren
- Wenn Sie
WindowLayoutInfoPublishRule
überschreiben, werden alle Werte vonwindowLayoutInfo
überschrieben, einschließlich der kontextbasierten API.
API-Änderungen
- Konstante für nicht angegebene Mittelfalte hinzufügen (I7530c)
Fehlerkorrekturen
- Aktualisieren Sie
WindowLayoutInfoPublishRule
, um Überschreibungen fürContext
-basierteWindowLayoutInfo
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
APIs für die Aktivitätseinbettung und WindowLayoutInfoTracker
stabilisieren ActivityEmbeddingRule
wurde zur stabilen Version hochgestuft.
WindowMetricsCalculatorRule
wurde zur stabilen Version hochgestuft.
Dienstprogrammfunktionen zum Erstellen einer FoldingFeature
für den Test wurden zur stabilen Version hochgestuft.
API-Änderungen
ActivityEmbeddingRule
stabilisieren, um Unittests für die Einbettung von Aktivitäten zu unterstützen (I8d6b6)WindowMetrisCalculatorTestRule
ist stabil und ermöglicht Stub-Messwerte für JVM-Tests. Für genaue Ergebnisse empfehlen wir die Verwendung eines Emulators.- Test-APIs für
WindowLayoutInfo
stabilisieren, um JVM-Tests zu unterstützen. (Ie036e) - Fügen Sie
IntRange
für Werte des Attributs „Test fold“ 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 Property des<application>
-Tags im App-Manifest hinzugefügt.isSplitSupported
wurde eingestellt und durchsplitSupportStatus
ersetzt, um detailliertere Informationen dazu zu erhalten, warum die Funktion zum Aufteilen nicht verfügbar ist.- Die verschachtelte Klasse
SplitController.SplitSupportStatus
wurde hinzugefügt, um Statuskonstanten für die PropertysplitSupportStatus
bereitzustellen. SplitController
in mehrere Module umstrukturiert: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()
- Es wurden
RuleController
APIs hinzugefügt: addRule()
: Hiermit wird eine Regel hinzugefügt oder die Regel mit demselben Tag aktualisiert.removeRule()
– Entfernt eine Regel aus der Sammlung der registrierten Regeln.setRules()
– Hiermit wird eine Sammlung von Regeln festgelegt.clearRules()
: Entfernt alle registrierten Regeln.parseRules()
: Hier werden Regeln aus XML-Regeln geparst.
- Alle Module erfordern einen Kontext, der von der
#getInstance()
-Methode initialisiert wird. Dazu gehören:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- Die Klasse
EmbeddingAspectRatio
wurde hinzugefügt, um enum-ähnliche Verhaltenskonstanten für das Displayseitenverhältnis zu definieren. - Die Klasse
SplitAttributes
wurde hinzugefügt, um das Split-Layout zu definieren. SplitController
-Rechnerfunktionen wurden zuSplitAttributes
hinzugefügt, um Split-Layouts anzupassen:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
, um zu prüfen, ob dieSplitAttributesCalculator
APIs auf dem Gerät unterstützt werden
- Feld
EmbeddingRule#tag
hinzugefügt. - API-Änderungen im
SplitRule
:defaultSplitAttributes
hinzugefügt: Definiert das Standardlayout einer Aufteilung. ErsetztsplitRatio
undlayoutDirection
.- Die Übersetzung der XML-Properties
splitRatio
undsplitLayoutDirection
indefaultSplitAttributes
wurde hinzugefügt. - Die Definitionen für Mindestabmessungen wurden geändert, sodass jetzt Dichte-unabhängige Pixel (dp) anstelle von Pixeln verwendet werden.
minHeightDp
mit dem Standardwert 600 dp hinzugefügt.minWidth
inminWidthDp
mit dem Standardwert 600 dp geändert.minSmallestWidth
inminSmallestWidthDp
mit dem Standardwert 600 dp geändert.maxAspectRatioInHorizontal
mit dem StandardwertALWAYS_ALLOW
hinzugefügt.maxAspectRatioInPortrait
mit dem Standardwert 1.4 hinzugefügt.- Es wurde eine verschachtelte
FinishBehavior
-Klasse definiert, um Konstanten für das Beendigungsverhalten 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 zur Aufteilung bereitzustellen.
WindowLayout
- Für
WindowInfoTracker
wurde die experimentelle Unterstützung von UI-Kontexten ohne Aktivität hinzugefügt. WindowMetricsCalculator
wurde ein experimenteller UI-Kontext hinzugefügt, der keine Aktivität umfasst.
Migrationsschritte
- Damit Aktivitäten in Splits eingebettet werden können, müssen Apps dem Manifest-
<application>
-Tag 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üfen Sie, ob die aktuelle Aufteilung 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üfen Sie, ob die aktuelle Aufteilung gestapelt ist:
- SplitController-Migrationen:
SplitController.getInstance()
inSplitController.getInstance(Context)
geändert.SplitController.initialize(Context, @ResId int)
inRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
geändert.SplitController.getInstance().isActivityEmbedded(Activity)
inActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
geändert.SplitController.getInstance().registerRule(rule)
inRuleController.getInstance(Context).addRule(rule)
geändert.SplitController.getInstance().unregisterRule(rule)
inRuleController.getInstance(Context).removeRule(rule)
geändert.SplitController.getInstance().clearRegisteredRules()
inRuleController.getInstance(Context).clearRules()
geändert.SplitController.getInstance().getSplitRules()
inRuleController.getInstance(Context).getRules()
geändert.
SplitRule
-Property-Migrationen:- Für
minWidth
undminSmallestWidth
werden jetzt dp-Einheiten 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
teilen.
- Für
- Konstanten für das Beendigungsverhalten müssen zu enum-ähnlichen Klassenkonstanten von
FinishBehavior
migriert werden:FINISH_NEVER
inFinishBehavior.NEVER
geändert.FINISH_ALWAYS
inFinishBehavior.ALWAYS
geändert.FINISH_ADJACENT
inFinishBehavior.ADJACENT
geändert.
- Die Layoutrichtung muss zu
SplitAttributes.LayoutDirection
migriert werden:ltr
inSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
geändert.rtl
inSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
geändert.locale
inSplitAttributes.LayoutDirection.LOCALE
geändert.splitRatio
muss zuSplitAttributes.SplitType.ratio(splitRatio)
migriert werden.
SplitPairRule.Builder
Migrationen:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
inkotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
geändertsetLayoutDirection(layoutDirection)
undsetSplitRatio(ratio)
inkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
geändert- Für
setFinishPrimaryWithSecondary
undsetFinishSecondaryWithPrimary
werden die enum-ähnlichen KonstantenFinishBehavior
verwendet. Weitere Informationen finden Sie unter „SplitRule-Migrationen“. - Verwenden Sie
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
, um Splitscreens auf Hochformatgeräten anzuzeigen.
SplitPlaceholder.Builder
Migrationen:- Enthält nur die Parameter
filters
undplaceholderIntent
. Andere Eigenschaften werden in Setter verschoben. Weitere Informationen finden Sie unter „SplitPairRule.Builder-Migrationen“. setFinishPrimaryWithPlaceholder
nimmt die enum-ähnlichen KonstantenFinishBehavior
an. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.setLayoutDirection(layoutDirection)
undsetSplitRatio(ratio)
ändern sich in:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Verwenden Sie
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
, um Splitscreens auf Hochformatgeräten 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
ActivityEmbedding
als stabile API veröffentlichen- 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 Property des<application>
-Tags im App-Manifest hinzugefügt.isSplitSupported
wurde eingestellt und durchsplitSupportStatus
ersetzt, um detailliertere Informationen dazu zu erhalten, warum die Funktion zum Aufteilen nicht verfügbar ist.- Die verschachtelte Klasse
SplitController.SplitSupportStatus
wurde hinzugefügt, um Statuskonstanten für die PropertysplitSupportStatus
bereitzustellen. SplitController
in mehrere Module umstrukturiert: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()
- Es wurden
RuleController
APIs hinzugefügt:addRule()
: Hiermit wird eine Regel hinzugefügt oder die Regel mit demselben Tag aktualisiert.removeRule()
– Entfernt eine Regel aus der Sammlung der registrierten Regeln.setRules()
– Hiermit wird eine Sammlung von Regeln festgelegt.clearRules()
: Entfernt alle registrierten Regeln.- „parseRules()“ – Parset Regeln aus XML-Regeldefinitionen.
- Für alle Module muss ein Kontext mit der Methode
#getInstance()
initialisiert werden, einschließlich:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- Die Klasse
EmbeddingAspectRatio
wurde hinzugefügt, um enum-ähnliche Verhaltenskonstanten für das Displayseitenverhältnis zu definieren. - Die Klasse
SplitAttributes
wurde hinzugefügt, um das Split-Layout zu definieren. SplitController
-Rechnerfunktionen wurden zuSplitAttributes
hinzugefügt, um Split-Layouts anzupassen:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
, um zu prüfen, ob die SplitAttributesCalculator APIs auf dem Gerät unterstützt werden
- Feld
EmbeddingRule#tag
hinzugefügt. - API-Änderungen im
SplitRule
:defaultSplitAttributes
hinzugefügt: Definiert das Standardlayout einer Aufteilung. ErsetztsplitRatio
undlayoutDirection
.- Die Übersetzung der XML-Properties
splitRatio
undsplitLayoutDirection
indefaultSplitAttributes
wurde hinzugefügt. - Die Definitionen für Mindestabmessungen wurden geändert, sodass jetzt Dichte-unabhängige Pixel (dp) anstelle von Pixeln verwendet werden.
minHeightDp
mit dem Standardwert 600 dp hinzugefügt.minWidth
inminWidthDp
mit dem Standardwert 600 dp geändert.minSmallestWidth
inminSmallestWidthDp
mit dem Standardwert 600 dp geändert.maxAspectRatioInHorizontal
mit dem StandardwertALWAYS_ALLOW
hinzugefügt.maxAspectRatioInPortrait
mit dem Standardwert1.4
hinzugefügt.- Es wurde eine verschachtelte
FinishBehavior
-Klasse definiert, um Konstanten für das Beendigungsverhalten zu ersetzen. - Die Property-Änderungen wurden auf die verschachtelte Klasse
Builder
vonSplitPairRule
undSplitPlaceholderRule
angewendet.
SplitInfo#getSplitRatio()
wurde durchSplitInfo#getSplitAttributes()
ersetzt, um zusätzliche Informationen zur Aufteilung bereitzustellen.
WindowLayout
- Für
WindowInfoTracker
wurde die Unterstützung für den UI-Kontext ohne Aktivität hinzugefügt. - Für
WindowMetricsCalculator
wurde ein UI-Kontext ohne Aktivität hinzugefügt.
Schritte zur Migration
- Damit Aktivitäten in Splits eingebettet werden können, müssen Apps dem Manifest-
<application>
-Tag 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üfen Sie, ob die aktuelle Aufteilung 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üfen Sie, ob die aktuelle Aufteilung gestapelt ist:
SplitController
Migrationen:SplitController.getInstance()
inSplitController.getInstance(Context)
geändert.SplitController.initialize(Context, @ResId int)
inRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
geändert.SplitController.getInstance().isActivityEmbedded(Activity)
inActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
geändert.SplitController.getInstance().registerRule(rule)
inRuleController.getInstance(Context).addRule(rule)
geändert.SplitController.getInstance().unregisterRule(rule)
inRuleController.getInstance(Context).removeRule(rule)
geändert.SplitController.getInstance().clearRegisteredRules()
inRuleController.getInstance(Context).clearRules()
geändert.SplitController.getInstance().getSplitRules()
inRuleController.getInstance(Context).getRules()
geändert.
SplitRule
-Property-Migrationen:- Für
minWidth
undminSmallestWidth
werden jetzt dp-Einheiten 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
teilen.
- Für
- Konstanten für das Beendigungsverhalten müssen zu enum-ähnlichen Klassenkonstanten von
FinishBehavior
migriert werden:FINISH_NEVER
inFinishBehavior.NEVER
geändert.FINISH_ALWAYS
inFinishBehavior.ALWAYS
geändert.FINISH_ADJACENT
inFinishBehavior.ADJACENT
geändert.
- Die Layoutrichtung muss zu
SplitAttributes.LayoutDirection
migriert werden:ltr
inSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
geändert.rtl
inSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
geändert.locale
inSplitAttributes.LayoutDirection.LOCALE
geändert.splitRatio
muss zuSplitAttributes.SplitType.ratio(splitRatio)
migriert werden.
SplitPairRule.Builder
Migrationen:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
inkotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
geändertsetLayoutDirection(layoutDirection)
undsetSplitRatio(ratio)
inkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
ändern- Für
setFinishPrimaryWithSecondary
undsetFinishSecondaryWithPrimary
werden die enum-ähnlichen Konstanten vonFinishBehavior
verwendet. Weitere Informationen finden Sie unter „SplitRule-Migrationen“. - Verwenden Sie
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
, um Splitscreens auf Hochformatgeräten anzuzeigen.
SplitPlaceholder.Builder
Migrationen:- Enthält nur die Parameter
filters
undplaceholderIntent
. Andere Eigenschaften werden in Setter verschoben. Weitere Informationen finden Sie unter „SplitPairRule.Builder-Migrationen“. setFinishPrimaryWithPlaceholder
nimmt die enum-ähnlichen KonstantenFinishBehavior
an. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.setLayoutDirection(layoutDirection)
undsetSplitRatio(ratio)
ändern sich in:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Verwenden Sie
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
, um Splitscreens auf Hochformatgeräten 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 der
WindowLayoutInfo
aus einem UI-Kontext freigeben
API-Änderungen
- Fügen Sie
splitSupportStatus
hinzu, um anzugeben, ob das Einbetten von Aktivitäten verfügbar ist. (I10024) - Die UI Context
WindowLayoutInfo
API als experimentell kennzeichnen (I58ee0) - Einführung der
WindowAreaController
und APIs, um denRearDisplay
-Modus zu aktivieren und das aktuelle Fenster auf das Display zu verschieben, das mit der Rückkamera ausgerichtet ist. (Iffcbf) - Aktualisieren Sie die Standard-Hintergrundfarbe. (I1ac1b)
- Füge
SplitAttributes
-Parameter hinzu. (I18bdd) - Fügen Sie APIs für
SplitRule
,SplitAttributes
undSplitAttributesCalculator
hinzu. (I92d23) - Verbesserungen an den APIs für
maxAspectRatio
:- Ersetzen Sie
alwaysAllow()
undalwaysDisallow()
durchALWAYS_ALLOW
undALWAYS_DISALLOW
. - API-Dokumentation von @see mit eigenständiger Dokumentation aktualisieren (I3057b)
- Ersetzen Sie
- Die folgenden Konstruktoren werden aus öffentlichen APIs entfernt, da sie nicht von Apps aufgerufen werden sollen.
SplitInfo
KonstruktorActivityStack
-Konstruktor (Ide534)
- Für
SplitRule
ist jetztmaxAspectRatioInPortrait/Landscape
erforderlich. Aktivitäten können nur dann aufgeteilt werden, wenn das Seitenverhältnis der übergeordneten Begrenzung kleiner oder gleich dem angefordertenmaxAspectRatio
ist. (Ia5990) RuleController#parseRules
in „static“ (I785df) ändern- APIs für ActivityEmbedding verbessert
- API-Benennung anpassen – „Hinzufügen“/„Entfernen“ für mehrere Instanzen verwenden:
registerRule
inaddRule
geändertunregisterRule
inremoveRule
geändert- Ersetzen Sie
getSplitRules
durchgetRules
, daActivityRule
keine Aufteilungsregel ist. RuleController#setRules
hinzufügen, 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
. Verwenden SieRuleController#parseRules
und#setRules
, um Regeln aus einer XML-Datei festzulegen. 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 und Laufzeitregeln. Wenn Sie
#clearRules
aufrufen, werden alle Regeln gelöscht, unabhängig davon, ob sie mit statischen XML-Regeldefinitionen oder zur Laufzeit registriert wurden. Wenn Sie das bisherige Verhalten vonSplitController#clearRegisteredRules
verwenden möchten, rufen SieRuleController#parseRules
mit der XML-Ressourcen-ID auf und rufen Sie dannRuleController#setRules
auf, um die Regeln wieder zurückzusetzen. 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)
- Verbesserungen bei den SplitRule APIs:
- Geben Sie für
SplitRule
die Mindestabmessungen in DP anstelle von Pixeln an. - Für den
SplitRule
-Builder die Mindestdimensionen als optional definieren. (I95f17)
- Geben Sie für
- Kontext übergeben, um
SplitController
zu initialisieren (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. - Blenden Sie den Konstruktor von
ActivityRule
aus, daBuilder
die bevorzugte Methode zum Erstellen ist. - Fügen Sie eine experimentelle Methode hinzu, um die
WindowInsets
aufWindowMetrics
abzurufen. - Aktualisieren Sie
SplitPlaceholderFinishBehavior
, um zu verhindern, dass der Platzhalter fertiggestellt wird. Das Fertigstellen des Platzhalters führte zu etwas verwirrendem Verhalten.
API-Änderungen
- Machen Sie „val
isEmpty
“ öffentlich, um „funisEmpty
“ zu ersetzen. - Benennen Sie
ActivityStack
-Parameteraktivitäten inactivitiesInProcess
um. (Ia5055) - Entfernen Sie
ActivityFilter#matchesClassName
undActivityFilter#matchesClassNameOrWildCard
, da sie verwirrend sind. - Fügen Sie
ActivityFilter#componentName
undActivityFilter#intentAction
hinzu, damit der Anrufer verschiedene Filter unterscheiden kann (I41f22). @Deprecated
APIs aus der experimentellen API entfernen (I216b3)@ExperimentalWindowApi
für APIs zum Einbetten von Aktivitäten entfernen (I69ebe)- Den Konstruktor von
ActivityRule
ausblenden und stattdessen den Builder verwenden. (If4eb6) - Fügen Sie APIs hinzu, um zu prüfen, ob eine Aktivität Teil der
ActivityFilter
ist. (Ia43cf) - API-Dateien entsprechend den Änderungen an den Klassen
WindowMetrics
undWindowMetricsCalculatorCompat
aktualisieren (I667fe) - Javadoc und Klassenname der Property
ActivityEmbedding
aktualisieren (Ia1386) - Namen von
ActivityEmbedding
-Eigenschafts-Tags für die Verwendung in AndroidManifest.xml hinzufügen (Id1ad4) - Es wurden die neuen APIs
SplitPlaceholderFinishBehavior
undSplitPlaceholderRule.finishPrimaryWithPlaceholder
hinzugefügt. Diese ersetzen die vorhandeneSplitPlaceholderRule.finishPrimaryWithSecondary
, die definiert, wann Platzhalteraktivitäten abgeschlossen sind und wie sich zugehörige Aktivitäten im Activity Embedding verhalten sollen. (I64647)
Fehlerkorrekturen
- Einführung der
WindowAreaController
und APIs, um denRearDisplay
-Modus zu aktivieren und das aktuelle Fenster auf das Display zu verschieben, 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
- Aktualisiere die Standardwerte für die Regeln für das Einbetten.
API-Änderungen
- Aktualisieren Sie die Standardwerte für die Eigenschaften von Einbettungsregeln. (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 für 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 zur Unterstützung von 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
- Ein Fehler wurde behoben, durch den die Funktionen für faltbare Geräte nicht mehr gesendet wurden, wenn eine App im Hintergrund ausgeführt wurde.
- Die experimentelle ActivityEmbedding API wird erweitert.
API-Änderungen
- Eine öffentliche API, mit der geprüft werden kann, ob eine Aktivität eingebettet wird. (I39eb7)
Fehlerkorrekturen
- APIs hinzufügen, mit denen das Fertigstellungsverhalten für Container in Aktivitätsaufteilungen angepasst werden kann (I1a1e4)
- Es wurde eine neue Konfigurationsoption für Regeln zur Aktivitätsaufteilung 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 1.0.0
- Unterstützung für faltbare 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 faltbare Smartphones über
WindowInfoTracker
hinzufügen - Fügen Sie Methoden zum Berechnen des aktuellen und maximalen
WindowMetrics
hinzu. - Fügen Sie unterstützende Test-APIs hinzu.
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.
- Machen Sie Activity zu einer expliziten Methodenabhängigkeit für WindowInfoTracker.
- Fügen Sie eine einfache TestRule für WindowMetricsCalculator hinzu, 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 eine einfache 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 für das Einbetten von Aktivitäten hinzufügen Bei dieser ersten Layoutversion können zwei Aktivitäten nebeneinander angezeigt werden.
API-Änderungen
- Die currentWindowMetrics API wurde entfernt, da wir sie nicht korrekt bereitstellen können. Verwenden Sie stattdessen WindowMetricsCalculator (Icda5f).
- Die Erweiterungs-API wurde aktualisiert. (Ica92b)
- Es wurde eine Benutzeroberfläche für eine neue Funktion hinzugefügt, mit der Aktivitäten eingebettet und im übergeordneten Aufgabenfenster nebeneinander angezeigt werden können. (I5711d)
- Die Konstruktoren für WindowMetrics und WindowLayoutInfo wurden ausgeblendet. Verwenden Sie stattdessen die Test-APIs. (I5a1b5)
- Fügen Sie eine API hinzu, um gefälschte WindowLayoutInfo-Objekte zu erstellen. (I4a2fd)
Fehlerkorrekturen
- Speicherleck 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 Anmerkung hinzu, um experimentelle APIs zu kennzeichnen. (I9f1b6)
- Fügen Sie eine Testmethode hinzu, um ein Test-FoldingFeature zu erstellen, das ein Rechteck akzeptiert. Das erleichtert das Testen, wenn Sie Robolectric anstelle einer tatsächlichen Aktivität verwenden. (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 zu einer Schnittstelle.
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.
- Konvertieren Sie die Messwerte des aktuellen Fensters in einen Fluss im WindowInfoRepository, da sich der Wert im Laufe der Zeit ändert.
- WindowInfoRepoJavaAdapter in WindowInfoRepoCallbackAdapter umbenennen
- Hilfsmethode zum Erstellen von Testobjekten vom Typ „FoldingFeature“ hinzufügen
- Aktualisieren Sie Pakete, um Klassen basierend auf der unterstützten Funktion zu gruppieren.
API-Änderungen
- Benennen Sie „ActivityExt“ in „ActivityExtensions“ um. Ändern Sie „Repo“ in „Repository“. (I61a16)
- Aktualisieren Sie die Pakete für Kurse. (I23ae2)
- WindowMetrics aus WindowInfoRepo entfernen (I24663)
- WindowManager entfernen und WindowInfoRepo verwenden
- WindowBackend intern machen. (I06d9a)
- Fenstermesswerte in „Zugriffe“ umwandeln
- Java-Adapter in WindowInfoRepoCallbackAdapter umbenennen
- Entfernen Sie „callbackFlow“, damit keine experimentellen APIs mehr verwendet werden. (Ia4d15)
- Hilfsmethode zum Erstellen von Testanzeigefunktionen hinzufügen
- Von „occlusionMode“ zu „occlusionType“ wechseln (If4cff)
Fehlerkorrekturen
- Proguard-Fehler behoben, bei dem die Core-Bibliothek entfernt wurde.
- Fehler behoben, durch den WindowLayoutInfo nicht an zusätzliche Abonnenten gesendet wurde.
- Fehler behoben, bei dem Konfigurationsänderungen keine Aktualisierungen der Funktion zum Zusammenklappen auslösten.
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
- Ändern Sie Ganzzahlkonstanten in unbegrenzte Enumerationen.
- Test-Dienstprogramm hinzufügen, um Funktionen zum Zusammenklappen zu testen
API-Änderungen
- Hilfsmethode zum Erstellen von Testanzeigefunktionen hinzufügen (I3cf54)
- Ändern Sie
occlusionMode
inocclusionType
.
- Ändern Sie
Fehlerkorrekturen
- Senden Sie einen Anfangswert, wenn Sie mehrere Abnehmer der Datenstreams hinzufügen.
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
- Wir haben ein Testartefakt veröffentlicht, um die Verwendung von WindowInfoRepository zu vereinfachen. 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
- Die Kernfensterbibliothek zu Kotlin migrieren. In Zukunft werden Tasks und Suspend-Funktionen verwendet, um asynchrone Daten bereitzustellen.
- Fügen Sie WindowInfoRepo als Hauptinteraktionspunkt zum Abrufen der WindowMetrics und des Streams von WindowLayoutInfo hinzu.
- Neues
window-java
-Artefakt zum Bereitstellen Java-kompatibler APIs zum Registrieren und Aufheben der Registrierung von Callbacks. - Neue
window-rxjava2
- undwindow-rxjava3
-Artefakte, um RxJava-adaptierte APIs bereitzustellen.
API-Änderungen
- Fügen Sie
WindowServices
hinzu, um Abhängigkeiten einheitlich anzugeben.- Hinzufügen einer coroutine-basierten API zum Verbrauchen von Informationen zum Fensterlayout (Iab70f)
- Die Kernbibliothek des Fenstermanagers zu Kotlin migrieren. (Icca34)
Fehlerkorrekturen
- Fügen Sie eine neue Datenklasse hinzu, um die Begrenzungen von Features darzustellen. (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 Zuständen der Faltfunktion entfernt, da er derzeit von keinem Anwendungsfall unterstützt wird. - Außerdem haben wir weitere eingestellte APIs entfernt.
API-Änderungen
- Fügen Sie Kotlin als Abhängigkeit hinzu.
- Kernbibliothek zu Kotlin migrieren (Idd995)
DisplayFeature
-Builder entfernt (I61fa4)DeviceState
wurde aus der öffentlichen API entfernt. Verwenden Sie stattdessenFoldingFeature
. (Id6079)- Entfernen Sie den Rückruf für den Gerätestatus aus Erweiterungen. (I5ea83)
- Entfernen Sie
STATE_FLIPPED
aus „FoldingFeature“. (I9c4e1) - Entfernen Sie nicht mehr unterstützte 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 der Funktion „FoldingFeature“ praktische Methoden hinzugefügt, damit Apps erkennen können, ob die Funktion getrennt oder verdeckt ist, 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-Bedingung gibt. Registrieren Sie Listener und Callbacks, um Updates zu den WindowLayoutInfo zu erhalten.
API-Änderungen
- Praktische Methoden für die Arbeit mit FoldingFeatures hinzufügen (Ie733f)
- Synchrone Lesemethoden aus WindowManager entfernt (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 eine leere WindowLayoutInfo aus.
- Ein Fehler wurde behoben, durch den der Status nicht richtig aktualisiert wurde, wenn sich der Scharnierstatus geändert hat, während die App im Hintergrund ausgeführt wurde. Der Status sollte jetzt konsistent sein.
- Aktualisieren Sie unsere ProGuard-Dateien, 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
- Senden Sie einen leeren Wert für „WindowLayoutInfo“, wenn die OEM-Implementierung leer ist. Dadurch sollte die Nutzung der Bibliothek auf mehr Geräten möglich sein. Da die APIs asynchron sind, wird dennoch empfohlen, in Apps einen Schutzcode zu schreiben und nach einem Zeitlimit einen Standardwert auszugeben. Wir können keine Garantien für OEM-Implementierungen übernehmen 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. Zu den bemerkenswertesten Beispielen gehören das Entfernen der synchronen Lesevorgänge aus WindowManager und die Einstellung von DeviceState. Synchrone Lesevorgänge können zu Race-Bedingungen und einer falschen Benutzeroberfläche führen.
Wir haben DisplayFeature in eine Schnittstelle umgewandelt, die künftig für andere Funktionen verwendet wird. Die erste Funktion ist „FoldingFeature“, die jetzt die Darstellung eines faltbaren Displays oder eines Scharniers ist. Dieser 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 zu einem Fenster abzufragen, z. B. seine Position und Größe auf dem Bildschirm sowie alle System-Einschnitte. Wir haben die API in diesem Release zurü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 Aktivitätsverweise zu akzeptieren. (I07ded)- Einführung in die WindowMetrics API. (I3ccee)
- Synchrone Lesemethoden aus WindowManager entfernen (I69983)
- Das Paket „ExtensionWindowBackend“ schützen. (Ied208)
Fehlerkorrekturen
- Aktualisieren Sie die
ExtensionInterface
APIs, damit visuelle Kontexte akzeptiert werden. (I8e827)
Externer Beitrag
- DeviceState und WindowLayoutInfo zusammenführen, 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 freigegeben. 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 in der durchgehenden Oberfläche des flachen Displays, z. B. Scharniere oder Falten.DeviceState
: Diese neue API gibt die aktuelle Position des Smartphones aus einer Liste definierter Positionen zurück (z. B.CLOSED
,OPENED
,HALF_OPENED
usw.).