Fenstermanager
Letzte Aktualisierung | Stabile Version | Releasekandidat | Beta-Ausgabe | Alpharelease |
---|---|---|---|---|
29. Mai 2024 | 1.3.0 | − | − | − |
Abhängigkeiten deklarieren
Zum Hinzufügen einer Abhängigkeit von WindowManager 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 Anwendung oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:
Groovig
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
Dein Feedback hilft uns, Jetpack zu verbessern. Lassen Sie 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 eine neue erstellen. Durch Klicken auf die Stern-Schaltfläche können Sie zu einem vorhandenen Problem abstimmen.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Version 1.3
Version 1.3.0
29. Mai 2024
androidx.window:window-*:1.3.0
wird freigegeben. Version 1.3.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.2.0
- Plattformübergreifende Unterstützung von Kotlin für Fenstergrößenklassen
Version 1.3.0-rc01
14. Mai 2024
WindowManager
Jetpack 1.3 bietet Kotlin-Multiplattform-Unterstützung für WindowSizeClass
-Funktionen sowie mehrere Fehlerkorrekturen.
androidx.window:window-*:1.3.0-rc01
wird freigegeben. 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 freigegeben. Version 1.3.0-beta02 enthält diese Commits.
API-Änderungen
- Keine Unterstützung mehr für das Erstellen und Verwenden benutzerdefinierter
WindowSizeClass
-Objekte. (Id1143)
Fehlerkorrekturen
- Das Problem „
KotlinReflectionInternalError
“ wurde behoben, das dadurch verursacht wurde, dass Proguard einige Dateien auf bestimmten Geräteimplementierungen entfernt hat. (I01b02)
Version 1.3.0-beta01
3. April 2024
androidx.window:window-*:1.3.0-beta01
wird freigegeben. 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 freigegeben. Version 1.3.0-alpha03 enthält diese Commits.
API-Änderungen
- Sie können
WindowSizeClassUtil
in fokussiertere Methoden aufteilen. (Ie9292) WindowSizeClass#compute
wiederherstellen (I21355, b/324293374)
Fehlerkorrekturen
- Es wurde ein Absturz 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 freigegeben. Version 1.3.0-alpha02 enthält diese Commits.
Neue Funktionen
- Die API-Oberfläche der WindowSize Class APIs 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)
- Fügen Sie Dienstfunktionen zum Auswählen eines
WindowSizeClass
aus einer Gruppe hinzu. Experimentelle Bewertungsfunktionen hinzufügen, damit Entwickler ihre eigenen Selektoren erstellen können Fügen Sie eine Selektorerweiterungsfunktion hinzu, um die breitesteWindowSizeClass
innerhalb einer bestimmten Grenze auszuwählen. (I0c944) - Öffnen Sie den Konstruktor
WindowSizeClass
, damit benutzerdefinierte Haltepunkte hinzugefügt werden können. (Ic1ff3) - Fügen Sie eine praktische Funktion hinzu, um eine Größenklasse aus Breite, Höhe und Dichte zu erstellen. (If67f4)
Fehlerkorrekturen
- Ausnahme beheben, wenn der Gleitkommawert auf 0 gekürzt wurde. (272ffac)
Version 1.3.0-alpha01
15. November 2023
androidx.window:window-*:1.3.0-alpha01
wird freigegeben. Version 1.3.0-alpha01 enthält diese Commits.
Neue Funktionen
- Experimentelle Fenster-APIs für den Zugriff auf den rückwärtigen Bildschirm freigeben
- Die Test-APIs zum Erstellen einer
FoldingFeature
sind jetzt stabil. - Test-APIs zum Einrichten falscher
ActivityEmbedding
-Werte sind jetzt stabil. WindowLayoutInfoPublisherRule
meldet jetzt die Überschreibung, wenn ein Wert ausUiContext
abgerufen wird.- „
WindowInfoTracker
“ meldet Funktionsdaten anUiContext
Parameter. - Machen Sie die Erweiterungsversion auf dem Gerät sichtbar.
WindowProperties
-Konstanten für Überschreibungen pro App:PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
: Informiert das System darüber, dass die App das Überschreiben der für den Nutzer sichtbaren Seitenverhältnis-Kompatibilität deaktiviert hat.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
: Informiert das System darüber, dass die Vollbildoption in den Einstellungen zum Überschreiben der Kompatibilität des Seitenverhältnisses des Nutzers deaktiviert wurde.
Version 1.2
Version 1.2.0
15. November 2023
androidx.window:window-*:1.2.0
wird freigegeben. 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ückwärtigen Bildschirm freigeben
- Die Test-APIs zum Erstellen einer
FoldingFeature
sind jetzt stabil. - Test-APIs zum Einrichten falscher
ActivityEmbedding
-Werte sind jetzt stabil. WindowLayoutInfoPublisherRule
meldet jetzt die Überschreibung, wenn ein Wert ausUiContext
abgerufen wird.- „
WindowInfoTracker
“ meldet Funktionsdaten anUiContext
Parameter. - Machen Sie die Erweiterungsversion auf dem Gerät sichtbar.
Version 1.2.0-rc01
1. November 2023
androidx.window:window-*:1.2.0-rc01
wird freigegeben. Version 1.2.0-rc01 enthält diese Commits.
Neue Funktionen
- Experimentelle Fenster-APIs für den Zugriff auf den rückwärtigen Bildschirm freigeben
- Die Test-APIs zum Erstellen einer
FoldingFeature
sind jetzt stabil. - Test-APIs zum Einrichten falscher
ActivityEmbedding
-Werte sind jetzt stabil. WindowLayoutInfoPublisherRule
meldet jetzt die Überschreibung, wenn ein Wert ausUiContext
abgerufen wird.- „
WindowInfoTracker
“ meldet Funktionsdaten anUiContext
Parameter. - Machen Sie die Erweiterungsversion auf dem Gerät sichtbar.
Version 1.2.0-beta04
18. Oktober 2023
androidx.window:window-*:1.2.0-beta04
wird freigegeben. 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 freigegeben. Version 1.2.0-beta03 enthält diese Commits.
Neue Funktionen
- Fügen Sie
RequiresApi
-Prüfungen für APIs hinzu, die eine bestimmte Version der Erweiterungen benötigen, damit sie ordnungsgemäß funktionieren. - Fügen Sie eine API hinzu, um die Version der Erweiterungen auf dem Gerät freizugeben.
API-Änderungen
- Annotieren Sie die erforderliche Version der Fenster-SDK-Erweiterung in öffentlichen APIs.
- Entfernen Sie
isXXXSupported
in der Komponente „Aktivitätseinbettung“. (Ie3dae).
- Entfernen Sie
- Leite
WindowSdkExtensions
ein, um die Version der Erweiterung auf dem Gerät zu melden.- Leite
RequiresWindowSdkExtension
ein, um die erforderliche mindestens erforderliche Erweiterungsversion annotieren zu können. (I05fd4)
- Leite
- Sorgt dafür, dass
WindowAreaInfo#getCapability
keine Nullwerte zulässt. (I17048)
Version 1.2.0-beta01
26. Juli 2023
androidx.window:window-*:1.2.0-beta01
wird freigegeben. Version 1.2.0-beta01 enthält diese Commits.
Neue Funktionen
- Experimentelle Fenster-APIs für den Zugriff auf den rückwärtigen Bildschirm freigeben
- Die Test-APIs zum Erstellen einer
FoldingFeature
sind jetzt stabil. - Test-APIs zum Einrichten falscher
ActivityEmbedding
-Werte sind jetzt stabil. WindowLayoutInfoPublisherRule
meldet jetzt die Überschreibung, wenn ein Wert ausUiContext
abgerufen wird.- „
WindowInfoTracker
“ meldet Funktionsdaten anUiContext
Parameter.
API-Änderungen
- Kennzeichnet
WindowArea
APIs als experimentell, damit API-Änderungen für eine stabile Version in 1.3 (I857f5) fortgesetzt werden können - Aktualisierte API-Dateien, um die Kompatibilitätsunterdrückung zu erklären (I8e87a, b/287516207)
Version 1.2.0-alpha03
21. Juni 2023
androidx.window:window-*:1.2.0-alpha03
wird freigegeben. Version 1.2.0-alpha03 enthält diese Commits.
Neue Funktionen
- Verworfene APIs werden von der API-Oberfläche entfernt.
- APIs hinzufügen, um die gleichzeitige Anzeige zu unterstützen.
- Fügen Sie eine Eigenschaft hinzu, um die erzwungene Überschreibung der Größenanpassung zu deaktivieren.
- Fügen Sie eine Property hinzu, um die Überschreibung des minimalen Seitenverhältnisses zu deaktivieren.
- Stabilisieren Sie
ActivityEmbeddingRule
, um Einheitentests rund um das Einbetten von Aktivitäten zu unterstützen.
API-Änderungen
Fehlerkorrekturen
- Opt-out-kompatible Eigenschaft zum Überschreiben der Größenanpassung hinzufügen (Ie7ab1)
- Entfernt
SESSION_STATE_CONTENT_INVISIBLE
aus der Oberfläche für Erweiterungen. (I6ed19) - Stabilisieren Sie
ActivityEmbeddingRule
, um Einheitentests rund um das Einbetten von Aktivitäten zu unterstützen. (I8d6b6) - Kompatibilitätseigenschaft zum Überschreiben des minimalen Seitenverhältnisses zum Überschreiben hinzufügen (I66390)
- Entfernt die verworfenen WindowArea APIs (Ieb67c)
- Benennen Sie die Schleifeneigenschaft bei Ausrichtungsanfragen in
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
um. (Ie2fbd) - Aktualisiert die Namen der Sitzungskonstanten für Fensterbereiche (I83675)
- Hinzufügen einer kompatiblen Opt-out-Eigenschaft, die bei Erkennung eine Schleife der Ausrichtungsanfrage ignoriert (I0a7a2)
- Fügen Sie
WindowAreaComponent#STATUS_ACTIVE
hinzu, um anzugeben, dass die Funktion bereits aktiv ist. (I62bc3) RearDisplayPresentationMode
APIs hinzufügen (I0401c)- Hintergrundfarbe-API für stabile Version entfernen. (I34c3e)
- Window Area APIs ausblenden. (I39de0)
- Fügen Sie Methoden zum Überschreiben von
SplitInfo
inSplitController
hinzu. Füge Testmethoden hinzu, um einen Double-Wert fürSplitInfo
undActivityStack
zu erstellen. Icd69f - Tag für
ActivityRule.Builder
optional machen. (Ib0b44) - Entfernen Sie
RatioSplitType
,ExpandContainersSplit
undHingeSplitType
. Sie sind jetztSplitType
.- Ersetzen Sie
#splitEqually()
,#expandContainers()
und#splitByHinge
durch KonstanteSplitType SPLIT_TYPE_EQUAL
,SPLIT_TYPE_EXPAND
undSPLIT_TYPE_HINGE
- Entfernen Sie die Funktion, um den Fallback-Typ der Aufteilung des Scharniers festzulegen. Wenn der Typ der Aufteilung des Scharniers 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-Aufteilungstyp anzupassen. (Ifcc59)
- Ersetzen Sie
add
/removeSplitCallback
verwerfenadd
/removeSplitCallback
in „SplitControllerCallbackAdapter
“ verschiebenFlow
-Support hinzufügen, um dieSplitInfo
-Liste zu erhalten (I7f1b6)
- Fügen Sie eine Testregel für
ActivityEmbeddingController
(I42e9b) hinzu ActivityOptionsCompat
wird inActivityEmbeddingOptions
(I89301) umbenannt- Fügen Sie
splitSupportStatus
hinzu, um anzugeben, ob das Einbetten von Aktivitäten verfügbar ist. (I10024) - Führen Sie
SplitAttributes.BackgroundColor
ein, um denDEFAULT
-Wert besser darzustellen. Es wurde klargestellt, dass nicht deckende Animationshintergrundfarbe nicht unterstützt wird. Daher werden nicht deckende Farben als Standard behandelt und 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
- Fügen Sie eine Methode zur Erstellung gefälschter
SplitAttributesCalculatorParams
hinzu, damit Entwickler ihre benutzerdefinierteSplitAttributesCalculator
(Id4a6e) bestätigen 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 freigegeben. Version 1.2.0-alpha02 enthält diese Commits.
Neue Funktionen
- Die Test-API wurde so aktualisiert, dass sie für nicht angegebene Faltfunktionen eine Konstante enthält.
- Beim Überschreiben mit
WindowLayoutInfoPublishRule
werden alle Werte vonwindowLayoutInfo
überschrieben, einschließlich der Context-based API.
API-Änderungen
- Konstante für eine nicht angegebene zentrale Faltfunktion hinzufügen. (I7530c)
Fehlerkorrekturen
- Aktualisieren Sie
WindowLayoutInfoPublishRule
, um Überschreibungen aufContext
-basiertenWindowLayoutInfo
zu unterstützen. (I2037a)
Version 1.2.0-alpha01
24. Mai 2023
androidx.window:window-*:1.2.0-alpha01
wird freigegeben. Version 1.2.0-alpha01 enthält diese Commits.
Neue Funktionen
Test-APIs rund um Activity Embedding und WindowLayoutInfoTracker
stabilisieren ActivityEmbeddingRule
wurde auf die stabile Version hochgestuft.
WindowMetricsCalculatorRule
wurde auf die stabile Version hochgestuft.
Dienstprogrammfunktionen zum Erstellen einer FoldingFeature
für Testzwecke wurden auf die stabile Version hochgestuft.
API-Änderungen
- Stabilisieren Sie
ActivityEmbeddingRule
, um Einheitentests rund um das Einbetten von Aktivitäten zu unterstützen. (I8d6b6) WindowMetrisCalculatorTestRule
ist stabil und lässt Stub-Messwerte für JVM-Tests zu. Für genaue Ergebnisse empfehlen wir die Verwendung eines Emulators.- Stabilisieren Sie Test-APIs für
WindowLayoutInfo
, um JVM-Tests zu unterstützen. (Ie036e) - Füge
IntRange
hinzu, um die Werte der Faltfunktionen zu testen. (I69f7d)
Version 1.1
Version 1.1.0
7. Juni 2023
androidx.window:window-*:1.1.0
wird freigegeben. Version 1.1.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.0.0
Aktivitätseinbettung
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
wurde im App-Manifest als boolesche Eigenschaft des<application>
-Tags hinzugefügt.isSplitSupported
wurde verworfen und durchsplitSupportStatus
ersetzt, um ausführlichere Informationen dazu zu liefern, warum die Aufteilungsfunktion nicht verfügbar ist.- Die verschachtelte Klasse
SplitController.SplitSupportStatus
wurde hinzugefügt, um Statuskonstanten für die EigenschaftsplitSupportStatus
bereitzustellen. SplitController
wurde auf mehrere Module umgearbeitet:- Modul
ActivityEmbeddingController
fürActivity
- oderActivityStack
-verwandte APIs. isActivityEmbedded
wurde vonSplitController
nachActivityEmbeddingController
verschoben.- Modul
RuleController
fürEmbeddingRule
verwandte Vorgänge: SplitController
APIs entfernt:clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
RuleController
APIs hinzugefügt:addRule()
: Damit wird eine Regel hinzugefügt oder eine Regel mit demselben Tag aktualisiert.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.
- Modul
- Alle Module erfordern einen Kontext, der durch die Methode
#getInstance()
initialisiert wird, darunter:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- Die Klasse
EmbeddingAspectRatio
wurde hinzugefügt, um enum-ähnliche Verhaltenskonstanten in Bezug auf das Seitenverhältnis der Anzeige zu definieren. - Die Klasse
SplitAttributes
wurde hinzugefügt, um das geteilte Layout zu definieren. SplitController
wurden Rechnerfunktionen fürSplitAttributes
hinzugefügt, um aufgeteilte Layouts anzupassen:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
, um zu prüfen, ob dieSplitAttributesCalculator
APIs auf dem Gerät unterstützt werden
- Feld „
EmbeddingRule#tag
“ wurde hinzugefügt. - API-Aktualisierungen in
SplitRule
:defaultSplitAttributes
wurde hinzugefügt: Definiert das Standardlayout für die Aufteilung einer Aufteilung und ersetztsplitRatio
undlayoutDirection
.- Übersetzung der XML-Eigenschaften
splitRatio
undsplitLayoutDirection
zudefaultSplitAttributes
hinzugefügt. - Die Definitionen der Mindestabmessungen wurden geändert, sodass nun dichteunabhängige Pixel (dp) anstelle von Pixeln verwendet werden.
minHeightDp
wurde mit dem Standardwert 600 dp hinzugefügt.minWidth
wurde zuminWidthDp
geändert. Der Standardwert ist 600 dp.minSmallestWidth
wurde zuminSmallestWidthDp
geändert. Der Standardwert ist 600 dp.maxAspectRatioInHorizontal
wurde mit dem StandardwertALWAYS_ALLOW
hinzugefügt.maxAspectRatioInPortrait
wurde mit dem Standardwert 1.4 hinzugefügt.- Die verschachtelte Klasse
FinishBehavior
wurde definiert, um Konstanten für das Abschlussverhalten zu ersetzen. - Die Eigenschaftsänderungen wurden auf die verschachtelte Builder-Klasse von
SplitPairRule
undSplitPlaceholderRule
angewendet.
- „
SplitInfo#getSplitRatio()
“ wurde durch „SplitInfo#getSplitAttributes()
“ ersetzt, um zusätzliche Informationen zur Aufteilung anzugeben.
WindowLayout
- Zusätzliche Unterstützung für experimentellen Kontext in der Benutzeroberfläche ohne Aktivität zu
WindowInfoTracker
. WindowMetricsCalculator
wurde experimenteller UI-Kontext ohne Aktivität hinzugefügt.
Migrationsschritte
- Damit das Einbetten von Aktivitäten aktiviert ist, um Aktivitäten in Aufteilungen anzuzeigen, müssen Apps dem
<application>
-Manifest-Tag diePROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
-Eigenschaft hinzufügen:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
So kann das System das Aufteilungsverhalten für eine App im Voraus optimieren. SplitInfo
-Verhältnis- Prüfen Sie, 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üfen Sie, ob der aktuelle Split gestapelt ist:
- SplitController-Migrationen:
SplitController.getInstance()
Änderungen amSplitController.getInstance(Context)
.SplitController.initialize(Context, @ResId int)
Änderungen amRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
.SplitController.getInstance().isActivityEmbedded(Activity)
Änderungen amActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
.SplitController.getInstance().registerRule(rule)
Änderungen amRuleController.getInstance(Context).addRule(rule)
.SplitController.getInstance().unregisterRule(rule)
Änderungen amRuleController.getInstance(Context).removeRule(rule)
.SplitController.getInstance().clearRegisteredRules()
Änderungen amRuleController.getInstance(Context).clearRules()
.SplitController.getInstance().getSplitRules()
Änderungen amRuleController.getInstance(Context).getRules()
.
SplitRule
-Property-Migrationen:minWidth
undminSmallestWidth
verwenden jetzt dp-Einheiten anstelle von Pixeln. Apps können den folgenden Aufruf verwenden:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
oder einfachminWith
in Pixeln durchdisplayMetrics#density
teilen.
- Abschlussverhaltenskonstanten müssen zu
FinishBehavior
-enum-ähnlichen Klassenkonstanten migriert werden:FINISH_NEVER
Änderungen amFinishBehavior.NEVER
.FINISH_ALWAYS
Änderungen amFinishBehavior.ALWAYS
.FINISH_ADJACENT
Änderungen amFinishBehavior.ADJACENT
.
- Die Layoutrichtung muss zu
SplitAttributes.LayoutDirection
migriert werden:ltr
Änderungen amSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
.rtl
Änderungen amSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
.locale
Änderungen amSplitAttributes.LayoutDirection.LOCALE
.splitRatio
muss zuSplitAttributes.SplitType.ratio(splitRatio)
migriert werden.
SplitPairRule.Builder
-Migrationen:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
Änderungen amkotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
setLayoutDirection(layoutDirection)
undsetSplitRatio(ratio)
werden zukotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
geändertsetFinishPrimaryWithSecondary
undsetFinishSecondaryWithPrimary
verwenden dieFinishBehavior
-enum-ähnlichen Konstanten. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.- Verwende
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
, um Teilstrecken auf Geräten im Hochformat anzuzeigen.
SplitPlaceholder.Builder
-Migrationen:- Hat nur die Parameter
filters
undplaceholderIntent
. Andere Eigenschaften werden in Setter verschoben. Weitere Informationen finden Sie unter „SplitPairRule.Builder-Migrationen“. setFinishPrimaryWithPlaceholder
verwendet dieFinishBehavior
-enum-ähnlichen Konstanten. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.setLayoutDirection(layoutDirection)
undsetSplitRatio(ratio)
ändern sich zu:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Verwende
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
, um Teilstrecken auf Geräten im Hochformat anzuzeigen.
- Hat nur die Parameter
Version 1.1.0-rc01
10. Mai 2023
androidx.window:window-*:1.1.0-rc01
wird freigegeben. Version 1.1.0-rc01 enthält diese Commits.
Neue Funktionen
- Veröffentlichen Sie
ActivityEmbedding
als stabile API. - Verschiedene Fehlerkorrekturen.
Version 1.1.0-beta02
5. April 2023
androidx.window:window-*:1.1.0-beta02
wird freigegeben. Version 1.1.0-beta02 enthält diese Commits.
Neue Funktionen
- Interne Korrekturen und Bereinigung.
Version 1.1.0-beta01
22. März 2023
androidx.window:window-*:1.1.0-beta01
wird freigegeben. Version 1.1.0-beta01 enthält diese Commits.
Aktivitätseinbettung
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
wurde im App-Manifest als boolesche Eigenschaft des<application>
-Tags hinzugefügt.isSplitSupported
wurde verworfen und durchsplitSupportStatus
ersetzt, um ausführlichere Informationen dazu zu liefern, warum die Aufteilungsfunktion nicht verfügbar ist.- Die verschachtelte Klasse
SplitController.SplitSupportStatus
wurde hinzugefügt, um Statuskonstanten für die EigenschaftsplitSupportStatus
bereitzustellen. SplitController
wurde auf mehrere Module umgearbeitet:- Modul
ActivityEmbeddingController
fürActivity
- oderActivityStack
-verwandte APIs. isActivityEmbedded
wurde vonSplitController
nachActivityEmbeddingController
verschoben.- Modul
RuleController
fürEmbeddingRule
verwandte Vorgänge: - Entfernte
SplitController
APIs:clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
RuleController
APIs hinzugefügt:addRule()
: Damit wird eine Regel hinzugefügt oder eine Regel mit demselben Tag aktualisiert.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.
- Modul
- Alle Module erfordern einen Kontext, der durch die Methode
#getInstance()
initialisiert wird, darunter:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- Die Klasse
EmbeddingAspectRatio
wurde hinzugefügt, um enum-ähnliche Verhaltenskonstanten in Bezug auf das Seitenverhältnis der Anzeige zu definieren. - Die Klasse
SplitAttributes
wurde hinzugefügt, um das geteilte Layout zu definieren. SplitController
wurden Rechnerfunktionen fürSplitAttributes
hinzugefügt, um aufgeteilte Layouts anzupassen:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
, um zu prüfen, ob die SplitAttributesCalculator APIs auf dem Gerät unterstützt werden
- Feld „
EmbeddingRule#tag
“ wurde hinzugefügt. - API-Aktualisierungen in
SplitRule
:defaultSplitAttributes
wurde hinzugefügt: Definiert das Standardlayout für die Aufteilung einer Aufteilung und ersetztsplitRatio
undlayoutDirection
.- Übersetzung der XML-Eigenschaften
splitRatio
undsplitLayoutDirection
zudefaultSplitAttributes
hinzugefügt. - Die Definitionen der Mindestabmessungen wurden geändert, sodass nun dichteunabhängige Pixel (dp) anstelle von Pixeln verwendet werden.
minHeightDp
wurde mit dem Standardwert 600 dp hinzugefügt.minWidth
wurde zuminWidthDp
geändert. Der Standardwert ist 600 dp.minSmallestWidth
wurde zuminSmallestWidthDp
geändert. Der Standardwert ist 600 dp.maxAspectRatioInHorizontal
wurde mit dem StandardwertALWAYS_ALLOW
hinzugefügt.maxAspectRatioInPortrait
wurde mit dem Standardwert1.4
hinzugefügt.- Die verschachtelte Klasse
FinishBehavior
wurde definiert, um Konstanten für das Abschlussverhalten zu ersetzen. - Die Eigenschaftsänderungen wurden auf die verschachtelte
Builder
-Klasse vonSplitPairRule
undSplitPlaceholderRule
angewendet.
- „
SplitInfo#getSplitRatio()
“ wurde durch „SplitInfo#getSplitAttributes()
“ ersetzt, um zusätzliche Informationen zur Aufteilung anzugeben.
WindowLayout
WindowInfoTracker
wurde um Kontextunterstützung bei Nicht-Aktivitäts-UI ergänzt.- Der UI-Kontext ohne Aktivität wurde zu
WindowMetricsCalculator
hinzugefügt.
Migrationsschritte
- Damit das Einbetten von Aktivitäten aktiviert ist, um Aktivitäten in Aufteilungen anzuzeigen, müssen Apps dem
<application>
-Manifest-Tag diePROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
-Eigenschaft hinzufügen:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
So kann das System das Aufteilungsverhalten für eine App im Voraus optimieren. SplitInfo
-Verhältnis- Prüfen Sie, 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üfen Sie, ob der aktuelle Split gestapelt ist:
SplitController
-Migrationen:SplitController.getInstance()
Änderungen amSplitController.getInstance(Context)
.SplitController.initialize(Context, @ResId int)
Änderungen anRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
.SplitController.getInstance().isActivityEmbedded(Activity)
Änderungen amActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
.SplitController.getInstance().registerRule(rule)
Änderungen amRuleController.getInstance(Context).addRule(rule)
.SplitController.getInstance().unregisterRule(rule)
Änderungen amRuleController.getInstance(Context).removeRule(rule)
.SplitController.getInstance().clearRegisteredRules()
Änderungen amRuleController.getInstance(Context).clearRules()
.SplitController.getInstance().getSplitRules()
Änderungen amRuleController.getInstance(Context).getRules()
.
SplitRule
-Property-Migrationen:minWidth
undminSmallestWidth
verwenden jetzt dp-Einheiten anstelle von Pixeln. Apps können den folgenden Aufruf verwenden:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
oder einfachminWith
in Pixeln durchdisplayMetrics#density
teilen.
- Abschlussverhaltenskonstanten müssen zu
FinishBehavior
-enum-ähnlichen Klassenkonstanten migriert werden:FINISH_NEVER
Änderungen amFinishBehavior.NEVER
.FINISH_ALWAYS
Änderungen amFinishBehavior.ALWAYS
.FINISH_ADJACENT
Änderungen amFinishBehavior.ADJACENT
.
- Die Layoutrichtung muss zu
SplitAttributes.LayoutDirection
migriert werden:ltr
Änderungen amSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
.rtl
Änderungen amSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
.locale
Änderungen amSplitAttributes.LayoutDirection.LOCALE
.splitRatio
muss zuSplitAttributes.SplitType.ratio(splitRatio)
migriert werden.
SplitPairRule.Builder
-Migrationen:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
Änderungen amkotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
setLayoutDirection(layoutDirection)
undsetSplitRatio(ratio)
werden zukotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
geändertsetFinishPrimaryWithSecondary
undsetFinishSecondaryWithPrimary
verwenden dieFinishBehavior
-enum-ähnlichen Konstanten. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.- Verwende
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
, um Teilstrecken auf Geräten im Hochformat anzuzeigen.
SplitPlaceholder.Builder
-Migrationen:- Hat nur die Parameter
filters
undplaceholderIntent
. Andere Eigenschaften werden in Setter verschoben. Weitere Informationen finden Sie unter „SplitPairRule.Builder-Migrationen“. setFinishPrimaryWithPlaceholder
verwendet dieFinishBehavior
-enum-ähnlichen Konstanten. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.setLayoutDirection(layoutDirection)
undsetSplitRatio(ratio)
ändern sich zu:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Verwende
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
, um Teilstrecken auf Geräten im Hochformat anzuzeigen.
- Hat nur die Parameter
Version 1.1.0-alpha06
22. Februar 2023
androidx.window:window-*:1.1.0-alpha06
wird freigegeben. Version 1.1.0-alpha06 enthält diese Commits.
Neue Funktionen
- Experimentelle Version zum Abrufen des
WindowLayoutInfo
aus einem UI-Kontext verfügbar machen.
API-Änderungen
- Fügen Sie
splitSupportStatus
hinzu, um anzugeben, ob das Einbetten von Aktivitäten verfügbar ist. (I10024) - UI-Kontext-
WindowLayoutInfo
-API als experimentell festlegen. (I58ee0) - Einführung von
WindowAreaController
und APIs zum Aktivieren desRearDisplay
-Modus, um das aktuelle Fenster auf den Bildschirm zu verschieben, der mit der Rückkamera ausgerichtet ist. (Iffcbf) - Standardhintergrundfarbe ändern (I1ac1b)
- Fügen Sie
SplitAttributes
-Parameter hinzu. (I18bdd) - Fügen Sie APIs für
SplitRule
,SplitAttributes
undSplitAttributesCalculator
hinzu. (I92d23) - Verbessern Sie die APIs um
maxAspectRatio
:- Ersetzen Sie
alwaysAllow()
undalwaysDisallow()
durchALWAYS_ALLOW
undALWAYS_DISALLOW
. - API-Dokumentation von @see mit der eigenständigen 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)
SplitRule
dauert jetztmaxAspectRatioInPortrait/Landscape
. Die Aufteilung von Aktivitäten ist nur zulässig, wenn das Seitenverhältnis der übergeordneten Grenzen kleiner oder gleich dem angefordertenmaxAspectRatio
ist. (Ia5990)RuleController#parseRules
in statisch ändern (I785df)- APIs für ActivityEmbedding verbessern
- API-Benennung anpassen – für mehrere Instanzen „Hinzufügen/Entfernen“ verwenden:
registerRule
Änderungen amaddRule
unregisterRule
Änderungen amremoveRule
- Ersetzen Sie
getSplitRules
durchgetRules
, daActivityRule
keine Aufteilungsregel ist - Fügen Sie
RuleController#setRules
hinzu, um eine Reihe von Regeln festzulegen - Extrahieren Sie regelbezogene APIs von
SplitController
zu SingletonRuleController
. Das sind die Optionen: addRule
removeRule
getRules
setRules
clearRules
parseRules
- Extrahiert
#isActivityEmbedded
vonSplitController
in SingletonActivityEmbeddingController
. Das sind die Optionen: isActivityEmbedded
SplitController#initialize
entfernen. VerwendeRuleController#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)
- Statische Regeln werden nicht mehr durch Laufzeitregeln unterschieden. Allerdings werden
#clearRules
-Ergebnisse aufgerufen, um alle Regeln zu löschen, unabhängig davon, ob sie mit statischen XML-Regeldefinitionen oder zur Laufzeit registriert sind. Um das bisherige Verhalten vonSplitController#clearRegisteredRules
zu erhalten, rufen SieRuleController#parseRules
mit der XML-Ressourcen-ID auf und rufen SieRuleController#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)
- Verbessern Sie die SplitRule APIs:
- Verwenden Sie für
SplitRule
die Mindestgröße in DP statt Pixel. - Refaktorieren Sie den
SplitRule
-Builder so, dass Mindestdimensionen als optional festgelegt werden. (I95f17)
- Verwenden Sie für
- Übergeben Sie einen Kontext, um
SplitController
(I42549) zu initialisieren 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 freigegeben. Version 1.1.0-alpha04 enthält diese Commits.
Neue Funktionen
- Stelle eine Methode zur Verfügung, um festzustellen, ob
ActivityStack
fürActivityEmbedding
leer ist. - Experimentelle API-Tags wurden aus
ActivityEmbedding
APIs entfernt. - Blenden Sie den
ActivityRule
-Konstruktor aus, daBuilder
die bevorzugte Konstruktionsmethode ist. - Fügen Sie eine experimentelle Methode hinzu, um das
WindowInsets
aufWindowMetrics
abzurufen. - Aktualisieren Sie
SplitPlaceholderFinishBehavior
, damit der Platzhalter nicht fertig gestellt wird. Das Fertigstellen des Platzhalters hat zu einem verwirrenden Verhalten geführt.
API-Änderungen
- Veröffentliche den Wert
isEmpty
, um den lustigenisEmpty
zu ersetzen. - Benennen Sie Aktivitäten des
ActivityStack
-Parameters inactivitiesInProcess
um. (Ia5055) - Entfernen Sie
ActivityFilter#matchesClassName
undActivityFilter#matchesClassNameOrWildCard
, da sie verwirrend sind. - Fügen Sie
ActivityFilter#componentName
undActivityFilter#intentAction
hinzu, damit der Aufrufer zwischen verschiedenen Filtern unterscheiden kann (I41f22). @Deprecated
APIs aus der experimentellen API entfernen (I216b3)@ExperimentalWindowApi
für Activity Embedding APIs (I69ebe) entfernen- Blenden Sie den
ActivityRule
-Konstruktor aus. Verwenden Sie stattdessen den Builder. (If4eb6) - Füge APIs hinzu, um zu prüfen, ob eine Aktivität Teil des
ActivityFilter
ist. (Ia43cf) - API-Dateien aktualisieren, um Änderungen an den Klassen
WindowMetrics
undWindowMetricsCalculatorCompat
zu berücksichtigen (I667fe) ActivityEmbedding
-Property-Javadoc und Klassennamen aktualisieren (Ia1386)ActivityEmbedding
-Property-Tag-Namen zur Verwendung in der Datei „AndroidManifest.xml“ (Id1ad4) hinzufügen- Die neuen APIs
SplitPlaceholderFinishBehavior
undSplitPlaceholderRule.finishPrimaryWithPlaceholder
wurden hinzugefügt. Dies ersetzt die vorhandeneSplitPlaceholderRule.finishPrimaryWithSecondary
. Diese definiert, wann die Platzhalteraktivitäten abgeschlossen sind und wie sich verknüpfte Aktivitäten in der Aktivitätseinbettung verhalten sollen. (I64647)
Fehlerkorrekturen
- Einführung von
WindowAreaController
und APIs zum Aktivieren desRearDisplay
-Modus, um das aktuelle Fenster auf den Bildschirm zu verschieben, der mit der Rückkamera ausgerichtet ist. (I388ab)
Version 1.1.0-alpha03
27. Juli 2022
androidx.window:window-*:1.1.0-alpha03
wird freigegeben. Version 1.1.0-alpha03 enthält diese Commits.
Neue Funktionen
- Aktualisieren Sie die Standardwerte für Einbettungsregeln.
API-Änderungen
- Aktualisieren Sie die Standardwerte für Eigenschaften von Einbettungsregeln. (Ic4d35)
Version 1.1.0-alpha02
11. Mai 2022
androidx.window:window-*:1.1.0-alpha02
wird freigegeben. Version 1.1.0-alpha02 enthält diese Commits.
Neue Funktionen
- Geben Sie die Adapterbibliotheken frei, um Java und RxJava zu unterstützen.
Version 1.1.0-alpha01
11. Mai 2022
androidx.window:window-*:1.1.0-alpha01
wird freigegeben. Version 1.1.0-alpha01 enthält diese Commits.
Neue Funktionen
- Releaseadapter zur Unterstützung von Java und RxJava
Version 1.1.0-alpha01
20. April 2022
androidx.window:window:1.1.0-alpha01
wird freigegeben. Version 1.1.0-alpha01 enthält diese Commits.
Neue Funktionen
- Es wurde ein Fehler behoben, bei dem eine App im Hintergrund keine Foldfunktionen mehr ausgibt.
- Erweitern Sie die experimentelle ActivityEmbedding API.
API-Änderungen
- Eine öffentliche API, mit der geprüft werden kann, ob eine Aktivität eingebettet wird. (I39eb7)
Fehlerkorrekturen
- APIs hinzufügen, die das Abschlussverhalten für Container in Aktivitätsaufteilungen anpassen (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 freigegeben. Version 1.0.0 enthält diese Commits.
Hauptfunktionen von Version 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 freigegeben. 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 hinzu, um den aktuellen und den maximalen
WindowMetrics
zu berechnen. - Unterstützende Test-APIs hinzufügen
Version 1.0.0-beta04
17. November 2021
androidx.window:window-*:1.0.0-beta04
wird freigegeben. 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üge eine einfache TestRule für WindowMetricsCalculator hinzu, um Entwickler bei der Verwendung von Robolectric zu unterstützen.
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, damit sie übereinstimmen. (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 freigegeben. Version 1.0.0-beta03 enthält diese Commits.
Neue Funktionen
- Fügen Sie experimentelle APIs zum Einbetten von Aktivitäten hinzu. Mit dieser anfänglichen Layoutversion können zwei Aktivitäten nebeneinander angezeigt werden.
API-Änderungen
- Die currentWindowMetrics-API wurde entfernt, da sie nicht korrekt angegeben werden kann. Verwenden Sie stattdessen WindowMetricsCalculator (Icda5f).
- Die Erweiterungs-API wurde aktualisiert. (Ica92b)
- Es wurde eine Oberfläche für eine neue Funktion hinzugefügt, mit der Aktivitäten eingebettet und nebeneinander im Fenster der übergeordneten Aufgabe angezeigt werden können. (I5711d)
- Verbergen der Konstruktoren für WindowMetrics und WindowLayoutInfo, verwenden Sie stattdessen die Test-APIs. (I5a1b5)
- Fügen Sie eine API hinzu, um fiktive 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 freigegeben. Version 1.0.0-beta02 enthält diese Commits.
Neue Funktionen
- Fügen Sie eine experimentelle Annotation hinzu, um experimentelle APIs annotieren zu können. (I9f1b6)
- Füge eine Testmethode hinzu, um eine Test-Faltfunktion zu erstellen, die ein Rect akzeptiert. Dies macht es einfacher, Tests durchzuführen, wenn du Robolectric verwendest, anstatt eine tatsächliche Aktivität zu verwenden. (Id1cca)
Version 1.0.0-beta01
18. August 2021
androidx.window:window-*:1.0.0-beta01
wird freigegeben. Version 1.0.0-beta01 enthält diese Commits.
Neue Funktionen
- Alte Konstanten entfernt und
FoldingFeature
in eine Schnittstelle umgewandelt.
API-Änderungen
- Alte Konstanten beseitigen und FoldFeature zu einer Schnittstelle machen (I9a2d5)
Fehlerkorrekturen
- Bibliotheken, die von der
Test Core
-Bibliothek abhängig sind, wurden auf Version1.4.0
aktualisiert und funktionieren jetzt mit der Android-Plattform Version S. (I88b72, b/189353863)
Version 1.0.0-alpha10
4. August 2021
androidx.window:window-*:1.0.0-alpha10
wird freigegeben. 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 aktuellen Fenstermesswerte in einen Flow in WindowInfoRepository, da sich der Wert im Laufe der Zeit ändert.
- WindowInfoRepoJavaAdapter umbenennen in WindowInfoRepoCallbackAdapter
- Hilfsmethode zum Erstellen von FoldingFeature-Testobjekten hinzufügen
- Aktualisieren Sie Pakete, um Klassen anhand der von ihnen unterstützten Funktion zu gruppieren.
API-Änderungen
- Benennen Sie ActivityExt um in ActivityExtensions und ändern Sie von Repo zu Repository. (I61a16)
- Pakete für Klassen aktualisieren. (I23ae2)
- WindowMetrics aus WindowInfoRepo entfernen (I24663)
- Entfernen Sie WindowManager und verwenden Sie WindowInfoRepo.
- WindowBackend intern machen. (I06d9a)
- Fenstermesswerte in Ablauf umwandeln.
- Java-Adapter umbenennen in WindowInfoRepoCallbackAdapter
- CallbackFlow wird entfernt, damit keine experimentellen APIs in Verwendung sind. (Ia4d15)
- Fügen Sie eine Hilfsmethode zum Erstellen von Test-Displayfunktionen hinzu.
- Von „occlusionMode“ zu „occlusionType“ (If4cff) ändern
Fehlerkorrekturen
- Proguard-Fehler behoben, bei dem die Kernbibliothek entfernt wurde.
- Fehler behoben, bei dem WindowLayoutInfo nicht an zusätzliche Abonnenten gesendet wurde.
- Fehler behoben, bei dem Konfigurationsänderungen keine Updates der faltbaren Funktion auslösten.
Version 1.0.0-alpha09
30. Juni 2021
androidx.window:window-*:1.0.0-alpha09
wird freigegeben. Version 1.0.0-alpha09 enthält diese Commits.
Neue Funktionen
- Wechsel von Ganzzahlkonstanten zu unbegrenzten Enums.
- Füge ein Test-Dienstprogramm hinzu, um die faltbaren Funktionen zum Testen zu erstellen.
API-Änderungen
- Fügen Sie eine Hilfsmethode zum Erstellen von Test-Displayfunktionen hinzu. (I3cf54)
- Von „
occlusionMode
“ in „occlusionType
“ ändern.
- Von „
Fehlerkorrekturen
- Beim Hinzufügen mehrerer Nutzer der Datenstreams wird der Anfangswert ausgegeben.
Version 1.0.0-alpha08
16. Juni 2021
androidx.window:window-*:1.0.0-alpha08
wird freigegeben. Version 1.0.0-alpha08 enthält diese Commits.
Neue Funktionen
- Es wurde ein Testartefakt veröffentlicht, um Tests bei 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 freigegeben. Version 1.0.0-alpha07 enthält diese Commits.
Neue Funktionen
- Migrieren Sie die Kernfensterbibliothek zu Kotlin. Es werden Koroutinen und Anhalten-Funktionen verwendet, um in Zukunft asynchrone Daten verfügbar zu machen.
- Fügen Sie WindowInfoRepo als Hauptinteraktionspunkt zum Abrufen von WindowMetrics und dem Stream von WindowLayoutInfo hinzu.
- Neues
window-java
-Artefakt, um Java-kompatible APIs verfügbar zu machen, um Callbacks zu registrieren und ihre Registrierung aufzuheben. - Neue
window-rxjava2
- undwindow-rxjava3
-Artefakte zur Bereitstellung von RxJava angepassten APIs.
API-Änderungen
- Fügen Sie
WindowServices
hinzu, um Abhängigkeiten einheitlich bereitzustellen.- Fügen Sie eine koroutinebasierte API hinzu, um Fensterlayoutinformationen zu nutzen. (Iab70f)
- Migrieren Sie die Kernbibliothek des Fenstermanagers zu Kotlin. (Icca34)
Fehlerkorrekturen
- Fügen Sie eine neue Datenklasse hinzu, um Featuregrenzen darzustellen. (I6dcd1)
Version 1.0.0-alpha06
5. Mai 2021
androidx.window:window:1.0.0-alpha06
wird freigegeben. Version 1.0.0-alpha06 enthält diese Commits.
Neue Funktionen
- Wir haben mit der Migration zu Kotlin begonnen und sie im nächsten Release abgeschlossen.
- DeviceState wurde aus der öffentlichen API entfernt. Bitte verwende stattdessen FoldingFeature.
- Wir haben „
STATE_FLIPPED
“ aus den „FoldingFeature“-Status entfernt, da sie derzeit für keinen Anwendungsfall unterstützt wird. - Wir haben auch andere eingestellte APIs entfernt.
API-Änderungen
- Kotlin als Abhängigkeit hinzufügen
- Zentrale Bibliothek zu Kotlin migrieren (Idd995)
DisplayFeature
-Builder wurde entfernt. (I61fa4)DeviceState
wurde aus der öffentlichen API entfernt. Verwende stattdessenFoldingFeature
. (Id6079)- Gerätestatus-Callback aus Erweiterungen entfernen. (I5ea83)
STATE_FLIPPED
aus FoldingFeature entfernen. (I9c4e1)- Veraltete Registrierungsmethoden entfernen. (Ib381b)
Version 1.0.0-alpha05
24. März 2021
androidx.window:window:1.0.0-alpha05
wird freigegeben. Version 1.0.0-alpha05 enthält diese Commits.
Neue Funktionen
„FoldingFeature“ bietet jetzt praktische Methoden, mit denen Apps erkennen können, ob sich die Funktion voneinander trennt oder verschließt, und die Ausrichtung des Scharniers bestimmen. Wir verbergen auch die Scharnierart,
Die Methoden zum synchronen Lesen werden aus WindowManager entfernt. Methoden zum synchronen Lesen sind fehleranfällig, da es eine implizite Race-Bedingung gibt. Registrieren Sie Listener und Callbacks, um Aktualisierungen zu WindowLayoutInfo zu erhalten.
API-Änderungen
- Praktische Methoden für die Arbeit mit FoldingFeatures hinzufügen (Ie733f)
- Entfernt synchrone Lesemethoden aus WindowManager (I96fd4)
Version 1.0.0-alpha04
10. März 2021
androidx.window:window:1.0.0-alpha04
wird freigegeben. Version 1.0.0-alpha04 enthält diese Commits.
Neue Funktionen
- Es wurde ein Fehler behoben, bei dem kein WindowLayoutInfo ausgegeben wird, wenn keine OEM-Implementierung vorhanden ist. Jetzt geben wir eine leere WIndowLayoutInfo aus.
- Ein Fehler wurde behoben, bei dem der Status nicht richtig aktualisiert wurde, wenn sich der Status des Scharniers änderte, während die App im Hintergrund war. Jetzt sollte der Zustand einheitlich sein.
- Aktualisieren Sie unsere Proguard-Dateien, um Warnungen von Laufzeitabhängigkeiten zu ignorieren.
Fehlerkorrekturen
- Geben Sie 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 freigegeben. 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 Anwendungen Defensivcode schreiben und nach einem Zeitlimit einen Standardwert ausgeben. Wir übernehmen keine Garantien für Implementierungen durch OEMs und der anfängliche Wert kann sich verzögern.
Fehlerkorrekturen
- Geben Sie 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 freigegeben. 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. Bedeutende Beispiele sind 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 Benutzeroberfläche umgewandelt, die in Zukunft auch in anderen Funktionen implementiert wird. Unsere erste Funktion ist FoldingFeature. Hier ist auch der Status des Scharniers enthalten, 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 und allen Systemeinlagen. Wir haben die API in dieser Version rückportiert, damit Entwickler WindowMetrics nutzen und weiterhin ältere Android-Versionen unterstützen können. WindowMetrics kann über die APIs
WindowManager#getCurrentWindowMetrics()
und WindowManager#getMaximumWindowMetrics() abgerufen werden.
API-Änderungen
- APIs einstellen, die in der nächsten Alphaversion entfernt werden (Ib7cc4)
- Aktualisiert
ExtensionInterface
, um explizite Aktivitätsreferenzen zu akzeptieren. (I07ded) - Stellt die WindowMetrics-API vor. (I3ccee)
- Methoden zum synchronen Lesen aus WindowManager entfernen (I69983)
- Schützt das ExtensionWindowBackend-Paket. (Ied208)
Fehlerkorrekturen
- Aktualisieren Sie die
ExtensionInterface
APIs, um visuelle Kontexte zu akzeptieren. (I8e827)
Externer Beitrag
- Führen Sie DeviceState und WindowLayoutInfo zusammen, um den Zugriff auf Daten zu vereinfachen. (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 Fenstermanager-Bibliothek.
Neue Funktionen
DisplayFeature
: Diese neue API erkennt Störungen an durchgehenden Flachbildfernseheroberflächen wie Scharnieren oder Klappflächen.DeviceState
: Diese neue API stellt den aktuellen Standort des Smartphones aus einer Liste definierter Sicherheitseinstellungen bereit (z. B.CLOSED
,OPENED
,HALF_OPENED
usw.).