androidx.compose.material
androidx.compose.material.icons
(Weitere Informationen finden Sie in der API-Referenzdokumentation für alle Erstellungspakete)
Letzte Aktualisierung | Stabile Version | Release Candidate | Beta-Ausgabe | Alphaversion |
---|---|---|---|---|
30. Oktober 2024 | 1.7.5 | - | - | 1.8.0-alpha05 |
Struktur
Compose ist eine Kombination aus sieben Maven-Gruppen-IDs in androidx
. Jede Gruppe enthält eine gezielte Teilmenge von Funktionen, für die jeweils eigene Release-Notes gelten.
In dieser Tabelle werden die Gruppen und Links zu den einzelnen Versionshinweisen erläutert.
Gruppe | Beschreibung |
---|---|
compose.animation | Animationen in den Jetpack Compose-Anwendungen erstellen, um die User Experience zu bereichern |
compose.compiler | @Composable-Funktionen transformieren und Optimierungen mit einem Kotlin-Compiler-Plug-in aktivieren. |
compose.foundation | Erstellen Sie Jetpack Compose-Anwendungen mit vorgefertigten Bausteinen und erweitern Sie die Grundlage, um eigene Designsystem-Elemente zu erstellen. |
compose.material | Erstellen Sie Jetpack Compose-UIs mit vorgefertigten Material Design-Komponenten. Dies ist der übergeordnete Einstiegspunkt von Compose. Er wurde entwickelt, um Komponenten bereitzustellen, die denen auf www.material.io entsprechen. |
compose.material3 | Erstellen Sie Jetpack Compose-UIs mit Material Design 3-Komponenten, der nächsten Weiterentwicklung von Material Design. Material 3 umfasst aktualisierte Themen und Komponenten sowie Personalisierungsfunktionen von Material You wie dynamische Farben. Es wurde so konzipiert, dass es zum neuen visuellen Stil und zur System-UI von Android 12 passt. |
compose.runtime | Grundlegende Bausteine des Programmiermodells und der Statusverwaltung von Compose sowie die Kernlaufzeit, auf die das Compose-Compiler-Plug-in ausgerichtet ist. |
compose.ui | Grundlegende Komponenten der Benutzeroberfläche zum Schreiben von E-Mails, die für die Interaktion mit dem Gerät erforderlich sind, darunter Layout, Zeichnen und Eingabe |
Abhängigkeiten deklarieren
Wenn Sie eine Abhängigkeit von Compose 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.compose.material:material:1.7.1" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.7.1") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.
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 hinzufügen, indem Sie auf die Sternschaltfläche klicken.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Version 1.8
Version 1.8.0-alpha05
30. Oktober 2024
androidx.compose.material:material-*:1.8.0-alpha05
wird veröffentlicht. Version 1.8.0-alpha05 enthält diese Commits.
Fehlerkorrekturen
- Optimieren Sie das Verhalten von
contentPadding
im Scaffold, damit der Textkörper nicht jedes Mal neu formatiert werden muss, wenn sichcontentPadding
ändert. (I8c8e2, b/373904168) - Der Material-Schieberegler soll seinen Wert ändern, wenn Steuertasten gedrückt werden. (I1c442)
Version 1.8.0-alpha04
16. Oktober 2024
androidx.compose.material:material-*:1.8.0-alpha04
wird veröffentlicht. Version 1.8.0-alpha04 enthält diese Commits.
API-Änderungen
- Entfernen Sie
readOnly
ausTextFields
, um die Version an die stabile Foundation-Version anzupinnen. (I3aaba)
Fehlerkorrekturen
- In Expandable-Komponenten unter Android S+ werden Ripples unterstützt, z. B. eine Karte, die sich durch Klicken maximiert. Bisher füllte die Welle nicht die neue Größe aus, sondern wurde auf die neuen Grenzen erweitert. (If509a, b/183019123)
Version 1.8.0-alpha02
18. September 2024
androidx.compose.material:material-*:1.8.0-alpha02
wurde veröffentlicht. Version 1.8.0-alpha02 enthält diese Commits.
Version 1.8.0-alpha01
4. September 2024
androidx.compose.material:material-*:1.8.0-alpha01
wird veröffentlicht. Version 1.8.0-alpha01 enthält diese Commits.
API-Änderungen
- Neuer
NavGraphBuilder.bottomSheet
-Builder zum Erstellen eines BottomSheets mit sicheren Argumenten hinzugefügt ((I28589, I777db, b/351858980))
Version 1.7
Version 1.7.5
30. Oktober 2024
androidx.compose.material:material-*:1.7.5
wird veröffentlicht. Version 1.7.5 enthält diese Commits.
Version 1.7.4
16. Oktober 2024
androidx.compose.material:material-*:1.7.4
wurde veröffentlicht. Version 1.7.4 enthält diese Commits.
Version 1.7.2
18. September 2024
androidx.compose.material:material-*:1.7.2
wird veröffentlicht. Version 1.7.2 enthält diese Commits.
Version 1.7.1
10. September 2024
- Keine Änderungen an Android-Artefakten.
-desktop
Artefakte wurden entfernt und-jvmStubs
und-linuxx64Stubs
Artefakte hinzugefügt. Keines dieser Ziele ist zur Verwendung gedacht. Sie sind Platzhalter, die Jetbrains Compose unterstützen.
Version 1.7.0
4. September 2024
androidx.compose.material:material-*:1.7.0
wurde veröffentlicht. Version 1.7.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.6.0
- Materialkomponenten wurden auf die neuen Ripple APIs umgestellt und
RippleTheme
wird nicht mehr abgefragt. - Bei Materialkomponenten, für die zuvor ein
MutableInteractionSource
akzeptiert und standardmäßigremember { MutableInteractionSource() }
verwendet wurde, ist jetzt ein nullablesMutableInteractionSource
zulässig und der Standardwert ist null. Wenn SieMutableInteractionSource
nicht hochskalieren und verwenden, sollten Sie „null“ übergeben. So können einige Komponenten eine Instanz nur bei Bedarf erstellen, was die Leistung verbessert. Wir empfehlen Ihnen außerdem, ähnliche Änderungen an Ihren eigenen Komponenten vorzunehmen. BottomDrawer
,ModalBottomSheet
,BackdropScaffold
und das standardmäßige Bottomsheet wurden zur stabilen API hochgestuft.
Version 1.7.0-rc01
21. August 2024
androidx.compose.material:material-*:1.7.0-rc01
wird veröffentlicht. Version 1.7.0-rc01 enthält diese Commits.
Version 1.7.0-beta07
7. August 2024
androidx.compose.material:material-*:1.7.0-beta07
wurde veröffentlicht. Version 1.7.0-beta07 enthält diese Commits.
Version 1.7.0-beta06
24. Juli 2024
androidx.compose.material:material-*:1.7.0-beta06
wird veröffentlicht. Version 1.7.0-beta06 enthält diese Commits.
Version 1.7.0-beta05
10. Juli 2024
androidx.compose.material:material-*:1.7.0-beta05
wird veröffentlicht. Version 1.7.0-beta05 enthält diese Commits.
Version 1.7.0-beta04
26. Juni 2024
androidx.compose.material:material-*:1.7.0-beta04
wird veröffentlicht. Version 1.7.0-beta04 enthält diese Commits.
Version 1.7.0-beta03
12. Juni 2024
androidx.compose.material:material-*:1.7.0-beta03
wird veröffentlicht. Version 1.7.0-beta03 enthält diese Commits.
Version 1.7.0-beta02
29. Mai 2024
androidx.compose.material:material-*:1.7.0-beta02
wird veröffentlicht. Version 1.7.0-beta02 enthält diese Commits.
API-Änderungen
- API für das Formatieren der Links aktualisiert:
TextLinkStyles
wurde an dieTextStyle
verschoben undTextDefaults
aus dem Material entfernt (I5477b)
Version 1.7.0-beta01
14. Mai 2024
androidx.compose.material:material-*:1.7.0-beta01
wird veröffentlicht. Version 1.7.0-beta01 enthält diese Commits.
API-Änderungen
- Die API zum Abrufen von Links zu Material-Themen in Text wurde aktualisiert. Insbesondere wurden die Methoden aus der
TextDefaults
zum Erstellen von themenbezogenenLinkAnnotations
und zum Parsen von HTML mit themenbezogenen Links entfernt. Stattdessen wurde die KlasseTextLinkStyles
hinzugefügt, mit der die Links als Parameter für das Text-Element formatiert werden können. (I31b93)
Version 1.7.0-alpha08
1. Mai 2024
androidx.compose.material:material-*:1.7.0-alpha08
wird veröffentlicht. Version 1.7.0-alpha08 enthält diese Commits.
API-Änderungen
- Behebung des Problems, dass
backgroundColor
nicht aufTextFieldDecorationBox
undOutlinedTextFieldDecorationBox
angewendet wurde. Für Dekorationsboxen kann jetzt einshape
-Parameter verwendet werden. (I371c2, b/307694651) RippleConfiguration#isEnabled
wurde entfernt undLocalRippleConfiguration
ist jetzt nullable. Wenn Sie eine Verbreitung deaktivieren möchten, geben Sienull
anLocalRippleConfiguration
an, anstattRippleConfiguration
mitisEnabled = false
anzugeben. (I22725)- Textlinks haben neben dem normalen Stil auch einen Stil für den gedrückten Zustand, den Mauszeiger- und den Fokusstil.
TextDefaults
-Methoden haben jeweils einpressedStyle
-Argument, das dies unterstützt. (Ic473f, b/139312671)
Fehlerkorrekturen
OutlinedTextField
Der obere Abstand für das Label berücksichtigt jetzt die Systemschriftgröße. (Idc781)
Version 1.7.0-alpha07
17. April 2024
androidx.compose.material:material-*:1.7.0-alpha07
wird veröffentlicht. Version 1.7.0-alpha07 enthält diese Commits.
API-Änderungen
- Die Stiloption für Textlinks wurde zusätzlich zur normalen Gestaltung gedrückt, wenn der Mauszeiger darauf bewegt wurde und der Text hervorgehoben wurde. (I5f864, b/139312671)
- Es wurde ein
TextDefaults
-Objekt hinzugefügt, das Methoden zum Erstellen einerLinkAnnotation
und zum Parsen von HTML-getaggten Strings enthält, dieMaterialTheme
auf die Links anwenden. (I98532, b/139312671)
Version 1.7.0-alpha06
3. April 2024
androidx.compose.material:material-*:1.7.0-alpha06
wurde veröffentlicht. Version 1.7.0-alpha06 enthält diese Commits.
Mitteilung
androidx.compose.material
verlangt nicht mehr, dieselbe Version jedes Artefakts zu verwenden, ist diese Maven-Gruppe. Nutzer können Versionen der Compose Foundation Library (Ie5fba) mischen und abgleichen
API-Änderungen
- Weitere Standardeinstellungen für
ModalDrawer
undBottomDrawer
wurden in das ObjektDrawerDefaults
verschoben. (Ib5b2e)
Version 1.7.0-alpha05
20. März 2024
androidx.compose.material:material-*:1.7.0-alpha05
wurde veröffentlicht. Version 1.7.0-alpha05 enthält diese Commits.
API-Änderungen
- Das Flag
ScaffoldSubcomposeInMeasureFix
wurde entfernt. (I67363)
Version 1.7.0-alpha04
6. März 2024
androidx.compose.material:material-*:1.7.0-alpha04
wird veröffentlicht. Version 1.7.0-alpha04 enthält diese Commits.
Neue Funktionen
- Es wurde ein neues
androidx.compose.material:material-navigation
-Artefakt hinzugefügt, das jetzt unten Tabellenblätter als Ziele unterstützt, wenn Navigation Compose verwendet wird. Er ersetzt die Materialbibliothek für die Navigation von Begleitern. (d65d57, b/180247978)
Version 1.7.0-alpha03
21. Februar 2024
androidx.compose.material:material-*:1.7.0-alpha03
wird veröffentlicht. Version 1.7.0-alpha03 enthält diese Commits.
API-Änderungen
BottomDrawer
wurde von der experimentellen Version in die stabile Version übernommen.BottomDrawerState
zeigt den Fortschritt jetzt als Funktion an, mit der Sie den Fortschritt zwischen bestimmten Zielen abfragen können. MitBottomDrawerState
lässt sich die Animationsspezifikation jetzt anpassen undconfirmStateChange
ist kein abschließendes Lambda mehr. (I9c029, b/261423850)BackdropScaffold
wurde von der experimentellen Version in die stabile Version übernommen. Die Animationsspezifikation ist jetzt gemäß den Richtlinien einetween
-Spezifikation. DersnackbarHost
-Parameter vonBackdropScaffold
ist nicht mehr der letzte Parameter, um Verwechslungen mit nachgestellten Lambdas zu vermeiden.BackdropScaffoldState
stellt eineprogress(from, to)
API bereit, um den Fortschritt zwischen Ankern abzufragen. (I73f48, b/261423218)- Standard-Unterseitenlisten wurden von der experimentellen Version in die stabile Version überführt. Verworfene Konstruktoren wurden entfernt. Die Animationsspezifikation ist jetzt eine Spezifikation für Tweens, die den Richtlinien entspricht. (I3c1a8, b/278692145, b/261409034)
- Modale Blätter am unteren Rand wurden von experimentell zu stabil hochgestuft. Verworfene Konstruktoren wurden entfernt. Die Animationsspezifikation ist jetzt gemäß den Richtlinien eine
tween
-Spezifikation. (Ic53f4, b/278692145, b/266780235, b/261409034)
Fehlerkorrekturen
- Ein Problem wurde behoben, bei dem
BackdropScaffold
in bestimmten Szenarien in Kombination mitLookaheadScope
abstürzen konnte. (I51396) - Unterkomposition in
BottomSheetScaffold
entfernt, um die Leistung zu verbessern. Ein Problem wurde behoben, bei demBottomSheetScaffold
in bestimmten Szenarien in Kombination mitLookaheadScope
abstürzte. (I2f90c) - Die Unterkomposition in
ModalBottomSheetLayout
wurde entfernt, um die Leistung zu verbessern. (I7a025)
Version 1.7.0-alpha02
7. Februar 2024
androidx.compose.material:material-*:1.7.0-alpha02
wird veröffentlicht. Version 1.7.0-alpha02 enthält diese Commits.
Version 1.7.0-alpha01
24. Januar 2024
androidx.compose.material:material-*:1.7.0-alpha01
wurde veröffentlicht. Version 1.7.0-alpha01 enthält diese Commits.
Änderungen im Verhalten
- Materialkomponenten wurden auf die neuen Ripple APIs umgestellt und
RippleTheme
wird nicht mehr abgefragt.
API-Änderungen
rememberRipple
undRippleTheme
wurden aus Material-Ripple entfernt, wobei neue Ripple- undRippleConfiguration
-APIs zu Material und anderen Designsystembibliotheken hinzugefügt wurden.Materialkomponenten, für die bisher ein
MutableInteractionSource
akzeptiert wurde und standardmäßig{ MutableInteractionSource() }
gespeichert wurde, akzeptieren jetztMutableInteractionSource
, für die Nullwerte zulässig sind, und werden stattdessen auf null gesetzt. Wenn SieMutableInteractionSource
nicht hochskalieren und verwenden, sollten Sie „null“ übergeben. So können einige Komponenten eine Instanz nur bei Bedarf erstellen, was die Leistung verbessert. Wir empfehlen Ihnen außerdem, ähnliche Änderungen an Ihren eigenen Komponenten vorzunehmen.
Version 1.6
Version 1.6.8
12. Juni 2024
androidx.compose.material:material-*:1.6.8
wird veröffentlicht. Version 1.6.8 enthält diese Commits.
Version 1.6.7
1. Mai 2024
androidx.compose.material:material-*:1.6.7
wird veröffentlicht. Version 1.6.7 enthält diese Commits.
Version 1.6.6
17. April 2024
androidx.compose.material:material-*:1.6.6
wurde veröffentlicht. Keine Änderungen seit der letzten Version.
Version 1.6.5
3. April 2024
androidx.compose.material:material-*:1.6.5
wird veröffentlicht. Version 1.6.5 enthält diese Commits.
Version 1.6.4
20. März 2024
androidx.compose.material:material-*:1.6.4
wurde veröffentlicht. Version 1.6.4 enthält diese Commits.
Version 1.6.3
6. März 2024
androidx.compose.material:material-*:1.6.3
wird veröffentlicht. Version 1.6.3 enthält diese Commits.
Fehlerkorrekturen
- Regression in
ExposedDropdownMenu
behoben, damit der Fokus wieder darauf gesetzt werden kann. (c0e0ed, b/323694447)
Version 1.6.2
21. Februar 2024
androidx.compose.material:material-*:1.6.2
wird veröffentlicht. Version 1.6.2 enthält diese Commits.
Version 1.6.1
7. Februar 2024
androidx.compose.material:material-*:1.6.1
wird veröffentlicht. Version 1.6.1 enthält diese Commits.
Version 1.6.0
24. Januar 2024
androidx.compose.material:material-*:1.6.0
wird veröffentlicht. Version 1.6.0 enthält diese Commits.
Version 1.6.0-rc01
10. Januar 2024
androidx.compose.material:material-*:1.6.0-rc01
wurde veröffentlicht. Version 1.6.0-rc01 enthält diese Commits.
Version 1.6.0-beta03
13. Dezember 2023
androidx.compose.material:material-*:1.6.0-beta03
wird veröffentlicht. Version 1.6.0-beta03 enthält diese Commits.
Version 1.6.0-beta02
29. November 2023
androidx.compose.material:material-*:1.6.0-beta02
wurde veröffentlicht. Version 1.6.0-beta02 enthält diese Commits.
Version 1.6.0-beta01
15. November 2023
androidx.compose.material:material-*:1.6.0-beta01
wird veröffentlicht. Version 1.6.0-beta01 enthält diese Commits.
Version 1.6.0-alpha08
18. Oktober 2023
androidx.compose.material:material-*:1.6.0-alpha08
wird veröffentlicht. Version 1.6.0-alpha08 enthält diese Commits.
API-Änderungen
- Eine
materialIcon
-Funktion zugunsten ihrer Überladung mit einemautoMirror
-Parameter verwerfen. (Ia338d)
Fehlerkorrekturen: – Die Höhe von Navigationselementen wird bei großen Inhalten jetzt automatisch erhöht. (0c4ecc, b/272336962)
Version 1.6.0-alpha07
4. Oktober 2023
androidx.compose.material:material-*:1.6.0-alpha07
wird veröffentlicht. Version 1.6.0-alpha07 enthält diese Commits.
- Abhängigkeitsupdates
Version 1.6.0-alpha06
20. September 2023
androidx.compose.material:material-*:1.6.0-alpha06
wird veröffentlicht. Version 1.6.0-alpha06 enthält diese Commits.
Funktionsgefährdende Änderung
- Die Funktionen für die Seitenleiste wurden aus
BottomSheetScaffold
entfernt. Fassen SieBottomSheetScaffold
in einer zusammensetzbaren Funktion in der Leiste zusammen, um die vorherige Funktionalität zu nutzen. Ein Beispiel findest du inBottomSheetScaffoldWithDrawerSample
. (I1dcc8)
API-Änderungen
- Es wurde ein temporäres Flag eingeführt, um zu steuern, ob die untergeordneten Elemente von Scaffold während der Messung oder während des Placements analysiert werden sollen. Standardmäßig wird dies in „Messung“ gemessen. Wenn Sie Probleme mit dem neuen Verhalten haben, reichen Sie bitte ein Problem ein. (If6e3b)
Version 1.6.0-alpha05
6. September 2023
androidx.compose.material:material-*:1.6.0-alpha05
wird veröffentlicht. Version 1.6.0-alpha05 enthält diese Commits.
Neue Funktionen
- Unterstützung für automatisch gespiegelte Symbole beim Rendern in Layouts von rechts nach links hinzugefügt Die Symbole in den Modulen „material-icons-core“ und „material-icons-extended“ bieten jetzt zusätzliche Symbolsätze, die das automatische Spiegeln unterstützen, sofern das Symbol dies zulässt. Die neuen Sets haben das Präfix
Icons.AutoMirrored.Filled...
usw. und enthalten Symbole, die in RTL-Layouts automatisch gespiegelt werden. Eine Liste der Symbole, die automatisch gespiegelt werden können (und sollten), finden Sie in der Liste der Material Design-Symbole.
API-Änderungen
- Unterstützung für automatisch gespiegelte Symbole beim Rendern in Layouts von rechts nach links hinzugefügt Die Symbole in den Modulen „material-icons-core“ und „material-icons-extended“ bieten jetzt zusätzliche Symbolsätze, die das automatische Spiegeln unterstützen, sofern das Symbol dies zulässt. Die neuen Sets haben das Präfix
Icons.AutoMirrored.Filled...
usw. und enthalten Symbole, die in RTL-Layouts automatisch gespiegelt werden. Eine Liste der Symbole, die automatisch gespiegelt werden können (und sollten), finden Sie in der Liste der Material Design-Symbole. Die zuvor angegebenen Symboleigenschaften für diese Symbole sind jetzt als veraltet markiert. Außerdem wird ein Ersatzblock vorgeschlagen, der bei der Migration helfen kann. Falls Sie keine besondere Handhabung der Spiegelung von Symbolen bei RTL haben, empfehlen wir die Migration zu den neuen Symbolen. Beispiel:Icons.Filled.ArrowBack
sollte inIcons.AutoMirrored.Filled.ArrowBack
umstrukturiert werden. (I4b511)
Version 1.6.0-alpha04
23. August 2023
androidx.compose.material:material-*:1.6.0-alpha04
wird veröffentlicht. Version 1.6.0-alpha04 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem wurde behoben, bei dem einige Komponenten mit
Subcomposition
(z.B.BottomSheetScaffold
) in einem Scaffold in einerLookaheadScope
versuchten, ihre Größe zu früh zu lesen. (If2c5d) - Die
offset
-Berechnung vonDropdownMenu
wurde so korrigiert, dass der x-Versatz ausschließlich von der lokalen Layoutrichtung abhängt und der y-Versatz nicht mehr umgekehrt wird, wenn sich das Menü unten auf dem Bildschirm befindet. (Iccc74, b/294103942) - Das Layout von
BottomSheetScaffold
wurde optimiert und ein potenzielles Problem mitBottomSheetScaffold
inLookaheadLayout
behoben. (Ic0afa)
Version 1.6.0-alpha03
9. August 2023
androidx.compose.material:material-*:1.6.0-alpha03
wird veröffentlicht. Version 1.6.0-alpha03 enthält diese Commits.
API-Änderungen
- Material2-Komponenten haben jetzt eine separate API, um
windowInsets
zu übergeben und so die Funktion „Edge-to-Edge“ unter Android zu unterstützen. Im Gegensatz zu Material 3-Komponenten unterstützen Material 2-Komponenten standardmäßig keine Einzüge. Der Wert muss manuell übergeben werden. Eine Orientierungshilfe finden Sie in den entsprechenden Beispielen. (I655e8)
Version 1.6.0-alpha02
26. Juli 2023
androidx.compose.material:material-*:1.6.0-alpha02
wird veröffentlicht. Version 1.6.0-alpha02 enthält diese Commits.
API-Änderungen
- Wir verlagern die Abhängigkeit von der Dichte auf Komponentenebene. Dies gilt für die folgenden Komponenten:
SwipeToDismiss
und tabellenbasierte Komponenten. Verwenden Sie die neue Überlastung, bei der die Dichte ein Parameter ist. (I1846e) - Zusätzliche Anmerkungen zum Angeben zulässiger Eingaben für Composeables (I51109)
- API-Dateien wurden aktualisiert, um die Unterdrückung der Kompatibilität zu vermerken (I8e87a, b/287516207)
- Neue Startausrichtung für
FabPosition
hinzugefügt (Ib7aea, b/170592777) TextFieldColorsWithIcons
in Material 2 wurde zugunsten vonTextFieldColors
eingestellt. Wenn SieleadingIconColor
odertrailingIconColor
überschreiben, überschreiben Sie auch die Überlastung mitinteractionSource
. (Id57ed, b/199377790)
Version 1.6.0-alpha01
21. Juni 2023
androidx.compose.material:material-*:1.6.0-alpha01
wird veröffentlicht. Version 1.6.0-alpha01 enthält diese Commits.
Verhaltensänderungen
includeFontPadding
ist in der Material 2-Typografie jetzt standardmäßigfalse
. Der Standardstil für die Zeilenhöhe wurde ebenfalls inTrim.None
undAlignment.Center
geändert. DenTextStyle
s vonTypography
wurden explizitelineHeight
(in sp) hinzugefügt. Wenn du diese Werte anpassen möchtest, findest du in der API-Dokumentation entsprechende Informationen. Im Blogpost werden diese Änderungen ausführlich erläutert. (Icabc3, I3f801, I04c03)
API-Änderungen
- Die
Swipeable
APIs von Material werden eingestellt. Weitere Informationen finden Sie in derAnchoredDraggable
API von Foundation, die sowohl für einfache als auch komplexe Anwendungsfälle optimiert ist. (I732e0)
Fehlerkorrekturen
BottomSheetState
,ModalBottomSheetState
undBottomDrawerState
haben jetzt eine Fortschrittseigenschaft, die den Fortschritt zwischen dem aktuellen (festgelegten) Anker und dem nächstgelegenen Anker in der Wischrichtung angibt. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
Version 1.5
Version 1.5.4
18. Oktober 2023
androidx.compose.material:material-*:1.5.4
wird veröffentlicht. Version 1.5.4 enthält diese Commits.
Version 1.5.3
4. Oktober 2023
androidx.compose.material:material-*:1.5.3
wird veröffentlicht. An dieser Version wurden keine Änderungen vorgenommen
Version 1.5.2
27. September 2023
androidx.compose.material:material-*:1.5.2
wurde veröffentlicht. Version 1.5.2 enthält diese Commits.
Version 1.5.1
6. September 2023
androidx.compose.material:material-*:1.5.1
wird ohne Änderungen veröffentlicht. Version 1.5.1 enthält diese Commits.
Version 1.5.0
9. August 2023
androidx.compose.material:material-*:1.5.0
wird veröffentlicht. Version 1.5.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.4.0
API-Änderungen
- Änderungen an den Swipeable1 APIs in
BottomSheetScaffold
übernommen. Der ParameterconfirmStateChange
vonBottomSheetState
wurde inconfirmValueChange
umbenannt.progress
wird jetzt als Gleitkommawert angezeigt.animateTo
undsnapTo
sind intern. Verwenden Sie stattdessenexpand()
undcollapse()
.direction
undoverflow
wurden entfernt.offset
wurde durchrequireOffset()
ersetzt. I323b4 - Markieren Sie die
snapTo
-Funktion im Navigationsmenü als nicht experimentelle API. (Ib9c18, b/261425368) - Es wurde ein Parameter für die Farbe des Tracks für kreisförmige Fortschrittsanzeigen und ein Parameter für den Endpunkt des Strichs für kreisförmige und lineare Fortschrittsanzeigen hinzugefügt. (Ie668c, b/216325962, b/222964817)
ModalBottomSheetState
,ModalBottomSheetState.Saver
undconfirmStateChange
vonrememberModalBottomSheetState
wurden inconfirmValueChange
umbenannt. (Ib48d1)- Fügen Sie
Modifier.minimumInteractiveComponentSize
hinzu. Damit kann eine Größe von mindestens 48 dp reserviert werden, um Touch-Interaktionen zu unterscheiden, wenn das Element kleiner wäre. (I33f58, b/258495559) - Änderungen an den APIs für wischbare Inhalte in
ModalBottomSheetLayout
übernommen. Für „animateTo“ vonModalBottomSheetState
wird keinanimationSpec
-Parameter mehr verwendet und der übergebene Offset ist jetzt nullable. Verwenden SierequireOffset
, um den Versatz zu erzwingen. (Ia2e79) @JvmDefaultWithCompatibility
-Anmerkung hinzufügen (I8f206)- Die Änderungen an den wischbaren APIs in
ModalDrawer. DrawerState
wurden durch die Methoden „open“ und „close“ ersetzt und der Offset ist jetzt nullable.animateTo
Verwenden SierequireOffset
, um den Versatz zu erzwingen. (I3de9e) - In Ausklappern und Ansichten werden Tastendrücke jetzt korrekt verzögert, falls Touch-Gesten zu Scrollereignissen führen können.
- Dem Material- und Material3-Text wurden die Parameter
minLines
,TextField
undOutlinedTextField
hinzugefügt, mit denen die minimale Höhe der Komponente in Bezug auf die Anzahl der Zeilen festgelegt werden kann (I4af1d)
Fehlerkorrekturen
- Es wurde ein Problem behoben, durch das
pullRefresh
die Geschwindigkeit nicht nutzte, was zu Überscrollen führte. Außerdem wurde die API-Signatur deronRelease
-Lambda inModifier.pullRefresh
geändert, um für die verbrauchte Geschwindigkeit ein Float zurückzugeben (I7db65, b/266874741) BottomSheetState
,ModalBottomSheetState
undBottomDrawerState
haben jetzt eine Fortschrittseigenschaft, die den Fortschritt zwischen dem aktuellen (festgelegten) Anker und dem nächstgelegenen Anker in der Wischrichtung angibt. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)- Die
AlertDialog
-Schaltfläche zum Schließen wird jetzt unter der Bestätigungsschaltfläche angezeigt, wenn die Aktionen übereinander gestapelt werden, um in die Breite des Dialogfelds zu passen. Durch diese Korrektur wird die Implementierung an die Material Design-Spezifikation angepasst. (I029de, b/235454277) BottomSheetScaffold
nimmt nicht mehr am verschachtelten Scrollen teil, wenngesturesEnabled
auf „falsch“ gesetzt ist. (I634f3, b/215403277)- Ein Fehler wurde behoben, aufgrund dessen
BottomSheetScaffold
abstürzte, wenn für Slots leere Inhalte angegeben wurden. (Ib24a5, b/235588730) - Behebung eines Problems, bei dem Klicks/Mausbewegungen
PullRefreshIndicator
abgefangen wurden. (2494256, b/271777421) - Ein Problem wurde behoben, bei dem
ModalBottomSheetLayout
bei einer Änderung der Ausrichtung in einem Grenzfall abstürzte. Layoutanimationen (z.B.Modifier.animateContentSize
) in/auf dem Tabelleninhalt funktionieren jetzt reibungslos. (I2f981, b/266780234)
Version 1.5.0-rc01
26. Juli 2023
androidx.compose.material:material-*:1.5.0-rc01
wird veröffentlicht. Version 1.5.0-rc01 enthält diese Commits.
Version 1.5.0-beta03
28. Juni 2023
androidx.compose.material:material-*:1.5.0-beta03
wurde veröffentlicht. Version 1.5.0-beta03 enthält diese Commits.
Fehlerkorrekturen
BottomSheetState
,ModalBottomSheetState
undBottomDrawerState
haben jetzt eine Fortschrittseigenschaft, die den Fortschritt zwischen dem aktuellen (festgelegten) Anker und dem nächstgelegenen Anker in der Wischrichtung angibt. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
Version 1.5.0-beta02
7. Juni 2023
androidx.compose.material:material-*:1.5.0-beta02
wird veröffentlicht. Version 1.5.0-beta02 enthält diese Commits.
Version 1.5.0-beta01
24. Mai 2023
androidx.compose.material:material-*:1.5.0-beta01
wird veröffentlicht. Version 1.5.0-beta01 enthält diese Commits.
API-Änderungen
- Der Offset von
DrawerState
undBottomDrawerState
ist nicht mehr zulässig. Stattdessen wirdFloat.NaN
zurückgegeben, um anzuzeigen, dass der Offset nicht vorhanden ist. (Ie9855) - Es wurde eine Option hinzugefügt, um beim Erstellen einer
DropdownMenu
oderExposedDropdownMenu
eineScrollState
zu übergeben, um den vertikalen Scrollstatus der angezeigten Menüpunkte zu steuern. (Idb009, b/185304441) - Unterstützung für die Aktivierung/Deaktivierung der Geste für
ModalBottomSheetLayout
hinzufügen, damit Nutzer die Funktion für mehr Funktionen im unteren Bereich konfigurieren können (I40af0) BasicText
hat jetzt einen Farbparameter, mit dem sich Textfarben effizient animieren oder festlegen lassen. (Iffd88, b/246961787)- Die Eigenschaft „Semantik“
isContainer
inisTraversalGroup
umbenannt (I121f6)
Fehlerkorrekturen
- Die
AlertDialog
-Schaltfläche zum Schließen wird jetzt unter der Bestätigungsschaltfläche angezeigt, wenn die Aktionen übereinander gestapelt werden, um in die Breite des Dialogfelds zu passen. Damit wird die Implementierung an die Material Design-Spezifikation angepasst (I029de, b/235454277).
Version 1.5.0-alpha04
10. Mai 2023
androidx.compose.material:material-*:1.5.0-alpha04
wird veröffentlicht. Version 1.5.0-alpha04 enthält diese Commits.
API-Änderungen
- Wir verlagern die Abhängigkeit von der Dichte auf Komponentenebene. Dies gilt für die folgenden Komponenten:
BottomDrawer
,ModalBottomSheetLayout
,BottomSheetScaffold
,Switch
undModalDrawer
. Verwenden Sie die neue Überladung, bei der die Dichte ein Parameter ist. (I8fbd8)
Version 1.5.0-alpha03
19. April 2023
androidx.compose.material:material-*:1.5.0-alpha03
wird veröffentlicht. Version 1.5.0-alpha03 enthält diese Commits.
API-Änderungen
- Aktualisieren Sie die internen
BottomDrawer
-Komponenten, damit die neuenSwipeableV2
APIs verwendet werden. Aus diesem Grund werden fürBottomDrawerState
jetzt nur APIs auf Klassenebene definiert und keine Methoden/Eigenschaften vonSwipeableState
übernommen. Wir verwenden eine Komposition mit einer internenSwipeableV2State
. „Offset“ ist jetzt eine gültige Gleitkommaeigenschaft. Auf den aktuellen Wert und den Zielwert für Wischaktionen kann weiterhin über die Eigenschaften „currentValue“ und „targetValue“ zugegriffen werden. Die bisherigen Methoden auf Klassenebene wie „open/expand/close“ und Eigenschaften wieisOpen/isClosed
werden weiterhin unterstützt. (Iad40c, b/178529942, b/220676296)
Fehlerkorrekturen
- Die internen Funktionen der Switch-Komponente wurden aktualisiert. Beim Ziehen wird jetzt eine Vorschau des am nächsten liegenden Zielstatus angezeigt. (Id90d4)
- Animierter Tabellenblattinhalt (z.B.
Modifier.animateContentSize
auf Tabellenblattinhalt) inBottomSheetScaffold
wurde optimiert und funktioniert jetzt reibungslos. (Ia913c, b/270518202, b/254446195) BottomSheetScaffold
nimmt nicht mehr am verschachtelten Scrollen teil, wenngesturesEnabled
auffalse
festgelegt ist. (I634f3, b/215403277)
Version 1.5.0-alpha02
5. April 2023
androidx.compose.material:material-*:1.5.0-alpha02
wird veröffentlicht. Version 1.5.0-alpha02 enthält diese Commits.
Fehlerkorrekturen
- Ein Fehler wurde behoben, aufgrund dessen
BottomSheetScaffold
abstürzte, wenn für Slots leere Inhalte angegeben wurden. (Ib24a5, b/235588730) - Behebung eines Problems, bei dem
PullRefreshIndicator
Klicks / Mausbewegungen abfängt (2494256, b/271777421)
Version 1.5.0-alpha01
22. März 2023
androidx.compose.material:material-*:1.5.0-alpha01
wurde veröffentlicht. Version 1.5.0-alpha01 enthält diese Commits.
Fehlerkorrekturen
- Beispiel für ein Chipgruppen-Reflow hinzufügen Aktualisieren Sie den horizontalen Abstand zwischen untergeordneten Chips im Beispiel einer einzeiligen Chipgruppe, um den Spezifikationen zu entsprechen (I3b155).
- Ein Problem wurde behoben, durch das
ModalBottomSheetLayout
in einem Grenzfall bei der Ausrichtungsänderung abstürzte. Layoutanimationen (z.B.Modifier.animateContentSize
) in/auf dem Tabelleninhalt funktionieren jetzt reibungslos. (I2f981, b/266780234)
Version 1.4
Version 1.4.3
3. Mai 2023
androidx.compose.material:material-*:1.4.3
wird ohne Änderungen veröffentlicht (nur Versionsaktualisierung).
Version 1.4.2
19. April 2023
androidx.compose.material:material-*:1.4.2
wird veröffentlicht. Version 1.4.2 enthält diese Commits.
Version 1.4.1
5. April 2023
androidx.compose.material:material-*:1.4.1
wird veröffentlicht. Version 1.4.1 enthält diese Commits.
Version 1.4.0
22. März 2023
androidx.compose.material:material-*:1.4.0
wird veröffentlicht. Version 1.4.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.3.0
API-Änderungen
- Fügen Sie
Modifier.minimumInteractiveComponentSize
hinzu. Damit kann eine Größe von mindestens 48 dp reserviert werden, um Touch-Interaktionen zu unterscheiden, wenn das Element kleiner wäre. (I33f58, b/258495559) - Änderungen an den Swipe-APIs in
ModalDrawer
wurden übernommen. DasanimateTo
vonDrawerState
wurde durch die Methoden „open“ und „close“ ersetzt und der Offset ist jetzt nullable. Verwenden SierequireOffset
, um den Versatz zu erzwingen. (I3de9e) - Dem Material- und Material3-Text wurden die Parameter
minLines
,TextField
undOutlinedTextField
hinzugefügt, mit denen die minimale Höhe der Komponente in Bezug auf die Anzahl der Zeilen festgelegt werden kann (I4af1d) - Der Parameter
minLines
wurde zuBasicText
undBasicTextField
hinzugefügt. Damit lässt sich die Mindesthöhe dieser Composeables in Bezug auf die Anzahl der Zeilen festlegen (I24294, b/122476634)
Version 1.4.0-rc01
8. März 2023
androidx.compose.material:material-*:1.4.0-rc01
wird ohne Änderungen veröffentlicht. Version 1.4.0-rc01 enthält diese Commits.
Version 1.4.0-beta02
22. Februar 2023
androidx.compose.material:material-*:1.4.0-beta02
wird veröffentlicht. Version 1.4.0-beta02 enthält diese Commits.
API-Änderungen
- Änderungen an den Swipe-APIs in
BottomSheetScaffold
wurden übernommen. Der ParameterconfirmStateChange
vonBottomSheetState
wurde inconfirmValueChange
umbenannt.progress
wird jetzt als Gleitkommawert übergeben.animateTo
undsnapTo
sind intern. Verwende stattdessenexpand()
undcollapse()
.direction
undoverflow
wurden entfernt.offset
wurde durchrequireOffset()
ersetzt. (I323b4)
Fehlerkorrekturen
- Semantische Rollen wurden aus anklickbaren und auswählbaren Oberflächen entfernt und Komponenten aktualisiert, mit denen Rollen mithilfe von „modifizierer.semantik“ festgelegt wurden (Ibb4ba).
- Kleinere Aktualisierung der erweiterten Material Design-Symbole, bei der die ausgefüllten Symbole
desktop_mac
,directions
undkitchen
angepasst wurden. (I65f5e)
Version 1.4.0-beta01
8. Februar 2023
androidx.compose.material:material-*:1.4.0-beta01
wurde veröffentlicht. Version 1.4.0-beta01 enthält diese Commits.
API-Änderungen
- Es wurde ein Problem behoben, durch das
pullRefresh
die Geschwindigkeit nicht nutzte, was zu Überscrollen führte. Außerdem wurde die API-Signatur der Lambda-FunktiononRelease
inModifier.pullRefresh
geändert, um eine Gleitkommazahl für die genutzte Geschwindigkeit zurückzugeben (I7db65, b/266874741). - Property-Getter
LocalMinimuTouchTargetEnforcement
wiederhergestellt, als eingestellt markiert und aufLocalMinimumInteractiveComponentEnforcement
umgeleitet (I60dd5)
Version 1.4.0-alpha05
25. Januar 2023
androidx.compose.material:material-*:1.4.0-alpha05
wurde veröffentlicht. Version 1.4.0-alpha05 enthält diese Commits.
Fehlerkorrekturen
- Es wurde ein Problem behoben, bei dem der
ModalBottomSheetLayout's HalfExpanded
-Status falsch berechnet wurde und das Tabellenblatt scheinbar unverankert zu sein schien. (I8c615, b/265610459) - Es wurde ein Fehler in
ModalBottomSheetLayout
behoben, bei dem das Tabellenblatt unter bestimmten Umständen abgestürzt ist, wenn vom ausgeblendeten in einen sichtbaren Zustand gewechselt wurde. (Ia9265, b/265444789)
Version 1.4.0-alpha04
11. Januar 2023
androidx.compose.material:material-*:1.4.0-alpha04
wird veröffentlicht. Version 1.4.0-alpha04 enthält diese Commits.
API-Änderungen
- Die
IsContainer
-Semantik-Property wurde auf Oberflächen hinzugefügt. Diese Property wird bei einer späteren Änderung verwendet, bei der die Durchlaufreihenfolge basierend auf der semantischen Bedeutung von Elementen wie Oberflächen bestimmt wird. (I63379) - Markieren Sie die
snapTo
-Funktion im Navigationsmenü als nicht experimentelle API. (Ib9c18, b/261425368) - Ein Farbparameter der Spurverfolgung für kreisförmige Fortschrittsanzeigen und ein Strichkappe-Parameter für kreisförmige und lineare Fortschrittsanzeigen wurden hinzugefügt. (Ie668c, b/216325962, b/222964817)
confirmStateChange
vonModalBottomSheetState
,ModalBottomSheetState.Saver
undrememberModalBottomSheetState
inconfirmValueChange
umbenannt. (Ib48d1)- Mehr Informationen zur Nullbarkeit des Rückgabetyps von eingestellten und ausgeblendeten Funktionen (Ibf7b0)
- Fügen Sie
Modifier.minimumInteractiveComponentSize
hinzu. Damit kann eine Größe von mindestens 48 dp reserviert werden, um Touch-Interaktionen zu unterscheiden, wenn das Element kleiner wäre. (I33f58, b/258495559) - Änderungen an den APIs für wischbare Inhalte in
ModalBottomSheetLayout
übernommen. FüranimateTo
vonModalBottomSheetState
wird keinanimationSpec
-Parameter mehr verwendet und der freigegebeneoffset
ist jetzt nullable. VerwenderequireOffset
, um dieoffset
anzufordern. (Ia2e79)
Fehlerkorrekturen
- Das Tabellenblatt einer
ModalBottomSheetLayout
hat jetzt eine maximale Breite von 640 dp. (I71a4f, b/234927577) - Es wurde ein Problem behoben, bei dem
rememberPullRefreshState
refreshThreshold
undrefreshingOffset
im Laufe der Zeit nicht aktualisierte. (Ifed10, b/263159832) - Der Fortschritt der Fortschrittsanzeigen ist jetzt korrekt auf den erwarteten Bereich begrenzt. (I8a7eb, b/262262727)
- Wenn
ModalBottomSheetState
noch keine Anker empfangen hat, wirdcurrentValue
ohne Animation aktualisiert, wennsnapTo
oderanimateTo
aufgerufen wird, anstatt eine Ausnahme auszulösen. (I2c91b) - Der aktivierte Status bei der Material 2-
FilterChip
-Implementierung wurde korrigiert. (Id326a, b/261329817) - Ein Fehler wurde behoben, durch den
ModalBottomSheetLayout
beim Wechsel vom Hoch- ins Querformat abstürzte, wenn es sich umHalfExpanded
handelte. Prüfen Sie, ob Sie die richtigeinitialValue
übergeben, z. B. anhand der Konfiguration. (Ie8df7, b/182882364) - Ein Problem wurde behoben, bei dem
ModalBottomSheetLayout
abstürzte, wenn der Tabelleninhalt leer war.ModalBottomSheetLayout
ermöglicht jetzt leere Tabelleninhalte. Ist das Tabellenblatt leer, hat es nur den Status „Ausgeblendet“. (Ic2288, b/200980998, b/216693030)
Bekanntes Problem
- Beim Aktualisieren von
androidx.compose.foundation:1.4.0-alpha03
aufandroidx.compose.foundation:1.4.0-alpha04
kann der Fehlerjava.lang.NoSuchFieldError
auftreten. Hier wurde das Problem ursprünglich gemeldet. Eine Lösung wurde eingereicht und ist im nächsten Update für Compose verfügbar. Als Behelfslösung können Sie Ihreandroidx.compose.material
- undandroidx.compose.material3
-Bibliotheken auf die neueste Version(1.1.0-alpha04) aktualisieren oder Ihreandroidx.compose.foundation
auf 1.4.0-alpha03 downgraden.
Version 1.4.0-alpha03
7. Dezember 2022
androidx.compose.material:material-*:1.4.0-alpha03
wird veröffentlicht. Version 1.4.0-alpha03 enthält diese Commits.
API-Änderungen
@JvmDefaultWithCompatibility
-Anmerkung hinzufügen (I8f206)- Änderungen an den
Swipeable
APIs inModalDrawer
übernommen. DeranimateTo
vonDrawerState
wurde durch die Methodenopen
undclose
ersetzt und der Offset ist jetzt nullable. Verwenden SierequireOffset
, um den Versatz zu erzwingen. (I3de9e) - Eine Modifier API zum Abfragen von Informationen zum Scrollen von Vorfahren hinzugefügt. (I2ba9d, b/203141462)
- Wird in
Clickable
verwendet, um die Interaktionen mit dem Drücken richtig zu verzögern, wenn Touch-Gesten zu Scrollereignissen werden könnten. - Bei Verwendung in einem
Scrollable ViewGroup
wurden beiClickables
keine korrekten Verzögerungen für Wellen erzeugt. Dieses Problem wurde behoben. - In Ausklappern und Ansichten werden Tastendrücke jetzt korrekt verzögert, falls Touch-Gesten zu Scrollereignissen führen können.
Fehlerkorrekturen
- Ein Problem wurde behoben, durch das
PullRefreshIndicator
nach dem Aufruf vononRefresh
hängen bleiben konnte, wenn der Aktualisierungsstatus nicht in „wahr“ geändert wurde. (Ie2416, b/248274004)
Abhängigkeitsupdates
- Compose UI und Compose Material sind jetzt von Lifecycle 2.5.1 abhängig. (I05ab0, b/258038814)
Version 1.4.0-alpha02
9. November 2022
androidx.compose.material:material-*:1.4.0-alpha02
wird veröffentlicht. Version 1.4.0-alpha02 enthält diese Commits.
API-Änderungen
- Für
awaitFirstDown
undwaitForUpOrCancellation
kann jetzt einPointerEventPass
verwendet werden, um mehr Flexibilität zu ermöglichen. (I7579a, b/212091796) - Dem Material- und Material3-Text wurden die Parameter
minLines
,TextField
undOutlinedTextField
hinzugefügt, mit denen die minimale Höhe der Komponente in Bezug auf die Anzahl der Zeilen festgelegt werden kann (I4af1d) - Den Parametern
BasicTex
t undBasicTextField
wurde der ParameterminLines
hinzugefügt. Damit lässt sich die Mindesthöhe dieser Composeables in Bezug auf die Anzahl der Zeilen festlegen (I24294, b/122476634)
Version 1.4.0-alpha01
24. Oktober 2022
androidx.compose.material:material-*:1.4.0-alpha01
wird veröffentlicht. Version 1.4.0-alpha01 enthält diese Commits.
API-Änderungen
- Die neue Methode
awaitEachGesture()
für Gestenerkennung wurde hinzugefügt. Die Funktionsweise ähnelt der vonforEachGesture()
, aber die Schleife über die Touch-Gesten wird vollständig innerhalb vonAwaitPointerEventScope
ausgeführt, sodass Ereignisse zwischen den Iterationen nicht verloren gehen können. forEachGesture()
wurde zugunsten vonawaitEachGesture()
eingestellt, da beiforEachGesture()
Ereignisse zwischen den Touch-Gesten verloren gehen können. (Iffc3f, b/251260206)
Version 1.3
Version 1.3.1
9. November 2022
androidx.compose.material:material-*:1.3.1
wird veröffentlicht. Version 1.3.1 enthält diese Commits.
Version 1.3.0
24. Oktober 2022
androidx.compose.material:material-*:1.3.0
wird veröffentlicht. Version 1.3.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.2.0
Verhaltensverändernde Änderung
- Die maximal unterstützte Erhöhung in Dialogen und Pop-ups wurde auf 8 dp reduziert.
API-Änderungen
- Dem Tool „Compose“ wurde eine Pull-to-Refresh-Komponente hinzugefügt (I29168).
- Ändern Sie den Parameternamen von „values“ in „value“ im RangeSlider (I3b79a).
Version 1.3.0-rc01
5. Oktober 2022
androidx.compose.material:material-*:1.3.0-rc01
wurde veröffentlicht. Version 1.3.0-rc01 enthält diese Commits.
Version 1.3.0-beta03
21. September 2022
androidx.compose.material:material-*:1.3.0-beta03
wurde veröffentlicht. Version 1.3.0-beta03 enthält diese Commits.
API-Änderungen
- Dem Tool zum Erstellen von E-Mails eine Pull-to-Refresh-Komponente hinzufügen (I29168)
Version 1.3.0-beta02
7. September 2022
androidx.compose.material:material-*:1.3.0-beta02
wird veröffentlicht. Version 1.3.0-beta02 enthält diese Commits.
Keine Änderungen seit 1.3.0-beta01
Version 1.3.0-beta01
24. August 2022
androidx.compose.material:material-*:1.3.0-beta01
wird veröffentlicht. Version 1.3.0-beta01 enthält diese Commits.
Verhaltensverändernde Änderung
Die maximal unterstützte Erhöhung in Dialogen und Pop-ups wurde auf 8 dp reduziert.
Die maximal unterstützte Erhöhung für Dialogfelder und Pop-ups für die Nachrichtenerstellung wurde von 30 dp auf 8 dp reduziert. Diese Änderung betrifft sowohl Materialdialoge als auch benutzerdefinierte UI-Dialoge und Pop-ups. Mit dieser Änderung soll ein Bedienungshilfenfehler in Android-Versionen unterhalb von S behoben und dafür gesorgt werden, dass Bedienungshilfen in diesen Fenstern mit den Inhalten im Dialogfeld oder Pop-up interagieren können.
Sie sind nur von dieser Änderung betroffen, wenn Sie eine benutzerdefinierte Dialog- oder Pop-up-Implementierung mit einer Höhe von mehr als 8 dp erstellen. Sie können die Höhe des Dialogfelds oder Pop-ups senken. Wenn Sie dieses neue Verhalten deaktivieren möchten, können Sie ein eigenes Dialogfeld oder Pop-up mit der gewünschten Höhe erstellen. Dies wird nicht empfohlen, da die Barrierefreiheit dadurch beeinträchtigt werden kann. Der Entwickler muss dafür sorgen, dass der untere Teil des Dialogfelds oder Pop-ups für Dienste zur Barrierefreiheit interaktiv und lesbar ist.
Version 1.3.0-alpha03
10. August 2022
androidx.compose.material:material-*:1.3.0-alpha03
wird veröffentlicht. Version 1.3.0-alpha03 enthält diese Commits.
Version 1.3.0-alpha02
27. Juli 2022
androidx.compose.material:material-*:1.3.0-alpha02
wird veröffentlicht. Version 1.3.0-alpha02 enthält diese Commits.
Externer Beitrag
AnimatedVisibility
-Problem mitFloatingActionButton
in Scaffold beheben (I3a0ae, b/224005027)
Version 1.3.0-alpha01
29. Juni 2022
androidx.compose.material:material-*:1.3.0-alpha01
wird veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.
API-Änderungen
- Ändern Sie den Parameternamen von „values“ in „value“ in
RangeSlider
(I3b79a).
Fehlerkorrekturen
- Beispiel für das Gütesiegel aktualisieren, um eine aussagekräftigere Inhaltsbeschreibung zu liefern (I10b9d)
Version 1.2
Version 1.2.1
10. August 2022
androidx.compose.material:material-*:1.2.1
wird veröffentlicht. Version 1.2.1 enthält diese Commits.
Version 1.2.0
27. Juli 2022
androidx.compose.material:material-*:1.2.0
wird veröffentlicht. Version 1.2.0 enthält diese Commits.
Version 1.2.0-rc03
29. Juni 2022
androidx.compose.material:material-*:1.2.0-rc03
wird veröffentlicht. Version 1.2.0-rc03 enthält diese Commits.
- Keine Änderungen seit 1.2.0-rc02.
Version 1.2.0-rc02
22. Juni 2022
androidx.compose.material:material-*:1.2.0-rc02
wird veröffentlicht. Version 1.2.0-rc02 enthält diese Commits.
Version 1.2.0-rc01
15. Juni 2022
androidx.compose.material:material-*:1.2.0-rc01
wird veröffentlicht. Version 1.2.0-rc01 enthält diese Commits.
API-Änderungen
- Schnittstellen in Compose-Bibliotheken werden jetzt mit den Standardschnittstellenmethoden von JDK 8 erstellt (I5bcf1)
Fehlerkorrekturen
- Das Logo wird jetzt mit einem vorangestellten Symbol-Tab versehen, damit es an das Label statt an das Symbol angehängt wird. (I90993)
Version 1.2.0-beta03
1. Juni 2022
androidx.compose.material:material-*:1.2.0-beta03
wird veröffentlicht. Version 1.2.0-beta03 enthält diese Commits.
Fehlerkorrekturen
- Es wurde ein Fehler behoben, durch den das Symbol
BottomSheetScaffold
über dem Schatten der oberen App-Leiste gezeichnet wurde.BottomSheetScaffold
Beim Platzieren von Infofeldern wird jetzt auch der Status des Tabellenblatts berücksichtigt: Im minimierten Zustand werden Infofelder über dem Tabellenblatt und dem Floating Action Button platziert. Im maximierten Zustand sind sie am unteren Rand des Tabellenblatts verankert. (Ia80b5, b/187771422)
Version 1.2.0-beta02
18. Mai 2022
androidx.compose.material:material-*:1.2.0-beta02
wird veröffentlicht. Version 1.2.0-beta02 enthält diese Commits.
Version 1.2.0-beta01
11. Mai 2022
androidx.compose.material:material-*:1.2.0-beta01
wird veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.
Neue Funktionen
- Dies ist die erste Betaversion von Version 1.2.
API-Änderungen
- Das
TextFieldDefaults.BorderStroke
-Element, das inOutlinedTextField
einen Rahmenstrich zeichnet, wurde inTextFieldDefaults.BorderBox
umbenannt. (I5f295)
Version 1.2.0-alpha08
20. April 2022
androidx.compose.material:material-*:1.2.0-alpha08
wird veröffentlicht. Version 1.2.0-alpha08 enthält diese Commits.
API-Änderungen
- Der Teilverbrauch (nach unten ODER in der Position) wurde in
PointerInputChange
eingestellt. Mitconsume()
können Sie die Änderung vollständig übernehmen. MitisConsumed
können Sie feststellen, ob die Änderung bereits von einer anderen Person übernommen wurde. PointerInputChange::copy()
erstellt jetzt immer eine flache Kopie. Das bedeutet, dass Kopien von „PointerInputChange
“ genutzt werden, sobald eines der Exemplare verarbeitet wurde. Wenn Sie eine nicht gebundenePointerInputChange
erstellen möchten, verwenden Sie stattdessen den Konstruktor. (Ie6be4, b/225669674)
Version 1.2.0-alpha07
6. April 2022
androidx.compose.material:material-*:1.2.0-alpha07
wird veröffentlicht. Version 1.2.0-alpha07 enthält diese Commits.
Version 1.2.0-alpha06
23. März 2022
androidx.compose.material:material-*:1.2.0-alpha06
wird veröffentlicht. Version 1.2.0-alpha06 enthält diese Commits.
API-Änderungen
- Aktualisierungen an der klickbaren Karten-API, um Änderungen an der Surface API zu berücksichtigen (I56bcb)
- Aktualisierungen der Material 2 Surface API mit zusätzlichen überladenen Funktionen für auswählbare und umschaltbare Oberflächen. (Ifcca5)
Version 1.2.0-alpha05
9. März 2022
androidx.compose.material:material-*:1.2.0-alpha05
wird veröffentlicht. Version 1.2.0-alpha05 enthält diese Commits.
API-Änderungen
LazyVerticalGrid
undLazyHorizontalGrid
sind jetzt stabil. (I307c0)LazyVerticalGrid/LazyHorizontalGrid
und alle zugehörigen APIs wurden in das .grid-Teilpaket verschoben. Bitte aktualisieren Sie Ihre Importe von androidx.compose.foundation.lazy auf androidx.compose.foundation.lazy.grid. (I2d446, b/219942574)- Die vorherige Änderung, bei der nur eine Ansicht für
WindowInsetsControllerCompat
verwendet wurde, wurde rückgängig gemacht. Es ist wieder ein Fenster erforderlich, das zum Verwalten einiger Fensterflaggen benötigt wird.ViewCompat.getWindowInsetsController
wurde zugunsten vonWindowCompat.getInsetsController
eingestellt, damit das richtige Fenster verwendet wird, z. B. wenn sich die Ansicht in einem Dialogfeld befindet. (I660ae, b/219572936) - Text:
includeFontPadding
ist jetzt standardmäßig deaktiviert. Die Probleme mit dem Zuschneiden aufgrund vonincludeFontPadding=false
wurden behoben und bei hohen Scripts sollte es nicht mehr zu Zuschneidungen kommen. (I31c84, b/171394808) - Neue
LazyVerticalGrid
API zum Definieren von Achsengrößen hinzugefügt (I17723)
Version 1.2.0-alpha04
23. Februar 2022
androidx.compose.material:material-*:1.2.0-alpha04
wird veröffentlicht. Version 1.2.0-alpha04 enthält diese Commits.
API-Änderungen
Add support for filter chips
(I39a6e, b/192585545)TextFieldDecorationBox
undOutlinedTextFieldDecorationBox
wurden hinzugefügt. Wenn Sie sie mitBasicTextField
kombinieren, können Sie benutzerdefinierte Textfelder erstellen, die auf Material Design-Textfeldern basieren, aber mehr Anpassungsoptionen bieten.- Es wurde eine Möglichkeit bereitgestellt, horizontale und vertikale Abstände in Textfeldern anzupassen. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/6178003))
Die Funktionen
ComposableTarget
,ComposableTargetMarker
undComposableOpenTarget
wurden hinzugefügt. Damit können Sie zur Kompilierungszeit Berichte dazu erhalten, wann eine zusammensetzbare Funktion auf einen Anwender angewendet wird, für den sie nicht vorgesehen ist.In den meisten Fällen können die Annotationen vom Compose-Compiler-Plug-in abgeleitet werden. Die direkte Verwendung dieser Annotationen sollte daher selten sein. Dazu gehören das Erstellen und Verwenden benutzerdefinierter Applier, abstrakter zusammensetzbarer Funktionen (z. B. Schnittstellenmethoden), Felder oder globaler Variablen, die zusammensetzbare Lambdas sind (lokale Variablen und Parameter werden abgeleitet), oder die Verwendung von
ComposeNode
oder einer ähnlichen zusammensetzbaren Funktion.Bei benutzerdefinierten Anwendungen müssen die zusammensetzbaren Funktionen, die
ComposeNode
oderReusableComposeNode
aufrufen, eineCompoableTarget
-Annotation für die Funktion und alle zusammensetzbaren Lambda-Parametertypen hinzufügen. Es wird jedoch empfohlen, eine Annotation zu erstellen, die mitComposableTargetMarker
annotiert ist, und dann die markierte Annotation direkt anstelle vonComposableTarget
zu verwenden. Eine mitComposableTargetMarker
gekennzeichnete zusammensetzbare Anmerkung entspricht einerComposbleTarget
mit dem voll qualifizierten Namen der Attributklasse als Anwenderparameter. Ein Beispiel für die Verwendung vonComposableTargetMarker
finden Sie unteranroidx.compose.ui.UiComposable
. (I38f11)
Version 1.2.0-alpha03
9. Februar 2022
androidx.compose.material:material-*:1.2.0-alpha03
wurde veröffentlicht. Version 1.2.0-alpha03 enthält diese Commits.
Fehlerkorrekturen
- Chipgruppenbeispiel wird hinzugefügt (I97080, b/192585545)
Version 1.2.0-alpha02
26. Januar 2022
androidx.compose.material:material-*:1.2.0-alpha02
wurde veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.
API-Änderungen
NonRestartableComposable
wurde Methoden hinzugefügt, die Überladungen vorhandener Methoden ohne komplexe Logik sind. Dadurch werden vom Compiler generierte Speicherprüfungen (ist gleich) für alle Parameter reduziert, die in der aufgerufenen inneren Funktion wiederholt werden. (I90490)- Unterstützung für den Aktions-Chip hinzugefügt (I07100, b/192585545)
Version 1.2.0-alpha01
12. Januar 2022
androidx.compose.material:material-*:1.2.0-alpha01
wird veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.
Abhängigkeitsupdates
- Jetzt abhängig von Kotlin
1.6.10
.
Externer Beitrag
ModalBottomSheetState
hat jetzt einisSkipHalfExpanded
-Flag. Sie kann entweder über den Konstruktor festgelegt oder später aktualisiert werden, indem die EigenschaftisSkipHalfExpanded
vonModalBottomSheetState
auftrue
gesetzt wird. Wenn Sie den Wert vonisSkipHalfExpanded
aktualisieren, wird das Tabellenblatt neu zusammengesetzt. (I18b86, b/186669820)
Version 1.1
Version 1.1.1
23. Februar 2022
androidx.compose.material:material-*:1.1.1
wird veröffentlicht. Version 1.1.1 enthält diese Commits.
Fehlerkorrekturen
- Fehler bei
NullPointerException
unterandroidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
beheben (aosp/1947059, b/206677462) - Ein Absturz, der durch den Inhalt der Zwischenablage beim Lesen aus der Zwischenablage auf Android-Geräten verursacht wurde, wurde behoben. (I06020, b/197769306)
- RTL in
LazyVerticalGrid
korrigiert (aosp/1931080, b/207510535)
Version 1.1.0
9. Februar 2022
androidx.compose.material:material-*:1.1.0
wird veröffentlicht. Version 1.1.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.0.0
- Stabile Unterstützung für den Overscroll-Effekt von Android 12
- Verbesserungen bei der Größe von Berührungszielbereichen
- In Bezug auf Compose 1.0 wird der Layoutbereich von Material-Komponenten so erweitert, dass sie den Richtlinien für Bedienungshilfen von Material für die Größe des Berührungszielbereichs entsprechen. Das Berührungsziel der Schaltfläche wird beispielsweise auf eine Mindestgröße von 48 x 48 dp erweitert, auch wenn Sie die Größe der Schaltfläche entsprechend verringern. Dadurch wird das Verhalten von Compose-Material mit dem von Material Design-Komponenten abgeglichen, was für ein einheitliches Verhalten sorgt, wenn Sie Ansichten und Compose kombinieren. Durch diese Änderung werden auch die Mindestanforderungen an die Barrierefreiheit von Touch-Zielen erfüllt, wenn Sie Ihre Benutzeroberfläche mit Compose Material-Komponenten erstellen.
- Stabile Unterstützung für den Navigationsstreifen
- Eine Reihe zuvor experimenteller APIs wird in stabile APIs überführt
- Unterstützung für neuere Kotlin-Versionen
Version 1.1.0-rc03
26. Januar 2022
androidx.compose.material:material-*:1.1.0-rc03
wird veröffentlicht. Version 1.1.0-rc03 enthält diese Commits.
Geändertes Verhalten
In Bezug auf Compose 1.0 wird der Layoutbereich von Material-Komponenten so erweitert, dass sie den Richtlinien für Bedienungshilfen von Material Touchziel entsprechen. So wird beispielsweise der Berührungszielbereich einer Schaltfläche auf eine Mindestgröße von 48 x 48 dp erweitert, auch wenn Sie die Größe der Schaltfläche kleiner festlegen. Dadurch wird das Verhalten von Compose-Material mit dem von Material Design-Komponenten abgeglichen, was für ein einheitliches Verhalten sorgt, wenn Sie Ansichten und Compose kombinieren. Durch diese Änderung werden auch die Mindestanforderungen an die Barrierefreiheit von Touch-Zielen erfüllt, wenn Sie Ihre Benutzeroberfläche mit Compose Material-Komponenten erstellen.
Fehlerkorrekturen
- Für den Layout-Inspektor wurden bessere Informationen zur Fehlerbehebung hinzugefügt, wenn Mindestgrößen für Touch-Ziele geprüft werden. (aosp/1955036)
Version 1.1.0-rc01
15. Dezember 2021
androidx.compose.material:material-*:1.1.0-rc01
wird veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.
Fehlerkorrekturen
- Korrektur des Eckradius, der für
Checkbox
angewendet wird (I38b03, b/175198975, b/202309440)
Version 1.1.0-beta04
1. Dezember 2021
androidx.compose.material:material-*:1.1.0-beta04
wurde veröffentlicht. Version 1.1.0-beta04 enthält diese Commits.
Neue Funktionen
- Aktualisiert für die Kompatibilität mit Kotlin
1.6.0
Version 1.1.0-beta03
17. November 2021
androidx.compose.material:material-*:1.1.0-beta03
wird veröffentlicht. Version 1.1.0-beta03 enthält diese Commits.
Version 1.1.0-beta02
3. November 2021
androidx.compose.material:material-*:1.1.0-beta02
wird veröffentlicht. Version 1.1.0-beta02 enthält diese Commits.
Fehlerkorrekturen
- Wellen und andere Anzeigen werden jetzt nur verzögert, wenn sie sich in einem Modifier.scrollable()-Container befinden, anstatt immer bei einem Down-Ereignis. (Ibefe0, b/203141462)
Version 1.1.0-beta01
27. Oktober 2021
androidx.compose.material:material-*:1.1.0-beta01
wird veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.
Neue Funktionen
- Ripples unterstützen jetzt den Mouseover- und Fokus-Zustand. Wenn Sie also den Mauszeiger auf eine Komponente wie die Schaltfläche bewegen, wird das korrekte Status-Overlay angezeigt.
Version 1.1.0-alpha06
13. Oktober 2021
androidx.compose.material:material-*:1.1.0-alpha06
wird veröffentlicht. Version 1.1.0-alpha06 enthält diese Commits.
API-Änderungen
- Eine Überlastung ohne Kinder für Layout wurde mit verbesserter Effizienz hinzugefügt (Ib0d9a).
- Implementierung von
ExposedDropdownMenu
basierend aufExposedDropdownMenuBox
mitTextField
undDropdownMenu
(If60b2) dismissOnOutsideClick
wurde zuPopupProperties
hinzugefügt und ersetztdismissOnClickOutside
, das eingestellt wurde. Die neue Eigenschaft empfängt die Klickposition und die Ankergrenzen und ermöglicht so eine genauere Kontrolle darüber, ob onDismissRequest aufgerufen werden soll oder nicht. So lässt sich beispielsweise verhindern, dass der Anker bei Berührungen geschlossen wird.updateAndroidWindowManagerFlags
wurde zuPopupProperties
hinzugefügt, um eine Low-Level-Steuerung der Flags zu ermöglichen, die vom Pop-up an den Android WindowManager übergeben werden. Der Parameter der Lambda-Funktion sind die Flags, die aus den PopupProperties-Werten berechnet werden und zu WindowManager-Flags führen, z.B. „focusable“. Das Ergebnis des Lambdas sind die endgültigen Flags, die an den Android WindowManager übergeben werden. Standardmäßig bleiben die aus den Parametern berechneten Flags durch updateAndroidWindowManagerFlags unverändert. Diese API sollte mit Vorsicht verwendet werden und nur in Fällen, in denen das Pop-up sehr spezifische Verhaltensanforderungen hat. (I6e9f9)
Version 1.1.0-alpha05
29. September 2021
androidx.compose.material:material-*:1.1.0-alpha05
wird veröffentlicht. Version 1.1.0-alpha05 enthält diese Commits.
API-Änderungen
- Fügen Sie eine Mindestgröße für Berührungszielbereiche für Materialkomponenten hinzu, die kein barrierefreies Berührungsziel haben. Da dadurch zusätzliche Abstände um Komponenten herum hinzugefügt werden, damit sie ein ausreichend großes Berührungsziel haben, kann dies bestehende UIs ändern, bei denen davon ausgegangen wird, dass die Größe dieser Komponenten ihrer visuellen Größe entspricht und die Größe des Berührungsziels nicht berücksichtigt wird. Mit der experimentellen
LocalMinimumTouchTargetEnforcement
-Komposition „local“ können Sie dieses Verhalten für eine gesamte Hierarchie deaktivieren. Diese Funktion ist jedoch nur als vorübergehende Lösung gedacht, während Sie vorhandene UIs auf die neue Mindestgröße anpassen. (I9b966, b/149691127, b/171509422) - Die experimentelle Benutzeroberfläche „TextFieldColorsWithIcons“ wurde hinzugefügt. Sie erweitert „TextFieldColors“, um „InteractionSource“ für die Farben „leadingColor“ und „trailingColor“ bereitzustellen. So lässt sich das Aussehen des Textfelds entsprechend dem Fokusstatus ändern. (I66923, b/198402662)
Version 1.1.0-alpha04
15. September 2021
androidx.compose.material:material-*:1.1.0-alpha04
wird veröffentlicht. Version 1.1.0-alpha04 enthält diese Commits.
API-Änderungen
- Verworfene
performGesture
undGestureScope
, die durchperformTouchInput
undTouchInjectionScope
ersetzt wurden. (Ia5f3f, b/190493367) touchBoundsInRoot
wurdeSemanticsNode
hinzugefügt. Dieser enthält die Mindestgröße des Berührungszielbereichs, damit Entwickler sicherstellen können, dass Berührungsziele die Mindestanforderungen an die Barrierefreiheit erfüllen. (I2e14b, b/197751214)
Fehlerkorrekturen
- Zulassen, dass sich die Grenzen des Berührungszielbereichs über den Clipbereich hinaus erstrecken, um ein Mindestmaß für den Berührungszielbereich festzulegen. (I43e10, b/171509422)
- Die
Divider
-Komposition wurde aktualisiert, damitDp.Hairline
für den Parameter „Dicke“ berücksichtigt wird. So können Trennlinien mit nur einem Pixel unabhängig von der Displaydichte gezeichnet werden. (I16ffb, b/196840810)
Version 1.1.0-alpha03
1. September 2021
androidx.compose.material:material-*:1.1.0-alpha03
wird veröffentlicht. Version 1.1.0-alpha03 enthält diese Commits.
Neue Funktionen
- Compose
1.1.0-alpha03
wurde so aktualisiert, dass es von Kotlin1.5.30
abhängt. (I74545)
API-Änderungen
- Testmethode zum Abrufen der zugeschnittenen Begrenzungen hinzugefügt (I6b28e)
- In ViewConfiguration wurde eine Mindestgröße für den Berührungszielbereich hinzugefügt, die für die Semantik und die Eingabe per Mauszeiger verwendet wird, um die Barrierefreiheit zu verbessern. (Ie861c)
Version 1.1.0-alpha02
18. August 2021
androidx.compose.material:material-*:1.1.0-alpha02
wird veröffentlicht. Version 1.1.0-alpha02 enthält diese Commits.
Externer Beitrag
- Das Verhalten von „SwipeableState“ wurde korrigiert, wenn der Wischversatz innerhalb eines Rundungsfehlers eines Ankers liegt. (I03d39, b/191993377)
Version 1.1.0-alpha01
4. August 2021
androidx.compose.material:material-*:1.1.0-alpha01
wird veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.
API-Änderungen
- Die
DrawScope#drawImage
-Methode wurde aktualisiert. Sie verwendet jetzt Quell- und Ziel-Rechtecke, um einen optionalen Parameter für die Filterqualität zu verwenden. Dies ist nützlich für Pixelkunst, die verpixelt werden soll, wenn sie für pixelbasierte Grafiken verkleinert wird. BitmapPainter und zusammensetzbare Funktion für Bilder wurden aktualisiert, um auch einen optionalen FilterQuality-Parameter zu nutzen (Ie4fb0, b/180311607). - BadgeBox wurde in BadgedBox umbenannt und die Parameter wurden geändert, sodass zusammensetzbare Badges akzeptiert werden. Die Badge-Komponente wurde hinzugefügt. Das ist der typische Badge-Inhalt für ein BadgedBox. (I639c6)
- Die NavigationRail-Komponente wurde hinzugefügt. Weitere Informationen zur Verwendung finden Sie in der Dokumentation und in den Beispielen (I8de77).
Fehlerkorrekturen
- Ein Beispiel für ein nach unten ausgerichtetes Navigationselement und eine Demo für die Katalog-App wurden hinzugefügt. (I3cffc)
- Dialoge folgen jetzt dem Größenverhalten der Plattform. Legen Sie „usePlatformDefaultWidth“ auf „false“ fest, um dieses Verhalten zu überschreiben. (Iffaed, b/192682388)
- In der Katalog-App wurde eine Navigationsleiste hinzugefügt. (I04960)
- Der Katalog-App wurde eine Demo für Logos hinzugefügt. (If285d)
Version 1.0
Version 1.0.5
3. November 2021
androidx.compose.material:material-*:1.0.5
wurde veröffentlicht. Version 1.0.5 enthält diese Commits.
Fehlerkorrekturen
- Ein Absturz-Tracking der abgeleiteten StatusOf-Instanzen wurde behoben. (aosp/1792247)
Version 1.0.4
13. Oktober 2021
androidx.compose.material:material-*:1.0.4
wurde veröffentlicht. Version 1.0.4 enthält diese Commits.
Abhängigkeitsupdates
- Aktualisiert, um von Kotlin
1.5.31
abhängig zu sein
Version 1.0.3
29. September 2021
androidx.compose.material:material-*:1.0.3
wird veröffentlicht. Version 1.0.3 enthält diese Commits.
Aktualisierung der Abhängigkeiten
- Aktualisiert und abhängig von Kotlin
1.5.30
Version 1.0.2
1. September 2021
androidx.compose.material:material-*:1.0.2
wird veröffentlicht. Version 1.0.2 enthält diese Commits.
Aktualisiert, um die Compose-Version 1.0.2
zu unterstützen. „Compose 1.0.2
“ ist weiterhin mit Kotlin 1.5.21
kompatibel.
Version 1.0.1
4. August 2021
androidx.compose.material:material-*:1.0.1
wurde veröffentlicht. Version 1.0.1 enthält diese Commits.
Aktualisierung der Abhängigkeiten
- Aktualisiert und abhängig von Kotlin-
1.5.21
.
Version 1.0.0
28. Juli 2021
androidx.compose.material:material-*:1.0.0
wird veröffentlicht. Version 1.0.0 enthält diese Commits.
Wichtige Funktionen von 1.0.0
Dies ist die erste stabile Version von Compose. Weitere Informationen findest du im offiziellen Compose-Release-Blog.
Bekannte Probleme
Wenn du Android Studio Bumblebee Canary 4 oder AGP
7.1.0-alpha04
/7.1.0-alpha05
verwendest, kann es zu folgendem Absturz kommen:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
Erhöhen Sie in der Datei
build.gradle
vorübergehend Ihre minSdkVersion auf 24 oder höher, um das Problem zu beheben. Dieses Problem wird in der nächsten Version von Android Studio Bumblebee und AGP7.1
behoben. (b/194289155)
Version 1.0.0-rc02
14. Juli 2021
androidx.compose.material:material-*:1.0.0-rc02
wird veröffentlicht. Version 1.0.0-rc02 enthält diese Commits.
Fehlerkorrekturen
- Dialoge folgen jetzt dem Größenverhalten der Plattform. Legen Sie
usePlatformDefaultWidth
auf „false“ fest, um dieses Verhalten zu überschreiben. (Iffaed, b/192682388)
Version 1.0.0-rc01
1. Juli 2021
androidx.compose.material:material-*:1.0.0-rc01
wird veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.
API-Änderungen
- Komponente
BadgeBox
hinzugefügt. Weitere Informationen zur Verwendung finden Sie in den Dokumenten und Beispielen (I5e284) useDefaultMaxWidth
inPopupProperties
wurde inusePlatformDefaultWidth
umbenannt. (I05710)- Dialogfelder können jetzt die gesamte Bildschirmbreite nutzen. (I83929, b/190810877)
- Implementierung des experimentellen Schiebereglers für Bereiche hinzugefügt (I2f4b3)
Fehlerkorrekturen
- Um den Material Design-Spezifikationen zu entsprechen, wird für OutlinedTextFields mit ungültiger Eingabe keine Fehlerfarbe mehr für das Label verwendet, wenn das Label als Platzhalter verwendet wird. Letzteres ist der Fall, wenn sich im Textfeld kein Eingabetext befindet und das Textfeld nicht im Fokus ist. Durch diese Änderung hat sich auch die Bedeutung des Parameters
error:Boolean
in der FunktionTextFieldColors.labelColor()
geändert: Wenn das Label als Platzhalter verwendet wird, wird jetzt auch dannfalse
zurückgegeben, wenn die Eingabe ungültig ist. (I45f78)
Version 1.0.0-beta09
16. Juni 2021
androidx.compose.material:material-*:1.0.0-beta09
wurde veröffentlicht. Version 1.0.0-beta09 enthält diese Commits.
API-Änderungen
- Der Parameter „Shape“ wurde zu OutlinedTextField hinzugefügt, damit die Rahmenform angepasst werden kann (I8f39e, b/181322957).
- TextOverflow wird in eine Inline-Klasse geändert. (I433af)
Fehlerkorrekturen
- Der Scrim in BottomDrawer, BackdropScaffold und ModalBottomSheetLayout wird ausgeblendet, wenn „Color.Unspecified“ übergeben wird (I2d899, b/182063309)
Regeln für Profil hinzugefügt
In diesem Release werden den folgenden Erstellungsmodulen (I14ed6) Profilregeln hinzugefügt:
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
Was sind Profilregeln?
Profilregeln für eine Bibliothek werden in einer Textdatei
baseline-prof.txt
im Verzeichnissrc/main
oder einem ähnlichen Verzeichnis angegeben. Die Datei enthält eine Regel pro Zeile. Eine Regel ist in diesem Fall ein Muster, das mit Methoden oder Klassen in der Bibliothek abgeglichen wird. Die Syntax dieser Regeln ist ein Superset des visuell lesbaren ART-Profilformats, das bei der Verwendung vonadb shell profman --dump-classes-and-methods ...
verwendet wird. Für die Ausrichtung auf Methoden oder Klassen gibt es zwei Arten dieser Regeln.Eine Methodenregel hat das folgende Muster:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Eine Klassenregel hat das folgende Muster:
<CLASS_DESCRIPTOR>
Hier steht
<FLAGS>
für mindestens eines der ZeichenH
,S
undP
, um anzugeben, ob diese Methode als „Hot“, „Startup“ oder „Post Startup“ gekennzeichnet werden soll.<CLASS_DESCRIPTOR>
ist der Deskriptor für die Klasse, zu der die Zielmethode gehört. Die Klasseandroidx.compose.runtime.SlotTable
hätte beispielsweise den DeskriptorLandroidx/compose/runtime/SlotTable;
.<METHOD_SIGNATURE>
ist die Signatur der Methode und enthält den Namen, die Parametertypen und die Rückgabetypen der Methode. Beispiel: Die Methodefun isPlaced(): Boolean
vonLayoutNode
hat die SignaturisPlaced()Z
.Diese Muster können Platzhalter (
**
,*
und?
) enthalten, damit eine einzelne Regel mehrere Methoden oder Klassen umfassen kann.
Welchen Zweck haben die Regeln?
Eine Methode mit dem Flag
H
ist eine „heiße“ Methode und sollte vorab kompiliert werden.Eine Methode mit dem Flag
S
wird beim Start aufgerufen und sollte vorab kompiliert werden, um die Kosten für die Kompilierung und Interpretation der Methode beim Start zu vermeiden.Eine Methode mit dem Flag
P
wird nach dem Start aufgerufen.Eine in dieser Datei vorhandene Klasse gibt an, dass sie beim Start verwendet wird und im Heap zugewiesen werden sollte, um Kosten für das Laden der Klasse zu vermeiden.
So funktioniert's
- Diese Regeln können in Bibliotheken definiert werden und werden in AAR-Artefakten verpackt. Wenn dann ein APK mit diesen Artefakten erstellt wird, werden diese Regeln zusammengeführt und die zusammengeführten Regeln werden verwendet, um ein kompaktes binäres ART-Profil zu erstellen, das für das APK spezifisch ist. ART kann dieses Profil dann nutzen, wenn das APK auf Geräten installiert wird, um einen bestimmten Teil der Anwendung vorab zu kompilieren und so die Leistung der Anwendung zu verbessern, insbesondere beim ersten Start. Hinweis: Dies hat keine Auswirkungen auf debuggbare Anwendungen.
Version 1.0.0-beta08
2. Juni 2021
androidx.compose.material:material-*:1.0.0-beta08
wird veröffentlicht. Version 1.0.0-beta08 enthält diese Commits.
Neue Funktionen
API-Änderung mit Auswirkungen auf das Verhalten
- ÄNDERN DES VERHALTENS: Klicks auf Karten werden jetzt berücksichtigt, sodass Klicks, die über
Card(Modifier.clickable)
hinzugefügt werden, wirkungslos sind. Verwenden Sie die neue experimentelle Überladung einer Karte, die onClick akzeptiert. (Ia8744, b/183775620)- Es wurde eine neue Kartenüberladung hinzugefügt, die Klicks sowie andere anklickbare Funktionen verarbeitet: „indication“, „interactionSource“ und „enabled/disabled“. Es war nicht möglich, eine normale Karte ohne Klickmöglichkeit mit der
Modifier.clickable
zu verwenden, da die Karte in diesen Fällen die Wellenanzeige nicht zuschneidet.
- Es wurde eine neue Kartenüberladung hinzugefügt, die Klicks sowie andere anklickbare Funktionen verarbeitet: „indication“, „interactionSource“ und „enabled/disabled“. Es war nicht möglich, eine normale Karte ohne Klickmöglichkeit mit der
- VERHALTENSÄNDERUNG: Klicks werden jetzt über Surface erfasst, sodass Klicks, die über
Surface(Modifier.clickable)
hinzugefügt werden, wirkungslos sind. Verwenden Sie die neue experimentelle Überladung von Surface, die onClick akzeptiert. (I73e6c, b/183775620)- Es wurde eine neue Oberflächenüberladung hinzugefügt, die Klicks sowie andere anklickbare Funktionen verarbeitet: „indication“, „interactionSource“ und „enabled/disabled“. Es war nicht möglich, eine normale, nicht anklickbare Oberfläche mit der
Modifier.clickable
zu verwenden, da die Oberfläche in diesen Fällen die Wellenanzeige nicht zuschneidet.
- Es wurde eine neue Oberflächenüberladung hinzugefügt, die Klicks sowie andere anklickbare Funktionen verarbeitet: „indication“, „interactionSource“ und „enabled/disabled“. Es war nicht möglich, eine normale, nicht anklickbare Oberfläche mit der
API-Änderungen
FabPosition
wurde von einer Enumeration in eine Inline-Klasse umgewandelt, um eine mögliche Erweiterung in Zukunft zu ermöglichen (I030fb)- Die Verwendung von enum-Werten in Inline-Klassen wurde umgestaltet, um Probleme mit vollständigen Anweisungen zu vermeiden, wenn neue Enum-Werte hinzugefügt werden. (I2b5eb)
- Für anklickbare/umschaltbare Elemente wird eine Zeitüberschreitung für das Tippen hinzugefügt, um zu verhindern, dass beim Scrollen oder Ziehen eine Wellenbewegung angezeigt wird (Ia2704, b/168524931)
- Die Properties „ContentDescription“ und „Text-Semantik“ sind keine einzelnen Werte mehr, sondern Listen. So können sie zusammengeführt werden, anstatt zusammengefügt zu werden. Außerdem wurden bessere Test-APIs zur Nutzung dieser Änderungen bereitgestellt (Ica6bf, b/184825850).
Modifier.focusModifier()
wurde verworfen und durchModifier.focusTarget()
(I6c860) ersetzt.FocusState
-Enum durch eineFocusState
-Schnittstelle ersetzt (Iccc1a, b/187055290)LocalRippleNativeRendering
wurde entfernt, da die Implementierung der ansichtsgestützten Welle stabil ist (I7fab3, b/188569367).
Fehlerkorrekturen
Modifier.onGloballyPositioned()
wurde geändert, sodass die Koordinaten dieses Modifiers in der Modifikatorkette erfasst werden, nicht die Layoutkoordinaten nach Anwendung aller Modifikatoren. Das bedeutet, dass sich jetzt die Reihenfolge der Modifikatoren darauf auswirkt, welche Koordinaten im Bericht angezeigt werden. (Ieb67d, b/177926591)- README für den vorhandenen Compose Material-Katalog hinzugefügt. (If9191)
Version 1.0.0-beta07
18. Mai 2021
androidx.compose.material:material-*:1.0.0-beta07
wird veröffentlicht. Version 1.0.0-beta07 enthält diese Commits.
API-Änderungen
- Sie müssen in Navigation Compose keine Erweiterungsmethoden mehr für die Routenunterstützung verwenden. (I22beb, b/172823546)
Version 1.0.0-beta06
5. Mai 2021
androidx.compose.material:material-*:1.0.0-beta06
wird veröffentlicht. Version 1.0.0-beta06 enthält diese Commits.
API-Änderungen
- Ripple wurde migriert, um
RippleDrawable
intern auf Android-Geräten zu verwenden. Das bedeutet, dass die Wellenanimationen im Render-Thread ausgeführt werden und daher auch dann flüssig sind, wenn der UI-Thread ausgelastet ist, z. B. beim Wechseln zwischen Bildschirmen. Die API-Oberfläche von Ripple ändert sich dadurch nicht, es kann aber zu Verhaltensänderungen kommen. Zur Unterstützung der Migration wurdeLocalRippleNativeRendering
hinzugefügt. Gib für „CompositionLocal“ den Wertfalse
an, um auf die vorherige Ripple-Implementierung im CompositionLocalProvider zurückzugreifen. Diese API ist vorübergehend und wird in Zukunft entfernt. Wenn Sie Probleme haben, die Sie dazu veranlassen, diese API zu verwenden, melden Sie bitte einen Fehler. (I902f8, b/168777351, b/183019123) - Es wurden die Bedienungshilfen-APIs „CollectionInfo“ und „CollectionItemInfo“ hinzugefügt, mit denen Sammlungen und ihre Elemente für Bedienungshilfen gekennzeichnet werden können (Id54ef, b/180479017)
- Die Bedienungshilfen-API
error
wurde hinzugefügt, mit der ein Knoten mit ungültiger Eingabe markiert werden kann (I12997, b/180584804, b/182142737)
Fehlerkorrekturen
- Aktualisierte Implementierung von Material Catalog-Inset-Elementen in Compose: https://github.com/google/accompanist/pull/365 (I25dc3)
- Bei untergeordneten Zeilen und Spalten mit „weight(fill = false)“ füllen das übergeordnete Element nicht mehr den gesamten verfügbaren Bereich der Hauptachse aus. (Ied94d, b/186012444, b/184355105)
Version 1.0.0-beta05
21. April 2021
androidx.compose.material:material-*:1.0.0-beta05
wird veröffentlicht. Version 1.0.0-beta05 enthält diese Commits.
Fehlerkorrekturen
- Dem vorhandenen Katalog „Compose Material“ wurden Bilder für Komponentenkacheln, eine Themenauswahl und spezifischere Menü-URLs hinzugefügt. (I9b58e)
Version 1.0.0-beta04
7. April 2021
androidx.compose.material:material-*:1.0.0-beta04
wird veröffentlicht. Version 1.0.0-beta04 enthält diese Commits.
API-Änderungen
- API-ÄNDERUNG: Der Status von
DrawerState
erweitert den experimentellen Modus „SwipeableState“ nicht mehr.- API-ÄNDERUNG:
BottomDrawerState
ist jetzt als experimentell gekennzeichnet, um der bereits experimentellen BottomDrawer-Komponente zu entsprechen (I81114, b/181656094)
- API-ÄNDERUNG:
- Benennen Sie
hideSoftwareKeyboard
undshowSoftwareKeyboard
aufSoftwareKeyboardController
inhide()
undshow()
um.- Die vollständige CompositionLocal-Oberfläche für LocalSoftwareKeyboardController bereitstellen, damit sie festgelegt werden kann (besonders nützlich in Tests) (I579a6)
- Die LiveRegion Accessibility API wurde hinzugefügt. Wenn der Knoten als Live-Bereich gekennzeichnet ist, werden die Nutzer von den Bedienungshilfen automatisch über Änderungen benachrichtigt (Idcf6f, b/172590946)
Fehlerkorrekturen
- Dem vorhandenen Modul wurde die Implementierung des Compose Material-Katalogs hinzugefügt. Derzeit fehlen: Kachelbilder der Komponenten, Designauswahl (wird in nachfolgenden Änderungen hinzugefügt). (Ie7a94)
Version 1.0.0-beta03
24. März 2021
androidx.compose.material:material-*:1.0.0-beta03
wird veröffentlicht. Version 1.0.0-beta03 enthält diese Commits.
API-Änderungen
DefaultMonotonicFrameClock
wurde eingestellt. WennwithFrameNanos
oderRecomposer.runRecomposeAndApplyChanges
ohneMonotonicFrameClock
aufgerufen wird, wird jetztIllegalStateException
ausgegeben. (I4eb0d)- Neue API
LeadingIconTab
hinzugefügt, um ein Symbol und Inline-Text auf einem Tab anzuzeigen. (I23267)
Externer Beitrag
- [von Jossi Wolf]
BottomDrawer
umschließt jetzt den Inhalt des Auszugs.BottomDrawer
löst keineIllegalStateException
aus, wenn das übergeordnete Element eine unendliche Höhe hat. Die untere Leiste wird jetzt maximiert geöffnet, wenn sie kleiner als 50% des übergeordneten Elements ist. Die Dokumentation zuBottomDrawerState
undModalBottomSheetLayoutState
wurde aktualisiert.BottomDrawerState#isOpen
gibt jetzt „wahr“ zurück, wenn das Element geöffnet oder maximiert ist. (I87241)
Version 1.0.0-beta02
10. März 2021
androidx.compose.material:material-*:1.0.0-beta02
wird veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.
API-Änderungen
- Neue lokale API zur
LocalSoftwareKeyboardController
-Zusammensetzung wurde hinzugefügt, um die vorherigeSoftwareKeyboardController
-Schnittstelle in TextField zu ersetzen. (I5951e, b/168778053)
Fehlerkorrekturen
- Einschränkungen für die öffentliche Nutzung experimenteller APIs erzwingen (I6aa29, b/174531520)
- Die Standardhorizontalausrichtung für TopAppBar und BottomAppBar wurde in „Start“ geändert, um mit „Zeile“ übereinzustimmen (Ib2dc7).
- Ein neues Modul und eine Platzhalter-UI für einen Compose Material-Katalog wurden hinzugefügt, die derzeit in vorhandenen Integrationstest-Demos verschachtelt sind. (Idfcb3)
androidx.compose.ui:ui
ist nicht mehr von AppCompat oder Fragment abhängig. Wenn Sie in Ihrer Anwendung eine ComposeView und Fragmente und/oder AppCompat verwenden, müssen Sie AppCompat 1.3 oder höher bzw. Fragment 1.3 oder höher verwenden. Diese Versionen sind erforderlich, um die Lebenszyklus- und gespeicherten Statuseigentümer für ComposeView korrekt festzulegen. (I1d6fa, b/161814404)
Version 1.0.0-beta01
24. Februar 2021
androidx.compose.material:material-*:1.0.0-beta01
wird veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.
Dies ist die erste Version von Compose 1.0.0 Beta.
API-Änderungen
- Größenmodifikatoren wurden umbenannt. „Modifier.width/height/size“ wurden in „requiredWidth/requiredHeight/requiredSize“ umbenannt. Modifier.preferredWidth/preferredHeight/preferredSize wurden in width/height/size umbenannt. (I5b414)
- „imageResource“ und „vectorResource“ sind jetzt Erweiterungsfunktionen für die Companion-Objekte „ImageBitmap“ und „ImageVector“. Die Funktionen „load{Image,Vector,Font}Resource“ wurden gelöscht. (I89130)
- Modifikatoren für die Größenanpassung an intrinsische Werte sind nicht mehr experimentell. (I15744)
- dp-Assertions entfernt (I798d2)
- Der Rückruf von SoftwareKeyboardController wurde aus allen Textfeldern entfernt und wird bald durch eine neue API ersetzt. (Iae869, b/168778053)
- Lambdas für Aktionen von Schaltern, Kästchen und Optionsfeldern können jetzt null sein. Die Beispiele für Kästchen-in-anklickbarer Zeilen wurden für die Verwendung dieser Funktion aktualisiert. (If601b, b/171819073)
InteractionState
wurde durch[Mutable]InteractionSource
ersetzt- Oberflächen sind für das Senden / Erfassen von Interaktionsereignissen verantwortlich.
- Anstatt
interactionState = remember { InteractionState() }
an Komponenten wieButton
undModifier.clickable()
zu übergeben, verwenden SieinteractionSource = remember { MutableInteractionSource() }
. - Anstelle von
Interaction.Pressed in interactionState
sollten Sie stattdessen die Erweiterungsfunktionen für InteractionSource verwenden, z. B. InteractionSource.collectIsPressedAsState(). - Bei komplexen Anwendungsfällen können Sie mit „InteractionSource.interactions“ den Stream der Interaktionen beobachten. Weitere Informationen finden Sie in der Dokumentation und in den Beispielen zu „InteractionSource“.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- AccessibilityMananger-Oberfläche und LocalAccessibilityMananger in CompositionLocals hinzufügen (I53520)
- Die eingestellten LayoutCoordinates-Methoden wurden entfernt. Verwenden Sie anstelle der Eigenschaft für positionInParent und boundsInParent (I580ed, b/169874631, b/175142755) die Funktion
- Der Schieberegler unterstützt jetzt den Status „Aktiviert“/„Deaktiviert“ (I6d56b, b/179793072)
- Neue TextInputSession für Eingabesitzungen aus Low-Level-Textkomponenten wie CoreTextField erstellt. (I8817f, b/177662148)
- AnimationEndReason.Interrupted wurde entfernt. "CancelException" wird ausgelöst, wenn die Animation unterbrochen wird. (I2cbbc, b/179695417)
@ExperimentalRippleApi
wurde entfernt undRippleAlpha
in eine Klasse mit Eigenschaften anstelle einer Schnittstelle geändert. (I6df7c)- TextFieldColors-Schnittstelle wurde hinzugefügt, um verschiedene Farben darzustellen, die in TextField und OutlinedTextField in verschiedenen Zuständen verwendet werden. Die Standardimplementierung finden Sie unter TextFieldDefaults.textFieldColors und TextFieldDefaults.outlinedTextFieldColors.
- Der Parameter „isErrorValue“ in TextField und OutlinedTextField wurde in „isError“ umbenannt. (I831f9, b/171305338, b/168004067)
- Mit dem Modifikator „selectionGroup“ können mehrere Tabs oder Radiobuttons aus Gründen der Barrierefreiheit gekennzeichnet werden (Ie5c29)
LazyListState.animateScrollToItem hinzufügen
Mit dieser Methode wird flüssig zu einem bestimmten Element in der Liste gescrollt. (I4bfd7)
ScrollableState.smoothScrollBy()
wurde inanimateScrollBy()
umbenanntLazyListState.snapToItemIndex()
wurde inscrollToItem()
umbenanntScrollState.smoothScrollTo()
wurde inanimateScrollTo()
umbenannt (I35ded)Alle mit
@ReadOnlyComposable
gekennzeichneten Composeables werden jetzt zur Kompilierzeit geprüft, um sicherzustellen, dass nur andere@ReadOnlyComposables
aufgerufen werden (I58961)Die TargetAnimation API wurde entfernt. (If47d1, b/177457083)
Die Scrollposition in Modifier.verticalScroll()/horizontalScroll() wird jetzt mit Ganzzahlen dargestellt (I81298)
Die Pakete der Methoden „smooScrollBy“ und „scrollBy“ wurden in
androidx.compose.foundation.gestures.*
geändert (I3f7c1, b/175294473).FlingConfig wurde in FlingBehavior umbenannt und ermöglicht jetzt die Anpassung der Schwebeanimation anstelle von vordefinierten Abklingzeiten. (I02b86, b/175294473)
Größenmodifikatoren wurden umbenannt. „Modifier.width/height/size“ wurden in „requiredWidth/requiredHeight/requiredSize“ umbenannt. Modifier.preferredWidth/preferredHeight/preferredSize wurden in width/height/size umbenannt. (I5b414)
„defaultMinSizeConstraints“ wurde in „defaultMinSize“ umbenannt. (I4aae)
Die Ausrichtung wurde in das Basispaket verschoben. VelocityTracker wurde von ui.gesture zu ui.input.pointer verschoben. (Iff4a8, b/175294473)
drawerState.open() und drawerState.close() sind jetzt suspendierende Funktionen. Mit rememberCoroutineScope() den Bereich der Zusammensetzung abrufen, um sie aufzurufen (I16f60, b/175294473)
„Providers“ wurde in CompositionLocalProvider umbenannt
- Der Konstruktor für „Composition“ akzeptiert keinen Schlüsselparameter mehr und wurde eingestellt.
- „currentCompositeKeyHash“ wurde in eine zusammensetzbare Property auf oberster Ebene statt in eine zusammensetzbare Funktion auf oberster Ebene umgewandelt.
- CompositionData und CompositionGroup wurden in den Namespace „androidx.compose.runtime.tooling“ verschoben
- ComposableLambda wurde zu einer Schnittstelle anstelle einer konkreten Klasse gemacht und verfügt nicht mehr über Typparameter.
- ComposableLambdaN wurde zu einer Schnittstelle anstelle einer konkreten Klasse und hat keine Typparameter mehr.
- Die Funktion „snapshotFlow“ wurde in den Namespace „androidx.compose.runtime“ verschoben.
- Die Zusammenführungsmethode von SnapshotMutationPolicy ist nicht mehr experimentell
- Die „clearRoots“-Funktion der obersten Ebene von
@TestOnly
wurde entfernt. Das ist nicht mehr erforderlich. - Die Funktionen „keySourceInfoOf“ und „resetSourceInfo“ wurden entfernt. Sie werden nicht mehr benötigt.
- „Composer.collectKeySourceInformation“ wurde entfernt. Das ist nicht mehr erforderlich.
- Die Methoden „isJoinedKey“, „joinedKeyLeft“ und „joinedKeyRight“ wurden entfernt. Sie werden nicht mehr benötigt.
- Verschiedene APIs der obersten Ebene wurden in verschiedene Dateien verschoben und neu angeordnet. Aufgrund der Dateiklassensemantik von Kotlin wird dadurch die Binärkompatibilität, aber nicht die Quellkompatibilität beeinträchtigt. Das sollte für die meisten Nutzer kein Problem darstellen.
- (I99b7d, b/177245490)
Modifier.scrollable wurde überarbeitet. Jetzt wird die Scrollable-Schnittstelle anstelle der ScrollableController-Klasse verwendet (I4f5a5, b/174485541, b/175294473).
Modifier.draggable akzeptiert jetzt DraggableState anstelle eines einfachen Lambdas. Sie können den Status über
rememberDraggableState { delta -> }
erstellen, um dasselbe Verhalten wie zuvor zu erhalten (Ica70f, b/175294473)ZoomableController.smoothScaleBy und ZoomableController.stopAnimation sind jetzt Pausierungsfunktionen. (I7f970, b/177457083)
Einige zuvor eingestellte APIs wurden gelöscht (Ice5da, b/178633932)
Die folgenden Änderungen wurden an der Material API vorgenommen:
- Der Top/BottomAppBar-Parameter „contentPadding“ wurde hinzugefügt, um das Standardabstand anzupassen.
- Die Parameter in BackdropScaffold wurden neu angeordnet, um den API-Richtlinien für erforderliche Parameter vor optionalen Parametern zu entsprechen.
- Der Parameter
icon
in BottomNavigationItem wurde nachselected
undonClick
verschoben. - Der Parameter
alwaysShowLabels
in BottomNavigationItem wurde inalwaysShowLabel
umbenannt. bodyContent
-Parameter in einigen Komponenten wurden incontent
umbenannt.- Die Parameter in
ButtonDefaults.buttonColors()
wurden neu angeordnet. Da sich der Typ der Parameter nicht geändert hat, verursacht dies keinen Fehler in Ihrem Code. Stellen Sie sicher, dass Sie entweder benannte Parameter verwenden oder die Reihenfolge manuell aktualisieren. Andernfalls funktioniert der Code nicht wie zuvor. - Der Parameter
secondaryVariant
wurde zudarkColors()
hinzugefügt. Diese Farbe entspricht in der Regel der Farbe vonsecondary
im dunklen Design, wird aber hinzugefügt, um für Einheitlichkeit und weitere Anpassungen zu sorgen. - ElevationDefaults und animateElevation() wurden aus der öffentlichen API entfernt, da sie nicht häufig verwendet wurden.
onValueChangeEnd
inSlider
wurde inonValueChangeFinished
umbenannt und Nullwerte zulässig.- Der Parameter
text
inSnackbar
wurde aus Gründen der Einheitlichkeit incontent
umbenannt. - Dem Parameter
DropdownMenuItem
wurde der ParametercontentPadding
hinzugefügt, um das Standardabstand anzupassen. Außerdem wurdecontent
zu einer Erweiterung vonRowScope
. ModalDrawerLayout
wurde inModalDrawer
umbenannt.BottomDrawerLayout
wurde inBottomDrawer
umbenannt.- (I1cc66)
Für BasicTextField kann jetzt der Pinsel statt der Farbe verwendet werden, um die Textfelder besser anzupassen (I83a36)
„imageResource“ und „vectorResource“ sind jetzt Erweiterungsfunktionen für die Companion-Objekte „ImageBitmap“ und „ImageVector“. Die Funktionen „load{Image,Vector,Font}Resource“ wurden gelöscht. (I89130)
Änderung von Indication#createIndication() in Indication#rememberUpdatedIndication(InteractionState) und Entfernung des InteractionState-Parameters aus IndicationInstance#drawIndication(). IndicationInstance sollte nur für das Zeichnen visueller Effekte zuständig sein und nicht das Starten von Animationen oder den Schreibstatus als Reaktion auf InteractionState-Änderungen ausführen. Diese Animationen und Zustandsschreibvorgänge sollten stattdessen innerhalb von
rememberUpdatedIndication()
ausgeführt werden. Der Parameterindication
inModifier.indication
wurde ebenfalls in einen erforderlichen Parameter geändert. (IC1764, b/152525426)
Fehlerkorrekturen
- Neue lokale API für die Zusammensetzung von LocalSoftwareKeyboardController hinzugefügt, um die vorherige SoftwareKeyboardController-Schnittstelle in TextField zu ersetzen. (I658b6, b/168778053)
Version 1.0.0-alpha12
10. Februar 2021
androidx.compose.material:material-*:1.0.0-alpha12
wird veröffentlicht. Version 1.0.0-alpha12 enthält diese Commits.
API-Änderungen
- Für Modifier.pointerInput sind jetzt Schlüssel zum Speichern erforderlich, um anzugeben, wann die Coroutine zur Erkennung der Eingabe per Mauszeiger für neue Abhängigkeiten neu gestartet werden soll. (I849cd)
- BottomDrawerLayout und ListItem wurden als @ExperimentalMaterialApi (Id766e) gekennzeichnet.
- PaddingValues.Absolute wurde hinzugefügt und kann in APIs verwendet werden, die PaddingValues akzeptieren. (Ia5f30)
- onImeActionPerformed ist eingestellt. Verwenden Sie stattdessen KeyboardActions. (If0bbd, b/179071523)
- Um die Namenskonventionen besser an ImageBitmap und ImageVector anzupassen, wurde ImagePainter in BitmapPainter umbenannt, um Parallelität zu VectorPainter herzustellen. (Iba381, b/174565889)
- „Animatable.snapTo“ und „Animatable.stop“ sind jetzt Aussetzungsfunktionen (If4288)
- „ComponentActivity.setContent“ wurde nach androidx.activity.compose.setContent im Modul androidx.activity:activity-compose verschoben. (Icf416)
- Die Destrukturierungs- und copy()-Methoden wurden aus mehreren Klassen entfernt, in denen sie nur selten verwendet wurden. (I26702, b/178659281)
- halfExpand() und expand() in ModalBottomSheetState intern machen (Ic914e)
- Die Änderung von Indication#createInstance wurde zu @Composable geändert und LocalIndication so geändert, dass sie ein Indication-Element enthält, nicht () -> Indication. (I5eeea, b/157150564)
- „AlertDialog“ und „Drop-down-Menü“ sind jetzt nur noch für Android verfügbar. Dem Drop-down-Menü wurde der Parameter „PopupProperties“ hinzugefügt, um das zugrunde liegende Pop-up weiter zu konfigurieren. (I9c443)
- „loadFontResource“ wird nicht mehr unterstützt. Verwenden Sie stattdessen „fontResource“. Die Attribute „imageResource“, „loadImageResource“, „vectorResource“ und „loadVectorResource“ wurden eingestellt. Verwenden Sie stattdessen painterResource. (I6b809)
- Die Parameter
toggle
undtoggleModifier
wurden aus „DropdownMenu“ entfernt unddropdownModifier
,dropdownOffset
unddropdownContent
inmodifier
,offset
undcontent
umbenannt. DropdownMenu verhält sich jetzt konsistent mitPopup
, wobei das übergeordnete Layout für die Position des Menüs verwendet wird. In den meisten Fällen können Sietoggle
als Geschwisterelement vonDropdownMenu
verschieben und beide inBox
einschließen. Weitere Informationen zur Verwendung dieser API finden Sie im aktualisierten Beispiel in der Dokumentation. (I884fb) - „toIntPx()“ wurde in „roundToPx()“ umbenannt. (I9b7e4, b/173502290)
- IntBounds wurde in IntRect umbenannt und die API wurde verbessert. (I1f6ff)
- Semantikaktionen zum Maximieren und Minimieren wurden hinzugefügt. „expand“ und „halfExpand“ in „ModalBottomSheetState“ hinzugefügt (Ib5064)
- Modifier.dragGestureFilter wurde eingestellt. Verwenden Sie stattdessen
Modifier.pointerInput { detectDragGestures (...)}
. Alternativ können Sie Modifier.draggable für das Ziehen entlang einer Achse verwenden (I0ba93, b/175294473) - Die Namen der Bildschirmschoner wurden umbenannt, damit sie mit der Umbenennung von „Ambient“ in „CompositionLocal“ übereinstimmen. Ambients hießen früher AmbientFoo, jetzt heißen sie CompositionLocals. (I2d55d)
- Auswahl wurde auf Fundament verschoben. (I7892b)
- Ähnlich wie wir zuvor
state { 0 }
-Kompositen entfernt und die Verwendung vonremember { mutableStateOf(0) }
empfohlen haben, werden wirsavedInstanceState { 0 }
-Kompositen entfernen. Verwenden Sie stattdessenrememberSaveable { mutableStateOf(0) }
. Dieser wird automatisch gespeichert und wiederhergestellt, wenn der im MutableState verwendete Typ im Bundle gespeichert werden kann. Wenn Sie bisher ein benutzerdefiniertes Saver-Objekt übergeben haben, müssen Sie eine neue Überlastung von „memorySaveable“ mit dem ParameterstateSaver
verwenden. Die Verwendung sieht dann so aus:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004) - ProgressBarRangeInfo.Indeterminate wurde hinzugefügt, um nicht befristete Fortschrittsanzeigen für die Barrierefreiheit zu kennzeichnen (I6fe05)
@ComposableContract wurde zugunsten von drei spezifischeren Anmerkungen eingestellt.
@ComposableContract(restartable = false)
ist zu@NonRestartableComposable
geworden@ComposableContract(readonly = true)
ist zu@ReadOnlyComposable
geworden@ComposableContract(preventCapture = true)
ist jetzt@DisallowComposableCalls
@ComposableContract(tracked = true)
wurde entfernt.- (I60a9d)
Die Dienstprogramme
emptyContent()
und(@Composable () -> Unit).orEmpty()
wurden eingestellt, da sie keine positiven Auswirkungen auf die Leistung mehr haben und keinen Mehrwert bieten (I0484d)rememberSavedInstanceState() wurde in rememberSaveable() umbenannt und in das Paket androidx.compose.runtime.saveable verschoben. (I1366e, b/177338004)
Saver, listSaver(), mapSaver(), autoSaver wurden von androidx.compose.runtime.savedinstancestate zu androidx.compose.runtime.saveable verschoben (I77fe6)
Die Parameter „left“ (links) und „right“ (rechts) von „RounderCornerShape“, „CutCornerShape“ und „CornerBasedShape“ wurden in „start“ (Anfang) und „end“ (Ende) umbenannt, um die automatische Spiegelung der Form in Richtung „rtl“ zu unterstützen. AbsoluteRounderCornerShape und AbsoluteCutCornerShape wurden für Fälle eingeführt, in denen keine automatische Spiegelung gewünscht ist. (I61040, b/152756983)
Die Parameter
text
undicon
des Tabs sowie der Parameterlabel
von BottomNavigationItem wurden so geändert, dass Nullen zulässig sind. Dies soll das Verhalten der Komponente besser vermitteln, wenn diese Parameter nicht angegeben sind, da sich dies auf die Größe und das Layout der Komponente auswirkt. Wenn Sie derzeitemptyContent()
für keinen Text, kein Symbol oder kein Label übergeben, sollten Sie stattdessennull
verwenden. (I57ed4)Der Farbparameter „contentColorFor“ wurde in „backgroundColor“ umbenannt (I5bb67)
TabDefaults wurde eingestellt und durch TabRowDefaults ersetzt. (I0f189)
Einführung der ColorMatrix API, mit der die RGB-Werte des Quellinhalts geändert werden können. Die Refactored ColorFilter API ist eine Schnittstelle, die der Implementierung von PathEffect entspricht. (Ica1e8)
„AnimatedValue/Float“ wurde eingestellt. Verwenden Sie stattdessen „Animatable“. (I71345, b/177457083)
Fügen Sie die SemanticsProperties.PaneTitle API hinzu. (I20d5a)
Für „Tab“ und „BottomNavigationItem“ wurden aktivierte Parameter hinzugefügt, damit sie nicht angeklickt werden können. „BottomNavigationItem“ in „RowScope.BottomNavigationItem“ umbenannt, um die Layoutanforderungen in der API besser auszudrücken. (Id683d)
Die Funktionen „tapGestureFilter“, „doubleTapGestureFilter“, „longPressGestureFilter“ und „pressIndicaitonGestureFilter“ wurden eingestellt. Verwenden Sie stattdessen Modifier.clickable oder Modifier.pointerInput mit der Funktion „detectTapGestures“. (I6baf9, b/175294473)
Fügen Sie der createOutline-Funktion von Shape den Parameter „layoutDirection“ hinzu. So lassen sich layoutorientierte Formen erstellen. (I57c20, b/152756983)
Recomposer.current()
wurde entfernt. [Zusammenfassung]ComposeView verwendet jetzt standardmäßig verzögert erstellte, fensterweite Recomposer, die vom ViewTreeLifecycleOwner für das Fenster gesteuert werden. Recomposition und mitFrameNanos-basierte Animations-Ticks werden pausiert, während der Lebenszyklus des Hosts angehalten ist. (I38e11)
Fehlerkorrekturen
- Das Symbol wird jetzt unter Berücksichtigung der angewendeten Größenmodifikatoren an seine Größe angepasst.
Icon(.., modifier = Modifier.size(50.dp)
wird jetzt beispielsweise in einem Bereich von 50 × 50 dp gezeichnet. (Ib2ba9, b/178796190)
Version 1.0.0-alpha11
28. Januar 2021
androidx.compose.material:material-*:1.0.0-alpha11
wurde veröffentlicht. Version 1.0.0-alpha11 enthält diese Commits.
API-Änderungen
- Einige Material APIs werden nicht mehr als
@Experimental
eingestuft (I5d20e) - Dem Bild und dem Symbol wurde der Parameter „Inhaltsbeschreibung“ hinzugefügt. Sie wird verwendet, um Bedienungshilfen zu beschreiben (I2ac4c).
- Ändert zustandsorientierte Material-Parameteroberflächen in @Composable-Funktionen, die
State<T>
zurückgeben. Es wirdAnimatable.asState()
hinzugefügt, um die Umwandlung eines animierbaren Elements in einen Status zu vereinfachen. Außerdem wird „animateElevation“ in eine Aussetzungserweiterung für „Animatable“ geändert. (If613c) - Snackbar, SnackbarHost, SnackbarHostState sind nicht mehr
@ExperimentalMaterialAPI
(Id1fb5) - „Typografie“, „Formen“ und „TabPosition“ sind keine Datenklassen mehr. Es wurde eine Kopierfunktion für Typografie und Formen hinzugefügt, um die generierten zu ersetzen. (I40037)
- Einige zuvor eingestellte Material APIs (Ifaa25) wurden gelöscht.
Fehlerkorrekturen
- onCommit, onDispose und onActive wurden zugunsten der SideEffect- und DisposableEffect-APIs eingestellt (If760e)
- Die auf „TransitionDefinition“ basierende Umstellung wurde eingestellt (I0ac57)
- Anfänglicher Status in updateTransition wird jetzt unterstützt (Ifd51d)
- WithConstraints wurde als BoxWithConstraints überarbeitet und zu "foundation.layout" verschoben. (I9420b, b/173387208)
ScrollBy ohne Sperrung einstellen, scrollTo entfernen (nicht gesperrtes Element)
Wir empfehlen jetzt, Sperren zu verwenden, um das Scrollen zu steuern und auf das Ende des Scrollens zu warten. Im Rahmen dieser Umstellung werden die nicht ausgesetzten Versionen dieser Funktionen eingestellt und/oder entfernt. (Ie9ced)
Einstellung der Funktion „smoothScrollBy“ ohne Pausierung Wir empfehlen jetzt, Pausierungsfunktionen zu verwenden, um das Scrollen zu steuern und zu warten, bis das Scrollen abgeschlossen ist. Im Rahmen dieser Umstellung werden die Versionen dieser Funktionen ohne Pausierung eingestellt. (I12880)
ComposeContentTestRule
wurde eingeführt, dasComposeTestRule
erweitert undsetContent
definiert, das ausComposeTestRule
entfernt wurde. Wir haben eine Factory-MethodecreateEmptyComposeRule()
hinzugefügt, die eineComposeTestRule
zurückgibt und keine Aktivität für dich startet. Verwenden Sie diese Option, wenn Sie die Aktivität während des Tests starten möchten, z. B. mitActivityScenario.launch
(I9d782, b/174472899).Die in Button und FloatingActionButton verwendete Welle kann nicht mehr durch die Bereitstellung einer neuen Angabe über AmbientIndication angepasst werden. Dies war nie als Möglichkeit gedacht, diese Komponenten anzupassen, und dies führt nun dazu, dass diese Komponenten mit anderen Material-Komponenten konsistent sind. Informationen zum Anpassen von Wellen in einer Anwendung finden Sie unter „RippleTheme“. (I546c5)
„animateAsState“ heißt jetzt „animateFooAsState“, wobei „Foo“ der Typ der animierten Variablen ist, z. B. „Float“, „Dp“ oder „Offset“ (Ie7e25)
Für „BasicTextField“ wurde der neue Parameter
decorationBox
hinzugefügt. Sie können dem Textfeld Dekorationen wie Symbole, Platzhalter, Labels usw. hinzufügen und den Trefferbereich vergrößern. (I16996)Es wurde ein Fehler behoben, bei dem die Breite des Materialtextfelds nicht auf weniger als 280.dp festgelegt werden konnte (I78373).
Der Parameter „canDrag“ wurde aus „Modifier.draggable“ entfernt (Ic4bec, b/175294473)
Entfernen Sie displaySize, da dies vermieden werden sollte. Normalerweise ist es besser, die Größe von onRoot() oder zumindest die Fenstergröße zu verwenden. (I62db4)
Oberflächen können jetzt mehrere Layout-untergeordnete Elemente haben. (I66a92, b/144488459)
invalidate und compositionReference() werden jetzt zugunsten von currentRecomposeScope bzw. rememberCompositionReference eingestellt. (I583a8)
Der PopupPositionProvider verwendet jetzt fensterrelative Koordinaten anstelle von globalen Koordinaten. parentGlobalBounds in anchorBounds umbenannt und windowGlobalBounds in
windowSize: IntSize
geändert (I2994a)„Duration“ und „Uptime“ werden durch „Long milliseconds“ ersetzt. Dadurch wird die Abhängigkeit der Zeigereingabe von diesen Klassen aufgehoben. (Ia33b2, b/175142755, b/177420019)
AnimatedFloat.fling, das FlingConfig akzeptiert, wurde entfernt. Verwenden Sie stattdessen „suspendAnimatable.animateDecay“. (I4659b, b/177457083)
Klickbare, ausblendbare und auswählbare Elemente können jetzt außerhalb der Komposition erstellt werden (I0a130, b/172938345, b/175294473)
Die Funktion „Easing“ wurde in eine funktionale Oberfläche geändert (Ib14e5)
ScrollableColumn/Row wurden eingestellt. Die Verwendung von ScrollableColumn ist bei großen scrollbaren Inhalten weniger effizient als LazyColumn, da mit LazyColumn nur sichtbare Elemente erstellt, gemessen und gezeichnet werden können. Um zu verhindern, dass Nutzer ineffizient arbeiten, haben wir uns entschieden, ScrollableColumn und ScrollableRow einzustellen und stattdessen die Verwendung von LazyColumn und LazyRow zu empfehlen. Nutzer können trotzdem entscheiden, dass sie kein Lazy-Verhalten benötigen, und die Modifikatoren direkt wie folgt verwenden: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
Neue
items(count: Int)
-Factorymethode für LazyColumn/LazyRow/LazyVerticalGrid.items(items: List)
unditemsIndexed(items: List)
sind jetzt Erweiterungsfunktionen und müssen bei Verwendung manuell importiert werden. Neue Erweiterungsüberladungen für Arrays:items(items: Array)
unditemsIndexed(Array)
(I803fc, b/175562574)Die experimentellen Methoden „monotonicFrameAnimationClockOf“ wurden entfernt (Ib753f, b/170708374)
Die Methoden für globale Koordinaten wurden eingestellt und neue fensterbasierte Koordinatenmethoden eingeführt. (Iee284)
Hinzugefügt wurde Modifier.toolingGraphicsLayer, das einen Grafikebenen-Modifikator hinzufügt, wenn die Prüfung aktiviert ist. (I315df)
FocusRequester.createRefs ist jetzt als experimentell gekennzeichnet, da sich die Funktion noch ändern kann. (I2d898, b/177000821)
SemanticsPropertyReceiver.hidden wurde in invisibleToUser umbenannt und als @ExperimentalComposeUiApi gekennzeichnet. „AccessibilityRangeInfo“ wurde in „ProgressBarRangeInfo“ umbenannt. „stateDescriptionRange“ wurde in „progressBarRangeInfo“ umbenannt. „AccessibilityScrollState“ wurde in „ScrollAxisRange“ umbenannt. „horizontalAccessibilityScrollState“ wurde in „horizontalScrollAxisRange“ umbenannt. „verticalAccessibilityScrollState“ wurde in „verticalScrollAxisRange“ umbenannt. (Id3148)
TestCoroutineDispatcher bei Tests nutzen (I532b6)
Die Vektorgrafik-API wurde aktualisiert, um das Parsen von Tönungen zu unterstützen, die auf die Wurzel der Vektorgrafik angewendet werden. (Id9d53, b/177210509)
Version 1.0.0-alpha10
13. Januar 2021
androidx.compose.material:material-*:1.0.0-alpha10
wird veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.
API-Änderungen
- Die Geschwindigkeit wurde so geändert, dass sie Komponenten und mathematische Operationen enthält. (Ib0447)
@ExperimentalTesting
wurde in@ExperimentalTestApi
umbenannt, damit sie mit ähnlichen Annotationen der experimentellen API übereinstimmt (Ia4502, b/171464963).- „Position“ in „DpOffset“ umbenannt und „getDistance()“ entfernt (Ib2dfd)
- Color.useOrElse() in Color.takeOrElse() umbenannt (Ifdcf5)
- „Toggle“ zu „foundation Strings.kt“ hinzufügen (I4a5b7, b/172366489)
- FlowRow und FlowColumn wurden eingestellt. Verwenden Sie stattdessen ein benutzerdefiniertes Layout. (I09027)
- Modifier.focus() und Modifier.focusRequester() sind veraltet. Verwenden Sie stattdessen „Modifier.focusModifier()“ und „Modifier.focusReference()“. (I75a48, b/175160751, b/175160532, b/175077829)
- nativeClass wurde in das UI-Modul verschoben und intern gemacht. Die Verwendung von nativeClass in Gleich-Implementierungen wurde so aktualisiert, dass stattdessen „is MyClass“ verwendet wird. (I4f734)
Fehlerkorrekturen
- Unterstützung für deaktivierte und schreibgeschützte Textfelder hinzugefügt (I35279, b/171040474, b/166478534)
animate()
wird jetzt durchanimateAsState()
ersetzt. Dieser gibtState<T>
anstelle vonT
zurück. Dies ermöglicht eine bessere Leistung, da der Entwertungsbereich darauf eingegrenzt werden kann, wo der Statuswert gelesen wird. (Ib179e)- Fügen Sie die Semantics Role API und die Rolle als Parameter zu anklickbarer, auswählbarer und ein-/ausschaltbarer SemanticsModifier hinzu. Wir haben Modifier.progressSemantics geändert, damit es auch für den Schieberegler verwendet werden kann. (I216cd)
Version 1.0.0-alpha09
16. Dezember 2020
androidx.compose.material:material-*:1.0.0-alpha09
wird veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.
API-Änderungen
- API zum manuellen Auslösen der Abschlussanimation und zum Ziehen in Modifier.swipeable hinzugefügt (Iaa17a, b/162408885)
- *Constants-Objekte wie „ButtonConstants“ wurden umbenannt, sodass sie jetzt auf „Defaults“ enden, z. B. „ButtonDefaults“. Entfernt außerdem unnötige
default
-Präfixe aus Attributen in diesen neuen Objekten. (Ibb915, b/159982740) Compose unterstützt Property-Getter, die kombinierbare Aufrufe ermöglichen. Die Unterstützung dafür wird nicht eingestellt, aber die Syntax zum Deklarieren eines Eigenschafts-Getters als @Composable ändert sich.
Dazu wurde die Property selbst mit einer Anmerkung versehen. Diese Syntax ist inzwischen nicht mehr zulässig:
@Composable val someProperty: Int get() = ...
Die jetzt korrekte Syntax hierfür besteht darin, den Getter der Property zu annotieren:
val someProperty: Int @Composable get() = ...
Beide Syntaxen funktionieren noch einige Zeit, aber die alte Syntax wird irgendwann zu einem Kompilierungsfehler führen. (Id9197)
Die
androidx.compose.material:material-ripple
-Bibliothek mit Ripple-APIs wurde hinzugefügt, um interaktive Komponenten zu erstellen, ohne den Rest der Material-Bibliothek zu benötigen. „rememberRippleIndication“ wurde eingestellt und durch „rememberRipple“ ersetzt. (Ibdf11)
Fehlerkorrekturen
- Lambdas in Offset-Modifizierern geben jetzt IntOffset statt Float zurück. (Ic9ee5, b/174137212, b/174146755)
ShaderBrush wurde neu strukturiert, um eine Shaderinstanz zu erstellen, wenn Informationen zur Größe der Zeichenumgebung verfügbar sind. Dies ist nützlich, um Farbverläufe zu definieren, die bei der Zusammensetzung die gesamten Zeichengrenzen eines Composeables einnehmen, ohne dass benutzerdefinierte DrawModifier-Implementierungen implementiert werden müssen.
APIs für Gradientenfunktionskonstruktoren wurden durch Factory-Methoden für ein Gradient-Objekt ersetzt. (I511fc, b/173066799)
Modifier.focusObserver wurde eingestellt. Verwenden Sie stattdessen Modifier.onFocusChanged oder Modifier.onFocusEvent (I30f17, b/168511863, b/168511484)
LazyColumnFor, LazyRowFor, LazyColumnForIndexed und LazyRowForIndexed werden eingestellt. Verwenden Sie stattdessen LazyColumn und LazyRow (I5b48c).
Dp.VectorConverter, Position.VectorConverter usw. wurden in „animation-core“ verschoben und die alten VectorConveters eingestellt (If0c4b)
Die Autofill API ist jetzt eine experimentelle API und muss aktiviert werden (I0a1ec)
Destruktive Deklarationen zum Erstellen von FocusRequester-Instanzen hinzufügen (I35d84, b/174817008)
„accessibilityLabel“ wurde in „contentDescription“ umbenannt. „accessibilityValue“ wurde in „stateDescription“ umbenannt. (I250f2)
Neue Funktion „infiniteRepeatable“ zum Erstellen einer InfiniteRepeatableSpec (I668e5)
Das Positionierungsverhalten von Drop-down-Menüs wurde gemäß der Material-Spezifikation leicht geändert. (I34c72, b/168594123)
InteractionState-Unterstützung für Textfelder wurde hinzugefügt. (I61d91)
„Modifier.clearAndSetSemantics“ wurde hinzugefügt, um die Semantik von Nachkommen zu löschen und neue festzulegen. (I277ca)
ContentDrawScope wurde in das UI-Grafikmodul verschoben, um es mit DrawScope zusammenzuführen. (Iee043, b/173832789)
Version 1.0.0-alpha08
2. Dezember 2020
androidx.compose.material:material:1.0.0-alpha08
, androidx.compose.material:material-icons-core:1.0.0-alpha08
und androidx.compose.material:material-icons-extended:1.0.0-alpha08
wurden veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.
API-Änderungen
- MaterialTheme setzt jetzt die richtigen Farben für Auswahl-Handle und Auswahlhintergrund. In nicht-Material-Apps können die Farben für die Auswahl manuell mithilfe von „AmbientTextSelectionColors“ angepasst werden. (I1e6f4, b/139320372, b/139320907)
- Es wurde eine Lint-Prüfung für die Benennung und Position von zusammensetzbaren Lambda-Parametern hinzugefügt, um die Übereinstimmung mit den Compose-Richtlinien zu prüfen.
Außerdem wurden einige APIs, die
children
als Namen für das abschließende Lambda verwendet haben, gemäß der Lint-Prüfung und den Anleitungen zucontent
migriert. (Iec48e) - VectorAsset in ImageVector umbenannt VectorAsset in Builder verschoben und umbenannt, um gemäß den Richtlinien des API-Rates eine innere Klasse von ImageVector zu sein Typealias von VectorAssetBuilder hinzugefügt, um eine Verknüpfung mit ImageVector.Builder herzustellen. (Icfdc8)
- „ImageAsset“ und zugehörige Methoden wurden in „ImageBitmap“ umbenannt. (Ia2d99)
- Fundamentsemantikeigenschaften wurden in die Benutzeroberfläche verschoben (I6f05c)
fun RippleIndication()
wurde verworfen und durchrememberRippleIndication()
ersetzt, um die Konsistenz mit anderen APIs zu wahren. (Id8e2c)- Ein singeLine-Parameter wurde zu BasicTextField, TextField und OutlinedTextField hinzugefügt. Setzen Sie diesen Parameter auf „true“, um das Textfeld zu einer einzelnen horizontal scrollbaren Zeile zu machen. (I57004, b/168187755)
Fehlerkorrekturen
- Semantikaktion hinzufügen. Schließen (I2b706)
- Die DrawModifier APIs wurden aus dem Paket androidx.compose.ui in das Paket androidx.compose.ui.draw verschoben. Die Datei „DrawModifierDeprecated.kt“ wurde erstellt, um Aliasse und Hilfsmethoden für die Migration von den eingestellten zu den aktuellen APIs zu enthalten. (Id6044, b/173834241)
- Umbenennung von Modifier.drawLayer in Modifier.graphicsLayer Änderungen der zugehörigen Klassen in GraphicsLayer gemäß API-Feedback (I0bd29, b/173834241)
<T>
wurde aus der Deklaration von „SubcomposeLayout“ entfernt. Sie können es jetzt ohne Angabe eines Typs verwenden. (Ib60c8)- Die APIs „Modifier.scale“ und „Modifier.rotate“ wurden für drawLayer hinzugefügt.
Modifier.drawOpacity
wurde inModifier.alpha
umbenanntModifier.drawShadow
inModifier.shadow
umbenannt (I264ca, b/173208140)
- Der Ausrichtungsparameter von „Box“ wurde in „contentAlignment“ umbenannt. (I2c957)
- Die Modifikatoren „offsetPx“ wurden in „offset“ umbenannt. Sie verwenden jetzt Lambda-Parameter anstelle von Status. (Ic3021, b/173594846)
- Einführung der APIs „SweepGradientShader“ und „SweepGradientBrush“. (Ia22c1)
- Es wurde eine Lint-Prüfung für Modifikatorparameter in zusammensetzbaren Funktionen hinzugefügt. Bei dieser Lint-Prüfung werden Name, Rückgabetyp, Standardwert und Reihenfolge des Parameters auf Konsistenz mit den Richtlinien zum Schreiben geprüft. (If493b)
- Aktualisierte TextFieldValue API
- TextFieldValue.composition ist schreibgeschützt.
- Ausnahme für ungültigen Auswahlbereich entfernt (I4a675, b/172239032)
- Neue
Modifier.drawLayer()
-Überladung hinzugefügt. Es wird ein Lambda-Block für einen neuen GraphicsLayerScope verwendet, in dem Sie die Ebenenparameter so definieren, dass die Neuzusammensetzung und das Neulayout bei einem Statuswechsel übersprungen werden. DrawLayerModifier ist jetzt intern für die Migration seiner Logik in dieplaceable.placeWithLayer()
-Methode von LayoutModifier (I15e9f, b/173030831). - Wir haben Ambients mit dem Suffix
Ambient
eingestellt und durch neue Properties mit dem Präfix „Ambient“ ersetzt, gemäß den Richtlinien für Ambients und die Compose API. (I33440) - Lint-Prüfung wurde hinzugefügt, um zu prüfen, ob Modifier Factorys intern
androidx.compose.ui.composed {}
verwenden, statt als@Composable
gekennzeichnet zu werden. (I3c4bc) - Das Semantik-Argument „mergeAllDescendants“ wurde in „mergeDescendants“ umbenannt. (Ib6250)
- Die Zeitsteuerung in Tests (TestAnimationClock und ihre Verwendung) ist jetzt experimentell (I6ef86, b/171378521)
- Altes UI-Testmodul und seine Stubs entfernen (I3a7cb)
- TextUnit.Inherit wurde in TextUnit.Unspecified umbenannt, um für Einheitlichkeit mit anderen Einheiten zu sorgen. (Ifce19)
- Die Benutzeroberfläche für die Ausrichtung wurde aktualisiert und funktioniert jetzt. (I46a07, b/172311734)
- „id“ wurde in „layoutId“ für „LayoutIdParentData“ umbenannt. „Measurable.id“ wurde in „Measurable.layoutId“ umbenannt. (Iadbcb, b/172449643)
Version 1.0.0-alpha07
11. November 2020
androidx.compose.material:material:1.0.0-alpha07
, androidx.compose.material:material-icons-core:1.0.0-alpha07
und androidx.compose.material:material-icons-extended:1.0.0-alpha07
wurden veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.
API-Änderungen
- „Emphasis“ (Betonung) wurde eingestellt und durch „AmbientContentAlpha“ ersetzt. „AmbientContentAlpha“ ist eine einfachere Abstraktion, die die bevorzugte Alpha-Wert für den Inhalt für einen Teil der Hierarchie darstellt, ähnlich wie „AmbientContentColor“ die bevorzugte Farbe für den Inhalt darstellt. Text und Symbol verwenden jetzt standardmäßig den aktuellen Wert von „AmbientContentAlpha“. Sie können auch manuell
color.copy(alpha = AmbientContentAlpha.current)
eingeben, um denselben Effekt in Ihren Komponenten zu erzielen. Anstatt „ProvideEmphasis“ zu verwenden, können Sie einfach direkt einen Wert über „AmbientContentAlpha“ angeben und die alten „EmphasisLevels“ durch die neuen Standardebenen in „ContentAlpha“ ersetzen. (Idf03e, b/159017896) - androidx.compose.material.AmbientContentColor wurde hinzugefügt, um androidx.compose.foundation.AmbientContentColor zu ersetzen (I84f7b, b/172067770)
- Ersetzt androidx.compose.foundation.Text durch androidx.compose.material.Text als übergeordnete, thematisierbare Textkomponente. Verwenden Sie „BasicText“, wenn Sie eine einfache Textkomponente benötigen, die keine Farbe oder keinen Textstil aus dem Design verwendet. (Ie6ae0)
- Textfeldern wurde „maxLines“ hinzugefügt (Ib2a5b)
- TextFields so aktualisieren, dass sie Tastaturoptionen akzeptieren (Ida7f3)
- Für die Berechnung von Höhenebenen wird jetzt die absolute (Gesamt-)Höhe der Oberfläche verwendet. Bei einer in einer anderen Oberfläche verschachtelten Oberfläche wird also die kombinierte Höhe verwendet, um die Ebene zu zeichnen. (I7bd2b, b/171031040)
Fehlerkorrekturen
captureToBitmap
nach "captureToImage
" verschoben (I86385)- Die Grundlagen AmbientTextStyle, ProvideTextStyle und AmbientContentColor wurden eingestellt. Verwenden Sie stattdessen die neuen Versionen, die in der Materialbibliothek verfügbar sind. Für nicht-Material-Anwendungen sollten Sie stattdessen eigene Designsystem-spezifische Themenumgebungen erstellen, die in Ihren eigenen Komponenten verwendet werden können. (I74acc, b/172067770)
- foundation.Text wurde eingestellt und durch material.Text ersetzt. Eine grundlegende, neutrale Text-API, die keine Werte aus einem Design verwendet, finden Sie unter androidx.compose.foundation.BasicText. (If64cb)
- KeyboardOptions in ImeOptions umbenennen (I82f36)
- KeyboardType und ImeAction wurden in KeyboardOptions verschoben (I910ce)
- BaseTextField wurde eingestellt. Verwenden Sie stattdessen „BasicTextField“. (I896eb)
- Die Anmerkung „ExperimentalSubcomposeLayoutApi“ wurde entfernt. SubcomposeLayout kann jetzt ohne Hinzufügen von @OptIn verwendet werden (I708ad)
- „FirstBaseline“ und „LastBaseline“ wurden in das Paket „androidx.compose.ui.layout“ verschoben (Ied2e7).
- Die Symbol-API wurde aktualisiert, sodass „Color.Unspecified“ als mögliche Färbung verwendet werden kann. Dadurch wird das bereitgestellte Asset oder der bereitgestellte Painter ohne Farbfilter gezeichnet. Zuvor wurde versucht, die Färbung mit Farbe zu ignorieren.Bei einer nicht angegebenen Färbung wurde am Ende eine transparente Färbung verwendet, am Ende wurde überhaupt nichts gerendert. (I049e2, b/171624632)
- „relativePaddingFrom“ wurde in „paddingFrom“ umbenannt. Der Modifikator „PaddingFromBaseline“ wurde hinzugefügt, um die Abstände zwischen Layoutgrenzen und Text-Baselines einfacher festlegen zu können. (I0440a, b/170633813)
- „LaunchedTask“ wurde in „LaunchedEffect“ umbenannt, um für Einheitlichkeit mit den APIs „SideEffect“ und „DisposableEffect“ zu sorgen. „LaunchedEffect“ ohne Subjektparameter ist nicht zulässig, um Best Practices zu fördern. (Ifd3d4)
- „MeasureResult“ wurde aus „MeasureScope“ verschoben. (Ibf96d, b/171184002)
- Mehrere layoutbezogene Symbole wurden von androidx.compose.ui zu androidx.compose.layout.ui verschoben. (I0fa98, b/170475424)
Version 1.0.0-alpha06
28. Oktober 2020
androidx.compose.material:material:1.0.0-alpha06
, androidx.compose.material:material-icons-core:1.0.0-alpha06
und androidx.compose.material:material-icons-extended:1.0.0-alpha06
werden losgelassen. Version 1.0.0-alpha06 enthält diese Commits.
API-Änderungen
- „androidx.compose.foundation.Icon“ wurde nach „androidx.compose.material.Icon“ verschoben. Sie können auch die Bildkomponente / Modifier.paint() mit einem Painter verwenden, wenn Sie die Materialbibliothek nicht verwenden möchten. (I9f622)
- Hiermit wird „FloatingActionButtonElevation“ hinzugefügt, um die Höhe von FloatingActionButtons in verschiedenen Status darzustellen. Die Standardimplementierung finden Sie unter FloatingActionButtonConstants.defaultElevation() (I2d4f5).
- Neue SwitchColors-Oberfläche zur Darstellung von Farben, die von einem Switch in verschiedenen Status verwendet werden. Weitere Informationen zum Anpassen dieser Farben finden Sie unter SwitchConstants.defaultColors. (I93805)
- Fügt SchaltflächenElevation und ButtonColors Oberflächen hinzu, um Höhen und Farben darzustellen, die von Schaltflächen in verschiedenen Zuständen verwendet werden. Informationen zum Anpassen dieser Parameter finden Sie in den Standardfunktionen unter „ButtonConstants“. (Ic5b7b)
- Fügen Sie die Benutzeroberfläche „RadioButtonColors“ hinzu, um Farben darzustellen, die von einem RadioButton in verschiedenen Status verwendet werden. Unter „RadioButtonConstants.defaultColors()“ finden Sie Informationen zum Anpassen der Farben, die in verschiedenen Zuständen verwendet werden. (I74130)
- Fügt die CheckboxColors-Oberfläche hinzu, um Farben darzustellen, die von einem Kontrollkästchen in verschiedenen Zuständen verwendet werden. Unter CheckboxConstants.defaultColors() können Sie die Farben für die verschiedenen Status anpassen. (I7dbdb)
Fehlerkorrekturen
- Bei Materialkomponenten wird die Höhe nicht mehr als Z-Index festgelegt. Das bedeutet, dass innerhalb desselben übergeordneten Elements das untergeordnete Element mit der größeren Schattengröße nicht automatisch über dem untergeordneten Element mit dem kleineren Schatten gezeichnet wird. Wenn Sie dieses Verhalten weiterhin benötigen, legen Sie Modifier.zIndex() bei Bedarf manuell fest (I70417, b/170623932).
- VectorPainter wird zugunsten von rememberVectorPainter eingestellt, um besser zu verdeutlichen, dass die composable API intern „remember“ nutzt, um Daten in Kompositionen zu speichern. (Ifda43)
- Übergänge in ComposeTestRule aktivieren; Option zum Aktivieren des blinkenden Cursors aus ComposeTestRule entfernen. (If0de3)
- Einzeilige Tastaturoption für CoreTextField (I72e6d) hinzugefügt
- Die Radius API wurde in „CornerRadius“ umbenannt, um besser auszudrücken, wie sie in Compose verwendet wird. Die Dokumentation wurde aktualisiert, um anzugeben, dass negative Eckradien auf null begrenzt werden. (I130c7, b/168762961)
- DrawScope und ContentDrawScope wurden in Schnittstellen anstelle von abstrakten Klassen umgestellt.
- CanvasDrawScope-Implementierung von DrawScope erstellt
- Implementierungen von DrawScope wurden überarbeitet, um stattdessen CanvasScope zu verwenden
- Wir haben DrawContext erstellt, um Abhängigkeiten für DrawScope
- Nicht mehr unterstützte Methoden in DrawScope entfernt (I56f5e)
- „Box“ wurde zu einer Inline-Funktion. (Ibce0c, b/155056091)
Version 1.0.0-alpha05
14. Oktober 2020
androidx.compose.material:material:1.0.0-alpha05
, androidx.compose.material:material-icons-core:1.0.0-alpha05
und androidx.compose.material:material-icons-extended:1.0.0-alpha05
werden losgelassen. Version 1.0.0-alpha05 enthält diese Commits.
API-Änderungen
- Pop-ups und Dialogfelder übernehmen jetzt FLAG_SECURE vom übergeordneten Fenster. Außerdem wurde die Option hinzugefügt, dies explizit zu konfigurieren (I64966, b/143778148, b/143778149)
- Modifier.swipeable hat jetzt standardmäßig Grenzwerte von 56 dp für Status (Iab825, b/168610267)
- Alle Scaffold-Status sind als @Stable gekennzeichnet. „drawerGesturesEnabled“ in ScaffoldState wurde in Scaffold verschoben. (I36645, b/168297016)
- Der Typ „Nullable“ wird aus den Lambda-Parametern von Scaffold entfernt. Sie können „emptyContent()“ verwenden, um für einen bestimmten Parameter keinen Inhalt anzugeben. (I2b318, b/157633857, b/158551084)
Die APIs „contentColor()“ und „currentTextStyle()“ werden eingestellt und durch die Umgebungen „AmbientContentColor“ und „AmbientTextStyle“ ersetzt. Du kannst auf den aktuellen Wert zugreifen, indem du
.current
wie bei jeder anderen Umgebungs-Property verwendest. Diese Änderung wurde aus Gründen der Einheitlichkeit vorgenommen, um zu vermeiden, dass es mehrere Möglichkeiten gibt, dasselbe zu tun. Außerdem wurden einige Umgebungseigenschaften umbenannt, um ihren Zweck besser zu beschreiben:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
Es wurde das Attribut „AmbientElevationOverlay“ hinzugefügt, mit dem das Standard-Ebenen-Overlay für Oberflächen im dunklen Design angepasst oder deaktiviert werden kann. (I5b74d)
Fehlerkorrekturen
- Im Rahmen der Standardisierung von Sentinel-Werten für Inline-Klassen wird „Color.Unset“ in „Color.Unspecific“ umbenannt, um eine Konsistenz mit anderen Inline-Klassen zu erreichen (I97611, b/169797763).
- TextOverflow.None wurde eingeführt. Wenn „overflow“ den Wert „None“ hat, wird der Text nicht mehr von „Text“ verarbeitet und seine tatsächliche Größe wird an „LayoutNode“ gemeldet. (I175c9, b/158830170)
- launchInComposition wurde in "LaunchedTask" umbenannt, um den Compose API-Richtlinien zu entsprechen (I99a8e).
- OnPositionedModifier wurde in OnGloballyPositionedModifier umbenannt und onPositioned() in onGloballyPositioned(). (I587e8, b/169083903)
Version 1.0.0-alpha04
1. Oktober 2020
androidx.compose.material:material:1.0.0-alpha04
, androidx.compose.material:material-icons-core:1.0.0-alpha04
und androidx.compose.material:material-icons-extended:1.0.0-alpha04
werden losgelassen. Version 1.0.0-alpha04 enthält diese Commits.
API-Änderungen
- Stellt InteractionState-Parameter in zustandsabhängigen Materialkomponenten bereit, um den Status zu heben und zu lesen / steuern. (Iaca5f, b/168025711, b/167164434)
- Ändert die
*color
-Parameter für RadioButton und TriStateCheckbox, um die Farben für jeden Status vollständig anzupassen und bei Bedarf die Farbanimation zwischen den Status zu ändern. Weitere Informationen finden Sie in den neuen Farbfunktionen animateDefault* in CheckboxConstants und RadioButtonConstants. (I1c532) - „rememberBackdropState“ in „rememberBackdropScaffoldState“ umbenannt und eine zusätzliche Parameter für die Animationsuhr hinzugefügt. Der Parameter „backdropScaffoldState“ von BackdropScaffold wurde in „scaffoldState“ umbenannt. BackdropConstants in BackdropScaffoldConstants umbenannt. (Ib644d)
- Die experimentelle Komponente „BottomSheetScaffold“ wurde hinzugefügt. (Ie02f0, b/148996320)
- Die experimentelle Komponente „ModalBottomSheetLayout“ wurde hinzugefügt. (IC209e, b/148996320)
- Benennt ButtonConstants/FloatingActionButtonConstants.defaultanimateElevation in defaultElevation um und gibt jetzt einen Dp-Wert anstelle eines animateValue zurück. (I5f3ed)
Fehlerkorrekturen
- Viele Grafik-APIs wurden aktualisiert.
- Die APIs für Skalierungs- und Drehtransformationen wurden aktualisiert, sodass jetzt ein einzelner Offset-Parameter für die Drehpunktkoordinate verwendet wird, anstatt separater Gleitkommaparameter für die X-/Y-Koordinaten in DrawScope und DrawTransform.
- Die Methoden „Rect.expandToInclude“ und „Rect.join“ wurden entfernt.
- Die Dokumentation zu Radius wurde aktualisiert: Neben dem elliptischen
- Die Dokumentation wurde um einen Hinweis ergänzt, dass der öffentliche Konstruktor für die Inline-Klasse „Radius“ nicht direkt aufgerufen werden darf, sondern dass Radius-Objekte stattdessen über ihre Funktionskonstruktoren erstellt werden sollten.
- RoundRect-APIs für die Abfrage von topRight,bottomRight, bottomCenter usw. wurden entfernt.
- Rect.shift wurde zugunsten von Rect.translate eingestellt
- Die APIs „RoundRect.grow“ und „Rect.shrink“ wurden entfernt.
- RoundRect.outerRect wurde in Rect.boundingRect umbenannt
- Die Methoden „RoundRect.middleRect“, „tallMiddleRect“, „wideMiddleRect“ und „Rect.isStadium“ wurden entfernt.
- RoundRect.longestSide in RoundRect.maxDimension umbenannt
- „RoundRect.shortestSide“ wurde in „RoundRect.minDimension“ umbenannt
- RoundRect.center wurde zu einer Eigenschaft anstelle einer Funktion geändert
- Der RoundRect-Konstruktor verwendet jetzt Radius-Attribute anstelle einzelner Parameter für x/y-Radiuswerte.
- Entfernte APIs für die Größe, bei denen davon ausgegangen wurde, dass es sich um ein Rechteck mit dem Ursprung bei 0,0 handelt
- Radius-API zum Löschen von Elementen hinzugefügt
- Verschiedene Erweiterungsfunktionen für RoundRect wurden zu Eigenschaften migriert.
- (I8f5c7, b/168762961)
- foundation.Box wurde eingestellt. Verwenden Sie stattdessen foundation.layout.Box. (Ie5950, b/167680279)
- „Stack“ wurde in „Box“ umbenannt. Das bisher vorhandene Box wird zugunsten des neuen Box in compose.foundation.layout eingestellt. Das neue Feld stapelt die untergeordneten Elemente übereinander, wenn es mehrere davon hat. Das unterscheidet es vom vorherigen Feld, das sich ähnlich wie eine Spalte verhielt. (I94893, b/167680279)
- Die Parameter für die Box-Dekoration wurden eingestellt. Wenn Sie Verzierungen oder Ränder für das Feld haben möchten, verwenden Sie stattdessen Modifikatoren (Modifier.background, Modifier.border, Modifier.padding). (Ibae92, b/167680279)
- Viele Grafik-APIs wurden aktualisiert.
- Die DrawScope APIs wurden um Transformationsmethoden mit Bereichsangabe erweitert, um anzugeben, dass die Transformation nur innerhalb des Callbacks angewendet und nach dem Aufruf des Callbacks entfernt wird.
- Die Dokumentation zu „clipPath“ wurde aktualisiert, um statt „rounded rectangle“ auf „Path“ zu verweisen.
- In der Dokumentation wurde der Abstand für den rechten Parameter in „clipPath“ korrigiert.
- DrawScope.drawCanvas in drawIntoCanvas umbenannt und Größeparameter entfernt
- Umbenennung der dx/dy-Parameter in der Inset-Methode in horizontal und vertikal
- Überladung für „inset“ hinzugefügt, die allen vier Rändern denselben Wert zuweist
- Die Dokumentation zur Inset-Methode, in der angegeben wurde, dass der Inset auf alle vier Seiten angewendet wird, wurde entfernt.
- Aktualisierte Dokumentation für die Klasse „Rect“
- Kommentare zu Rect-Parametern wurden an den KDoc-Stil angepasst
- Entfernt: Rect.join und Rect.expandToInclude
- Überladung für Rect.translate(offset) erstellt und Rect.shift eingestellt
- (If086a, b/167737376)
- Statische Importe von Inhalten von Layoutbereichen (z.B. „alignWithSiblings“ in „RowScope“) sind nicht mehr möglich. Stattdessen sollte die Alternative mit explizitem Umfang verwendet werden:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be, b/166760797)
Version 1.0.0-alpha03
16. September 2020
androidx.compose.material:material:1.0.0-alpha03
, androidx.compose.material:material-icons-core:1.0.0-alpha03
und androidx.compose.material:material-icons-extended:1.0.0-alpha03
werden losgelassen. Version 1.0.0-alpha03 enthält diese Commits.
API-Änderungen
- Der Parameter
onSelect
vonBottomNavigationItem
wird inonClick
umbenannt (I91925, b/161809324) - Fügt einen InteractionState-Parameter zu BottomNavigationItem und Tab hinzu, sodass dieser Zustand angehoben und die Darstellung der Komponente in verschiedenen Zuständen angepasst werden kann. (Ia3e9e, b/168025711)
- Entfernt die Parameter
disabledBackgroundColor
unddisabledContentColor
aus Schaltflächen. Verwenden Sie stattdessen die neuen Standardfarbfunktionen in ButtonConstants. Wenn Sie „contentColor“ bzw. „backgroundColor“ bereits explizit festlegen, sollten Sie stattdessen diese Standardfunktionen verwenden und einige/alle Parameter anpassen, um zu vermeiden, dass die Farbe für beide aktivierten/deaktivierten Status überschrieben wird. (If9b52) - Die Hintergrundfarbe des Textfelds wird nicht mehr implizit als Alphakanal angewendet. Stattdessen wird jede über den Parameter backgroundColor bereitgestellte Farbe direkt angewendet. (Iecee9, b/167951441)
- „InnerPadding“ wurde in „PaddingValues“ umbenannt. (I195f1, b/167389171)
- Die Parameter
resistanceFactorAtMin
undresistanceFactorAtMax
inModifier.swipeable
wurden durch einen einzelnen Widerstandsparameter ersetzt. InSwipeableConstants
wurde eine neuedefaultResistanceConfig
-Methode hinzugefügt. (I54238) - Unterstützung für animierte zustandsabhängige Erhöhung für Schaltflächen und FloatingActionButton hinzugefügt. Die Höhe wird jetzt zwischen dem Standard- und dem gedrückten Zustand animiert. Verwenden Sie zum Anpassen der Höhe zwischen Bundesstaaten
ButtonConstants.defaultAnimatedElevation()
undFloatingActionButtonConstants.defaultAnimatedElevation()
, anstatt in allen Fällen einen flachen Dp-Wert festzulegen. (I37925) - „Label“ ist jetzt ein optionaler Parameter in „TextField“ und „OutlinedTextField“ (I267f6, b/162234081)
Fehlerkorrekturen
- Globale Testfunktionen wie
onNode
oderwaitForIdle
werden nicht mehr unterstützt. Bitte migrieren Sie zu den neuen Funktionen, die in ComposeTestRule (I7f45a) definiert sind. - DpConstraints und APIs, die sie verwenden, wurden eingestellt. (I90cdb, b/167389835)
- Die Parameter „minWidth“ und „maxWidth“ von „widthIn“ wurden in „min“ und „max“ umbenannt. Gleiches gilt für „preferredWidthIn“, „heightIn“ und „preferredHeightIn“. (I0e5e1, b/167389544)
- Semantikaktionen zum Vor- und Zurückscrollen wurden entfernt. Es wurden Schritte zu „AccessibilityRangeInfo“ hinzugefügt. (Ia47b0)
- Die Verwendung von „gravity“ wurde in Layout-APIs einheitlich in „align“ oder „alignment“ umbenannt. (I2421a, b/164077038)
- OnNode und andere globale Methoden wurden zu ComposeTestRule hinzugefügt, da die aktuellen globalen Methoden nicht mehr unterstützt werden. (Ieae36)
createAndroidComposeRule
undAndroidInputDispatcher
wurden vonandroidx.ui.test.android
nachandroidx.ui.test
verschoben (Idef08, b/164060572)
Version 1.0.0-alpha02
2. September 2020
androidx.compose.material:material:1.0.0-alpha02
, androidx.compose.material:material-icons-core:1.0.0-alpha02
und androidx.compose.material:material-icons-extended:1.0.0-alpha02
werden losgelassen. Version 1.0.0-alpha02 enthält diese Commits.
API-Änderungen
- Eine experimentelle BackdropScaffold-Komponente wurde hinzugefügt. (Iad908)
Fehlerkorrekturen
- Matrix4 wurde durch Matrix ersetzt. Alle anderen Teile des Pakets „vectormath“ wurden entfernt. (Ibd665, b/160140398)
Version 1.0.0-alpha01
26. August 2020
androidx.compose.material:material:1.0.0-alpha01
, androidx.compose.material:material-icons-core:1.0.0-alpha01
und androidx.compose.material:material-icons-extended:1.0.0-alpha01
werden losgelassen. Version 1.0.0-alpha01 enthält diese Commits.
Bekanntes Problem
= Das erste Zeichen in einem Material-TextField
kann nicht mithilfe einer Rücktaste entfernt werden (b/165956313).
Version 0.1.0-dev
Version 0.1.0-dev17
19. August 2020
androidx.compose.material:material:0.1.0-dev17
, androidx.compose.material:material-icons-core:0.1.0-dev17
und androidx.compose.material:material-icons-extended:0.1.0-dev17
werden losgelassen. Version 0.1.0-dev17 enthält diese Commits.
API-Änderungen
- Die zuvor verworfenen Elemente „RadioGroup“ und „RadioGroupItems“ wurden entfernt. Verwenden Sie stattdessen „Zeile“ und „Radioschaltfläche“ (I381b7, b/163806637).
- onFocusChanged-Callbacks aus TextField entfernt. Verwenden Sie stattdessen Modifier.focusObserver. (I51089, b/161297615)
- Modifier.drawBorder wurde eingestellt. Verwenden Sie stattdessen „Modifier.border“. Die Datenklasse „Border“ wurde durch „BorderStroke“ ersetzt (I4257d, b/158160576)
- Einige Eigenschaften in „SwipeableState“ wurden umbenannt: „swipeTarget“ in „targetValue“, „swipeProgress“ in „progress“ und „swipeDirection“ in „direction“. Die Funktion „rememberSwipeableState“ zum Erstellen von SwipeableStates wurde hinzugefügt. (I2fc9c, b/163129614, b/163132293)
- Die Unterstützung von Snackbars mit Positionierung und korrekter Warteschlangenverwaltung wurde hinzugefügt. Auf sie kann über die
SnackbarHostState.showSnackbar
-Aussetzungsfunktion zugegriffen werden. Außerdem gilt:- Die Komponenten „SnackbarHost“ wurden hinzugefügt. Er beherbergt Snackbars basierend auf dem Status und ist für den Übergang zwischen den Snackbars verantwortlich.
- „SnackbarHostState“ wurde hinzugefügt, um die Steuerung von Snackbars und Snackbar-Hosts zu ermöglichen und sie vom „ScaffoldState“ zu entkoppeln. Sie können auch über
scaffoldState.snackbarHostState
auf diesen Status zugreifen. - Die Snackbar-Überlastung wurde hinzugefügt, um eine gemeinsame Schnittstelle zwischen SnackbarHostState und Snackbars selbst zu unterstützen. (I79aaa)
- Dem Symbolschalter wird der Parameter „enabled“ hinzugefügt und die Parameter in der Symbol-Ein/Aus-Schaltfläche werden neu angeordnet (I0a941, b/161809385, b/161807956)
- Die ListItem-Version mit der stringbasierten API wurde entfernt. Verwenden Sie stattdessen die Slot-Version. (Ib8f57, b/161804681)
- Die veraltete Komponente „FilledTextField“ wurde entfernt. Verwenden Sie stattdessen „TextField“, um die Material Design-Implementierung des ausgefüllten Textfelds zu erhalten. (I5e889)
- AlertDialog verwendet jetzt FlowRow für Schaltflächen (I00ec1, b/161809319, b/143682374).
- In Modifier.swipeable wurden Parameter hinzugefügt, mit denen sich der Widerstand beim Wischen über die Grenzen hinaus ändern lässt. Parameter „[min/max]Value“ entfernt. (I93d98)
- Dem LinearProgressIndicator wurde der Parameter „backgroundColor“ hinzugefügt und das interne Padding von CircularProgressIndicator entfernt. Neue ProgressIndicatorConstants.DefaultProgressAnimationSpec hinzugefügt, die als Standard-AnimationSpec beim Animieren des Fortschritts zwischen Werten verwendet werden kann (If38b5, b/161809914, b/161804677)
- Dem Modifier „swipeable“ wurde der optionale Parameter „velocityThreshold“ hinzugefügt. (I698ba)
- bottomBarSize, fabSize und andere sind in ScaffoldState nicht mehr verfügbar. Verwenden Sie stattdessen Modifier.onPosition für die Komponente, deren Größe Sie wissen möchten. contentColor und Modifier-Pamatere wurden Scaffold hinzugefügt (Ic6f7b, b/161811485, b/157174382).
- Einige Parameter auf dem Tab wurden umbenannt und neu angeordnet, um für Konsistenz mit anderen APIs zu sorgen (Ia2d12, b/161807532)
- Teilt TabRow in TabRow und ScrollableTabRow auf und entfernt isScrollable aus TabRow. Außerdem wird „edgePadding“ in ScrollableTabRow freigegeben, mit dem sich der kostenlose Raum vor und nach den Tabs steuern lässt. (I583e8, b/161809544)
- Das
TabRow
-Objekt wurde entfernt und durch „TabConstants“ ersetzt. „TabRow.TabPosition“ wurde auf die oberste Ebene (TabPosition) verschoben und „indicatorContainer“ in „indicator
“ umbenannt. Ausführliche Informationen zur Verwendung der aktualisierten API und zu den Standardeinstellungen finden Sie in den Beispielen und der Dokumentation. (I54d45, b/161809544) - Der Schwellenwertparameter in Modifier.swipeable wurde optimiert. Er nimmt jetzt ein Statuspaar (vom Typ T) an und gibt den Schwellenwert zwischen ihnen in Form einer ThresholdConfig zurück. SwipeToDismiss wurde die Parameter dismissThresholds hinzugefügt, ein Lambda (DismissDirection) -> ThresholdConfig. (Ie1080)
- Der Schieberegler hat mehr Farben für eine detaillierte Anpassung (I73e64, b/161810475)
- Der Parameter „color“ der Karte wurde in „backgroundColor“ umbenannt (I01fc1, b/161809546)
- Die Hintergrund- und Inhaltsfarben der Snackbar können jetzt angepasst werden (I238f2, b/161804381)
- Die Anpassungsparameter „modifier“, „backgroundColor“, „contentColor“ und „scrimColor“ wurden zu Ausblendungsleisten hinzugefügt (I23655, b/161804378)
- Die
state { ... }
-Komponente wird jetzt zugunsten expliziter Aufrufe vonremember { mutableStateOf(...) }
eingestellt. Dadurch wird die API-Oberfläche insgesamt und die Anzahl der Konzepte für die Zustandsverwaltung reduziert. Außerdem entspricht dies demby mutableStateOf()
-Muster für die Delegation von Klasseneigenschaften. (Ia5727) - Der Parameter „padding“ der Schaltfläche wurde in „contentPadding“ umbenannt (Id252e, b/161809394)
- Die experimentelle Materialkomponente „SwipeToDismiss“ hinzufügen (I129e5)
Fehlerkorrekturen
onChildPositioned
undOnChildPositionedModifier
wurden entfernt. Entwickler sollten stattdessenonPositioned
undOnPositionedModifier
im untergeordneten Layout verwenden. (I4522e, b/162109766)- Dem SemanticsPropertyKey wurde die Lambda-Funktion „mergePolicy“ hinzugefügt. So können Sie eine benutzerdefinierte Richtlinie für die Zusammenführung von mergeAllDescendants-Semantiken definieren. Standardmäßig wird der übergeordnete Wert verwendet, sofern vorhanden. Andernfalls wird der untergeordnete Wert verwendet. (Iaf6c4, b/161979921)
- IntSize ist jetzt eine Inline-Klasse (I2bf42).
PlacementScope.placeAbsolute()
wurde inPlacementScope.place()
umbenannt und das vorherigePlacementScope.place()
inPlacementScope.placeRelative()
. Daher wird die Position in Kontexten, in denen von rechts nach links geschrieben wird, mit derPlacementScope.place()
-Methode nicht mehr automatisch gespiegelt. Verwenden Sie stattdessenPlacementScope.placeRelative()
. (I873ac, b/162916675)- „PxBounds“ wurde zugunsten von „Rect“ eingestellt. Alle Verwendungen von PxBounds wurden durch „rect“ ersetzt und entsprechende Anmerkungen zur Einstellung/Ersetzung wurden hinzugefügt, um die Migration zu erleichtern. (I37038, b/162627058)
- RRect in RoundRect umbenannt, um besser zu den Benennungsmustern von Compose zu passen. Ähnliche Funktionskonstruktoren wie RRect erstellt und RRect-Funktionskonstruktoren eingestellt (I5d325)
Version 0.1.0-dev16
5. August 2020
androidx.compose.material:material:0.1.0-dev16
, androidx.compose.material:material-icons-core:0.1.0-dev16
und androidx.compose.material:material-icons-extended:0.1.0-dev16
werden losgelassen. Version 0.1.0-dev16 enthält diese Commits.
API-Änderungen
- „Colors“ ist jetzt eine finale Klasse anstelle einer Schnittstelle. Anstatt eine benutzerdefinierte Implementierung zu erweitern und bereitzustellen, sollten Sie ein neues Ambient für Ihr benutzerdefiniertes Themenobjekt erstellen und in Ihren Komponenten über das neue Ambient auf das Themenobjekt zugreifen, ähnlich wie MaterialTheme intern funktioniert. (Ibae84)
- „ColorPalette“ wurde in „Colors“ umbenannt, um eine bessere Zuordnung zum Material-Farbsystem zu ermöglichen und Verwirrung darüber zu vermeiden, dass „ColorPalette“ ein generisches Designobjekt ist und keine spezifische Implementierung des Material-Farbsystems. Außerdem werden lightColorPalette und DarkColorPalette in lightColors bzw. DarkColors umbenannt. (I9e976, b/161812111)
- Benennt den Parameter
text
von BottomNavigationItem inlabel
,onSelected
inonSelect
,activeColor
inselectedContentColor
undinactiveColor
inunselectedContentColor
um und aktualisiert die Parameterreihenfolge gemäß den Richtlinien. (Icb605, b/161809324) Modifier.stateDraggable
wurde komplett überarbeitet und in „Modifier.swipeable“ umbenannt. Es wurde eine neue Klasse „SwipeableState“ eingeführt und „DrawerState“ und „BottomDrawerState“ wurden so umgestellt, dass sie von dieser Klasse erben. [Modal/Bottom]DrawerLayout akzeptiert keinen Parameter „onStateChange“ mehr. (I72332, b/148023068)- Das Paket „foundation.shape.corner“ wurde zu „foundation.share“ zusammengeführt (I46491, b/161887429)
- Anmerkung „ExperimentalMaterialApi“ hinzugefügt. RippleTheme als experimentell gekennzeichnet (Ic5fa0, b/161784800)
- „Material FilledTextField“ wurde in „TextField“ umbenannt und „foundational TextField“ in „BaseTextField“, damit die einfachste gewünschte API leicht zu finden und zu verwenden ist (Ia6242, b/155482676)
Fehlerkorrekturen
- „OnChildPositioned“ wurde eingestellt. Verwenden Sie stattdessen „OnPositioned“ auf dem untergeordneten Element. (I87f95, b/162109766)
- Allgemeine API-Fehler behoben (I077bc)
- Nicht verwendete OffsetBase-Schnittstelle entfernen
- Align Offset and IntOffset classes to have a consistent API surface
- Benennen Sie IntOffset.Origin in IntOffset.Zero um, um mit der Offset API konsistent zu sein.
- Die nativeCanvas-Methode wurde aus der Canvas-Benutzeroberfläche entfernt, damit Nutzer ihre eigenen Canvas-Instanzen erstellen können.
- Die Stub-Klasse „EmptyCanvas“ wurde erstellt, um „DrawScope“ zu einem nicht nullwertigen Parameter anstelle eines lateinit-Parameters umzuwandeln und dafür zu sorgen, dass das Feld nicht null sein darf.
- ClipOp-Enum-Typen in Pascal-Case umbenannt
- Die Filterqualitätsenumer wurden in Pascal-Schriftart umbenannt.
- Die StrokeJoin-Enume wurden in Pascal Case umbenannt.
- PointMode-Enums wurden in Pascal Case umbenannt
- Die Enum-Typen „PaintingStyle“ wurden in Pascal Case umbenannt.
- Die Aufzählungen vom Typ „PathFillType“ wurden in Pascal-Schreibweise umbenannt.
- StrokeCap-Enumerierungen in Pascal-Case umbenannt
- Die DrawCache-Implementierung wurde aktualisiert, sodass lateinit-Parameter nicht mehr verwendet werden.
- DrawScope wurde aktualisiert, sodass für die internen Parameter „fillPaint“ und „strokePaint“ nicht mehr die lazy Delegation verwendet wird.
- Die Bildkomposition wurde aktualisiert, um die Nutzung von Box zu vermeiden und den Overhead zu reduzieren.
- Outline-Klasse wurde aktualisiert und enthält jetzt @Unveränderliche Annotationen.
- PathNode wurde aktualisiert, um @Immutable-Anmerkungen für jede Pfadanweisung zu haben.
- Die Vektor-Unterkomposition wurde aktualisiert, um redundante bedingte Gleichheitsprüfungen zu entfernen, da diese bereits von „compose“ verarbeitet werden.
- Die Konstruktormethoden für Rect-Begleiter wurden zugunsten von Funktionskonstruktoren eingestellt.
- Aktualisierte Pinselklassen und Funktionskonstruktoren mit @Immutable- und @Stable-APIs
- VertexMode-Enum auf PascalCase umgestellt
- Die DrawScope-Methode „selectPaint“ wurde aktualisiert, um Strichparameter für die Farbe bedingt zu überschreiben, wenn sie sich geändert haben.
- Wir haben die Größe aktualisiert, um eine destruktive API hinzuzufügen, „UnspecificSize“ in „Nicht angegeben“ umbenannt und nicht verwendete Methoden entfernt
- Dialogfeld in die Benutzeroberfläche verschieben (I47fa6)
SemanticsNodeInteraction.performPartialGesture
wurde entfernt. Verwenden Sie stattdessenSemanticsNodeInteraction.performGesture
. (Id9b62)SemanticsNodeInteraction.getBoundsInRoot()
inSemanticsNodeInteraction.getUnclippedBoundsInRoot()
umbenannt (Icafdf, b/161336532)- Die APIs für die Unterstützung von rechts nach links wurden aktualisiert. Die Variable „LayoutDirectionAmbient“ wurde hinzugefügt. Mit ihr kann die Layoutrichtung gelesen und geändert werden. Modifier.rtl und Modifier.ltr wurden entfernt. (I080b3)
- „Modifier.determineProgress“ wurde in „Modifier.progressSemantics“ umbenannt (I9c0b4)
- Aktualisierung von „material-icons-extended“ mit den neuesten Symbolen, die Material.io/icons hinzugefügt wurden (I4b1d3)
- Der Typ „T“ muss für „transitionDefinition“ explizit angegeben werden. (I1aded)
- Modifier.plus wurde eingestellt. Verwenden Sie stattdessen Modifier.then. „Dann“ ist ein stärkeres Signal für die Reihenfolge und verhindert gleichzeitig das Eintippen von
Modifier.padding().background() + anotherModifier
, was die Abfolge unterbricht und die Lesbarkeit erschwert (Iedd58, b/161529964) - AndroidComposeTestRule in createAndroidComposeRule umbenannt (I70aaf)
- Fügen Sie SemanticsMatcher „isFocused()“ und „isNotFocused()“ hinzu. (I0b760)
BaseGestureScope.globalBounds
wurde entfernt, das nicht für Tests verwendet werden sollte. Verwenden Sie stattdessen Koordinaten, die lokal zum Knoten gehören, mit dem Sie interagieren. (Ie9b08)- Feste Pop-up-Position auf Displays mit Aussparung (Idd7dd)
- Modifier.drawBackground wurde in Modifier.background umbenannt (I13677)
Version 0.1.0-dev15
22. Juli 2020
androidx.compose.material:material:0.1.0-dev15
, androidx.compose.material:material-icons-core:0.1.0-dev15
und androidx.compose.material:material-icons-extended:0.1.0-dev15
werden losgelassen. Version 0.1.0-dev15 enthält diese Commits.
Aktualisierung von Abhängigkeiten
- Wenn Sie die
0.1.0-dev15
-Version von Compose verwenden möchten, müssen Sie Ihre Abhängigkeiten gemäß den neuen Code-Snippets oben unter Abhängigkeiten deklarieren aktualisieren.
API-Änderungen
Die Anmerkung
@Model
wurde verworfen. Verwenden Sie „state“ und „mutableStateOf“ als Alternativen. Diese Entscheidung wurde nach sorgfältiger Prüfung getroffen.Begründung
Dazu gehören unter anderem:
- Reduziert die API-Oberfläche und die Konzepte, die wir vermitteln müssen
- Entspricht eher anderen vergleichbaren Toolkits (Swift UI, React, Flutter)
- Reversible Entscheidung.
@Model
können wir später jederzeit wieder einführen. - Vermeidet Grenzfälle und schwierig zu beantwortende Fragen zur Konfiguration von
@Model
als Aufgaben, die wir übernehmen müssen. @Model
-Datenklassen, equals, Hash-Code usw.- Wie kann ich festlegen, dass einige Properties „beobachtet“ und andere nicht werden?
- Wie lege ich fest, ob strukturelle und referenzielle Gleichheit in der Beobachtung verwendet werden soll?
- Reduziert die „Magie“ im System. Dies verringert die Wahrscheinlichkeit, dass jemand annimmt, dass das System intelligenter ist als es ist (z. B. dass es weiß, wie eine Liste verglichen wird).
- Ermöglicht eine intuitivere Detaillierung der Beobachtungen.
- Verbesserte Umstellung von Variablen zu Eigenschaften in Klassen
- Ermöglicht möglicherweise manuelle, bundeslandspezifische Optimierungen
- Passt besser zum Rest des Ökosystems und reduziert die Ambiguität in Bezug auf unveränderliche oder uns „veränderliche Zustand“.
Migrationshinweise
Fast alle vorhandenen Verwendungen von
@Model
können auf eine von zwei Arten relativ einfach umgewandelt werden. Das folgende Beispiel hat eine@Model
-Klasse mit zwei Attributen, die nur für dieses Beispiel genutzt werden, und die in einer zusammensetzbaren Funktion verwendet wird.@Model class Position( var x: Int, var y: Int ) @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, p.x = it } p.y = it } ) }
Alternative 1:
State<OriginalClass>
verwenden und Kopien erstellenDieser Ansatz wird durch die Datenklassen von Kotlin vereinfacht. Erstellen Sie im Grunde alle zuvor
var
-Properties alsval
-Properties einer Datenklasse, verwenden Sie dannstate
anstelle vonremember
und weisen Sie den Statuswert mithilfe dercopy(...)
-Methode der Datenklasse den geklonten Kopien des Originals zu.Beachten Sie, dass dieser Ansatz nur funktioniert, wenn die einzigen Mutationen an dieser Klasse im selben Bereich wie die
State
-Instanz vorgenommen wurden. Wenn sich die Klasse intern außerhalb des Anwendungsbereichs ändert und Sie sich auf diese Beobachtung verlassen, ist der nächste Ansatz der richtige Ansatz, den Sie verwenden werden.data class Position( val x: Int, val y: Int ) @Composable fun Example() { var p by state { Position(0, 0) } PositionChanger( position=p, p = p.copy(x=it) } p = p.copy(y=it) } ) }
Alternative 2: „MadableStateOf“ und Property-Bevollmächtigte verwenden
Dieser Ansatz wird mit den Property Delegaten von Kotlin und der
mutableStateOf
API vereinfacht, mit der Sie MutableState-Instanzen außerhalb der Komposition erstellen können. Ersetzen Sie im Wesentlichen allevar
-Attribute der ursprünglichen Klasse durchvar
-Attribute mitmutableStateOf
als Property-Delegaten. Das hat den Vorteil, dass sich die Verwendung der Klasse nicht ändert, sondern nur die interne Implementierung. Das Verhalten ist jedoch nicht vollständig mit dem ursprünglichen Beispiel identisch, da jede Property jetzt einzeln beobachtet und abonniert wird. Die Neuzusammensetzungen, die Sie nach dieser Umstrukturierung sehen, können also eingeschränkter sein (was gut ist).class Position(x: Int, y: Int) { var x by mutableStateOf(x) var y by mutableStateOf(y) } // source of Example is identical to original @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, p.x = it } p.y = it } ) }
(I409e8, b/152050010, b/146362815, b/146342522, b/143413369, b/135715219, b/143263925, b/139653744)
Der Rückruf „onFocusChange“ in Textfeldern wurde in „onFocusChanged“ umbenannt (Ida4a1)
Der Parameter für Schwellenwerte in stateDraggable wurde hinzugefügt, um Schwellenwerte zwischen Ankern anzugeben. Damit wurde ein Grenzwert von 56 dp in der unteren Schublade festgelegt. Außerdem verwendet BottomDrawerLayout jetzt ein separates BottomDrawerState-Enum. (I533fa)
Die zuvor eingestellte Option „Modifier.ripple“ wurde entfernt. Bei „Clickable“ wird jetzt die Ripple-Funktion als Standardhinweis verwendet (sofern in Ihrer Anwendung ein MaterialTheme {} festgelegt ist). In den meisten Fällen können Sie also einfach „Clickable“ verwenden und erhalten die Ripple-Funktion kostenlos. Wenn Sie den Parameter color / size / bounded für die Verbreitung anpassen müssen, können Sie manuell eine RippleIndication erstellen und als Indication-Parameter an anklickbar übergeben. (I663b2, b/155375067)
Veraltete Override für das FilledTextField-Kompositelement entfernt (I7f8f8)
Button-Objekt (enthält die Standardwerte, die von der Button-Funktion verwendet werden) in „ButtonConstants“ umbenennen (I7c5f7, b/159687878)
Die Inhaltsfläche der Schaltfläche verhält sich jetzt wie eine Zeile. Das ist nützlich, wenn Sie ein Symbol mit einem Text benötigen, siehe Beispiele zum Schreiben der Schaltfläche. (I0ff10, b/158677863)
RadioGroup und RadioGroupItem wurden eingestellt. Verwenden Sie das Feld mit Modifier.selectable, Row und Column, um die richtigen Optionsfelder für Ihr Design auszuwählen (I7f5cf, b/149528535)
Textfeld mit Umriss (I1a518) hinzugefügt
androidx.ui.foundation.TextFieldValue und androidx.ui.input.EditorValue wurden eingestellt. Die Composeables „TextField“, „FilledTextField“ und „CoreTextField“, die diesen Typ verwenden, werden ebenfalls eingestellt. Verwenden Sie stattdessen androidx.ui.input.TextFieldValue (I4066d, b/155211005).
TabRow.TabPosition enthält keine Position in Dp, nicht in IntPx (I34a07, b/158577776)
IntPx wurde durch Int ersetzt. IntPxPosition wurde durch IntOffset ersetzt. IntPxSize durch IntSize ersetzt (Ib7b44)
Um die Anzahl der Klassen zur Darstellung von Größeninformationen zu konsolidieren, sollten Sie die Verwendung der Klasse "Size" anstelle von "PxSize" standardisieren. Dies bietet die Vorteile einer Inline-Klasse, bei der ein Long-Wert verwendet wird, um zwei Float-Werte für Breite und Höhe zu verpacken. (Ic0191)
Modifier.ripple wird eingestellt. Bei „Clickable“ wird jetzt die Ripple-Funktion als Standardhinweis verwendet (sofern in Ihrer Anwendung ein MaterialTheme {} festgelegt ist). In den meisten Fällen können Sie also einfach „Clickable“ verwenden und erhalten die Ripple-Funktion kostenlos. Wenn Sie den Parameter „Farbe“, „Größe“ oder „Begrenzt“ für die Ripple-Animation anpassen möchten, können Sie eine Ripple-Anzeige manuell erstellen und als Parameter „Anzeige“ an „klickbar“ übergeben. (I101cd, b/155375067)
Die Scaffold API wurde überarbeitet: Einige Parameter haben ihren Namen geändert und neue Parameter zur besseren Anpassung hinzugefügt. Getter zu Abfragegrößen von Fab, TopBar und BottomBar (I0e7ce) hinzugefügt
Die Komponente "Dropdown-Menü" wurde zu UI-Material hinzugefügt, einer Implementierung des Menüs Material Design. (I9bb3d)
Manuelles Ein-/Ausblenden der Softwaretastatur mit SoftwareKeyboardController (Ifb9d6, b/155427736)
Modifier.indication wurde dem Foundation-Paket hinzugefügt. Mit diesem Attribut können Sie eine entsprechende Anzeige für Ihre benutzerdefinierten interaktiven Elemente einblenden (I8425f, b/155287131).
CanvasScope-Implementierungen wurden konsolidiert. Es gibt jetzt nur noch DrawScope und ContentDrawScope. DrawScope wurde aktualisiert, um die Density-Oberfläche zu implementieren und LayoutDirection bereitzustellen. Die DrawScope-Unterklasse in ContentDrawScope wurde entfernt. Painter und PainterModifier wurden aktualisiert, damit sie keine RTL-Eigenschaft mehr selbst verwalten, da DrawScope diese bereits ohne manuelle Angabe bereitstellt (I1798e)
„Emphasis.emphasize()“ in „Emphasis.applyEmphasis()“ umbenannt (Iceebe)
Deaktivierte Schaltflächen entsprechen jetzt optisch der Material Design-Spezifikation (I47dcb, b/155076924)
Für „FilledTextField“ werden IME-Aktionen, visuelle Transformationen und Tastaturtypen unterstützt (I1f9cf, b/155075201)
Dem CircularProgressIndicator wird der Parameter „strokeWidth“ hinzugefügt, um die Strichstärke anzupassen. Wenn Sie die Strichstärke (Höhe) eines LinearProgressIndicator ändern möchten, können Sie Modifier.preferredHeight() oder einen anderen Größenmodifikator verwenden. (Icea16, b/154919081)
Fügt dem CircularProgressIndicator den Parameter „strokeWidth“ hinzu, um die Strichgröße anzupassen. Wenn Sie die Strichstärke (Höhe) eines LinearProgressIndicator ändern möchten, können Sie Modifier.preferredHeight() oder einen anderen Größenmodifikator verwenden. (Icea16, b/154919081)
Slot API für nachgestellte und vorangestellte Symbole im FilledTextField und Fehlerstatus hinzugefügt (Ic12e0)
Die Standardfarbe des Floating Action Buttons und des erweiterten Floating Action Buttons wurde in „MaterialTheme.colors.secondary“ geändert. (I3b9b9, b/154118816)
Alle nullablen Farbverwendungen in der API wurden durch nicht nullable ersetzt und Color.Unset wird anstelle von null verwendet (Iabaa7)
EdgeInsets wurde in InnerPadding umbenannt. Der Parameter „innerPadding“ von Material Buttons wurde in „padding“ umbenannt. (I66165)
Der Schieberegler ist jetzt zustandslos. Nutzer müssen den Status wie bei jedem anderen Steuerelement selbst übergeben und aktualisieren. (Ia00aa)
StaticDrawer wurde entfernt. Verwenden Sie stattdessen bei Bedarf ein Rechteck mit einer vom Material vorgegebenen Breite (I244a7).
Material Design-Implementierung für ausgefülltes Textfeld hinzugefügt (Ic75cd)
Dem Listenelement wurde ein Modifikatorparameter hinzugefügt und die Parameter wurden neu angeordnet, um den nachfolgenden Lambda-Body zu priorisieren (I66e21)
Fügen Sie der Typografie den Konstruktorparameter „defaultFontFamily“ hinzu, um die Standardschriftfamilie anzugeben, die für alle bereitgestellten Textstile verwendet wird, für die keine Familie festgelegt ist. (I89d07)
Materialdatentabellen wurden vorübergehend aus der API-Oberfläche entfernt. (Iaea61)
Umbenannte Parameter in der zusammensetzbaren Trennlinie (Ic4373)
children (Ia6d19)
Entfernt MaterialTheme.emphasisLevels. Verwenden Sie stattdessen „EmphasisAmbient.current“, um die Betonungsstufen abzurufen (Ib5e40).
Das Farbsystem wird gemäß der Material Design-Spezifikation aktualisiert. Sie können jetzt kleine, mittlere und große Formen für die meisten Komponenten bereitstellen (Ifb4d1).
MaterialTheme-APIs wie MaterialTheme.colors() und MaterialTheme.typography() wurden zu Eigenschaften statt zu Funktionen geändert. Entfernen Sie Klammern aus vorhandenen Aufrufen. Es wird keine Verhaltensänderung erwartet. (I3565a)
Die FloatingActionButton APIs wurden so umgestaltet, dass sie zusammensetzbare Lambdas anstelle von primitiven Funktionen akzeptieren. Informationen zur Nutzung finden Sie in den aktualisierten Beispielen. (I00622)
enabled
-Parameter zu Kästchen, Schaltern und Ein-/Aus-Schaltflächen hinzufügen (I41c16)„Ripple“ ist jetzt ein Modifikator. „Clickable“ wird noch nicht konvertiert. Die empfohlene Verwendung ist
Clickable( ... }, modifier = ripple())
(Ie5200, b/151331852, b/150060763).Oberfläche und Karte wurden von androidx.ui.material.surface nach androidx.ui.material verschoben (I88a6d, b/150863888).
Für „Button“, „FloatingActionButton“ und „Clickable“ gibt es jetzt eine separate
enabled
-Paramter. Einige der Parameter für die Schaltfläche wurden umbenannt oder neu angeordnet. (I54b5a)Umbenennung von Bild in ImageAsset, um den Unterschied zwischen den Bilddaten und der zukünftigen zusammensetzbaren Funktion für das Layout und die Zeichnungen besser zu unterscheiden _Body:Erweiterungsmethode für android.graphics.Bitmap, Bitmap.asImageAsset(), erstellt, um eine Instanz eines ImageAssets zu erstellen, die sich für die Kombination traditioneller Android-Anwendungsentwicklung mit dem Compose-Framework eignet (Id5bbd)
Die Snackbar API mit Stringparametern wurde entfernt. Stattdessen wird die Überladung verwendet, die zusammensetzbare Lambdas akzeptiert. Aktualisierte Samples mit Informationen zur Verwendung ansehen (I55f80)
Tab-APIs wurden so umgestellt, dass sie
text
- undicon
-Lambdas akzeptieren (Ia057e)Die Komponente „BottomNavigation“ wurde hinzugefügt. Informationen zur Verwendung finden Sie in der Dokumentation und in den Beispielen (I731a0)
Die Symbole „Icon“, „IconButton“ und „IconToggleButton“ wurden hinzugefügt und „AppBarIcon“ entfernt. Sie können bestehende Verwendungen von AppBarIcon direkt durch IconButton ersetzen, sodass sie jetzt das richtige Touch-Ziel haben. In den Beispielen finden Sie Informationen zur Verwendung. Unter „Symbole“ finden Sie die bereitgestellten Material Icons, die Sie direkt mit diesen Komponenten verwenden können. (I96849)
ButtonStyle wurde durch separate Funktionen ersetzt und die Textüberladung (String) wurde entfernt. Nutzungsinformationen finden Sie in den aktualisierten Beispielen. (If63ab, b/146478620, b/146482131)
Border
-Modifikator inDrawBorder
umbenennen (I8ffcc)LayoutCoordinates hat keine Positionseigenschaft mehr. Die Positionseigenschaft ist in Bezug auf LayoutModifier, Rotation oder Skalierung nicht sinnvoll. Stattdessen sollten Entwickler die Umwandlung von LayoutCoordinates in ein anderes mit „parentCoordinates“ und „childToLocal()“ verwenden.
Bei „LayoutCoordinates“ wird für die Größe die Property „IntPxSize“ anstelle von „PxSize“ verwendet. Layouts verwenden ganzzahlige Pixelgrößen für Layouts. Daher sollten alle Layoutgrößen Ganzzahlen und keine Gleitkommawerte verwenden. (I9367b)
Nicht abwärtskompatible Änderungen an der Ambients API. Weitere Informationen finden Sie im Log und in der
Ambient<T>
-Dokumentation (I4c7ee, b/143769776).Die Komponente „Gerüstmaterial“ wurde hinzugefügt. Gerüstimplementierungen (I7731b)
„DrawBorder“ durch „Border Modifier“ ersetzt (Id335a)
Fehlerkorrekturen
- FocusModifier wird zugunsten von Modifier.focus, Modifier.focusRequester und Modifier.focusObserver eingestellt. „FocusState“ und „FocusDetailedState“ werden zugunsten von „FocusState2“ eingestellt (I46919, b/160822875, b/160922136)
- VerticalScroller und HoriziontalScroller wurden eingestellt. Verwenden Sie ScrollableColumn und ScrollableRow für integrierte Funktionen mit Spalten-/Zeilenverhalten und -Parametern oder Modifier.verticalScroll und Modifier.horizontalScroll für Ihr eigenes Element. Ebenso wurde „ScrollerPosition“ zugunsten von „ScrollState“ eingestellt (I400ce, b/157225838, b/149460415, b/154105299)
- Die APIs „Modifier.draggable“ und „Modifier.scrollable“ wurden überarbeitet. DragDirection wurde zugunsten von „Orientation“ entfernt. Der für das Scrollen erforderliche Status wurde vereinfacht. ScrollableState wurde in ScrollableController umbenannt (Iab63c, b/149460415)
runOnIdleCompose
inrunOnIdle
umbenannt (I83607)- Für Properties mit Einzelwertsemantik wird jetzt ein Aufrufstil verwendet. Beispiel: Semantik {hidden = true } wird jetzt so geschrieben: Semantik {hidden()}. (Ic1afd, b/145951226, b/145955412).
- Mehrere Test-APIs wurden umbenannt, um die Intuitivität zu verbessern. Alle findenXYZ APIs wurden in onNodeXYZ umbenannt. Alle APIs vom Typ „doXYZ“ wurden in „performXYZ“ umbenannt. (I7f164)
- Die Transition API wurde geändert, sodass jetzt ein TransitionState zurückgegeben wird, anstatt den TransitionState an untergeordnete Elemente weiterzuleiten. Dadurch ist die API einheitlicher mit den animate()-APIs. (I24e38)
- Die Einheitsklasse „IntBounds“ wurde hinzugefügt. Sie stellt Ganzzahlgrenzen in Pixeln aus dem Layout dar. Die API von PopupPositionProvider wurde für die Verwendung aktualisiert. (I0d8d0, b/159596546)
- Für Test-Finder wurde ein neues optionales Flag „useUnmergedTree“ hinzugefügt. (I2ce48)
- Veraltete APIs für die Größenprüfung wurden entfernt. (Iba0a0)
- Die Shader-Inline-Klasse, mit der die NativeShader-Erwartungsklasse umschlossen wurde, wurde in "Shader" umbenannt. Die eingebundene Shader-Inline-Klasse hat der API-Oberfläche keine wertvollen Informationen hinzugefügt und war eine Inline-Klasse. Verwenden Sie die NativeShader-Klasse daher direkt. (I25e4d)
- Pop-ups, Dialogfelder und Menüs übernehmen jetzt das kontextbezogene MaterialTheme (Ia3665, b/156527485)
- Material-Drop-down-Menüs sind jetzt scrollbar. (Ide699)
- Der Layout-Richtungsparameter wurde aus dem Messblock der Layout()-Funktion entfernt. Die Layoutrichtung ist jedoch im Callback über das Objekt „Measure Scope“ (Ic7d9d) verfügbar.
- In den APIs der obersten Ebene wird jetzt „AnimationSpec“ anstelle von „AnimationBuilder“ verwendet, um das Konzept der statischen Animationsspezifikation zu verdeutlichen. Stattdessen werden die Parameter des Konstruktors direkt übernommen. – Verbesserte Nutzerfreundlichkeit von AnimationSpec durch die Öffnung von Konstruktoren anstelle der Verwendung von Buildern (Ica0b4)
- Der Schalter wird jetzt als deaktiviert angezeigt, wenn
enabled
auf „falsch“ gesetzt ist (If4624, b/155941869, b/159331694) - „Modifier.tag“ wurde in „Modifier.layoutId“ umbenannt, um Verwechslungen mit „Modifier.testTag“ zu vermeiden. (I995f0)
- Die von Placeable#get(AlignmentLine) zurückgegebenen Int-Positionen der Ausrichtungszeile sind jetzt nicht null. Wenn die abgefragte Ausrichtungslinie fehlt, wird „AlignmentLine.Unspecified“ zurückgegeben. (I896c5, b/158134875)
Die Radius-Klasse wurde in eine Inline-Klasse umgestellt. Die Methoden zum Erstellen von Zusatzfunktionen wurden entfernt und durch einen Funktionskonstruktor mit Standardparameter ersetzt, damit der Radius entlang der Y-Achse mit dem obligatorischen Radiusparameter der X-Achse übereinstimmt.
DrawScope.drawRoundRect wurde aktualisiert, sodass jetzt ein einzelner Radiusparameter anstelle von zwei separaten Floatwerten für den Radius entlang der X- und Y-Achse verwendet wird (I46d1b)
Um die Anzahl der Klassen zu reduzieren, die zur Darstellung von Positionierungsinformationen verwendet werden, sollten Sie stattdessen die Klasse „Offset“ verwenden. Dies bietet die Vorteile einer Inline-Klasse, um mit einem Long-Wert zwei Gleitkommawerte zu verpacken, die X- und Y-Achsenabweichungen als Gleitkommawerte darstellen. (I3ad98)
Die Verwendung der Px-Klasse in verschiedenen Zusammensetzungsklassen wurde im Rahmen der umfangreichen Refaktorierung ersetzt, um nur noch Dp- und primitive Typen für Pixelparameter zu verwenden. Px-Klasse vollständig gelöscht (I3ff33)
Die schaltbare Komponente wurde eingestellt. Verwenden Sie stattdessen Modifier.toggleable (I35220, b/157642842).
Die Verwendung der Px-Klasse in verschiedenen zusammengesetzten Klassen wurde im Rahmen der umfangreichen Refaktorisierung ersetzt, um nur noch Dp- und primitive Typen für Pixelparameter zu verwenden (I086f4)
Die Verwendung der Px-Klasse in verschiedenen Compose-Klassen wurde im Rahmen der umfangreichen Refactoring-Bemühungen durch Dp- und primitive Typen für Pixelparameter ersetzt (Id3434)
Die Verwendung der Px-Klasse in verschiedenen zusammengesetzten Klassen wurde im Rahmen der umfangreichen Refaktorisierung ersetzt, sodass nur noch Dp- und primitive Typen für Pixelparameter verwendet werden (I97a5a)
Behoben: onClick wurde für Drop-down-Menüpunkte nicht aufgerufen. (I3998b, b/157673259)
„MutuallyExclusiveSetItem“ wurde eingestellt. Verwenden Sie stattdessen „Modifier.selectable“. (I02b47, b/157642842)
TestTag ist jetzt eingestellt. Verwenden Sie stattdessen „Modifier.testTag“. (If5110, b/157173105)
Der Cursor von TextField blinkt (Id10a7).
Die Verwendung der Px-Klasse in verschiedenen Zusammensetzungsklassen wurde im Rahmen der umfangreichen Refaktorierung ersetzt, um nur noch Dp- und primitive Typen für Pixelparameter zu verwenden (I19d02)
VerticalScroller stellt jetzt „Column“ (Spalte) jetzt standardmäßig zur Verfügung. HorizontalScroller bietet jetzt standardmäßig die Option „Zeile“. (Ieca5d, b/157020670)
Die Verwendung der Px-Klasse in verschiedenen zusammengesetzten Klassen wurde im Rahmen der umfangreichen Refaktorierung ersetzt, um nur noch Dp- und primitive Typen für Pixelparameter zu verwenden (Iede0b)
Modifier.semantics wurde nicht mehr als veraltet eingestuft, um die Verwendung für allgemeine Komponenten zu ermöglichen. (I4cfdc)
Die API für DrawLayer-Modifikatoren wurde geändert: „outlineShape“ wurde in „shape“ umbenannt und hat den Standardwert „RectangleShape“. Außerdem ist der Wert jetzt nicht mehr optional. „clipToOutline“ wurde in „clip“ umbenannt. „clipToBounds“ wurde entfernt, da es mit „RectangleShape“ dasselbe wie „clip == true“ bedeutet (I7ef11, b/155075735)
Zusammenstellende APIs der höheren Ebene, die einen Canvas bereitstellen, wurden aktualisiert, um stattdessen CanvasScope bereitzustellen. So müssen Nutzer keine eigenen Paint-Objekte mehr verwalten. Nutzer, die weiterhin Zugriff auf ein Canvas benötigen, können die Erweiterungsmethode „drawCanvas“ verwenden. Diese bietet einen Rückruf, um Zeichenbefehle für das zugrunde liegende Canvas auszugeben. (I80afd)
Das composable-Element „AlignmentLineOffset“ wurde eingestellt. Verwenden Sie stattdessen den Modifikator „relativePaddingFrom()“. Das composable-Element „CenterAlignmentLine“ wurde entfernt. (I60107)
Die API für die abschließende Lambda-Funktion „WithConstraints“ wurde geändert. Anstelle von zwei Parametern hat es jetzt einen Empfängerbereich, der zusätzlich zu „constraints“ und „layoutDirection“ die Eigenschaften „minWidth“, „maxWidth“, „minHeight“ und „maxHeight“ in Dp bietet (I91b9a, b/149979702)
Der Layout-Modifikator „defaultMinSizeConstraints“ wurde hinzugefügt. Damit werden Größenbeschränkungen für das umgebrochene Layout nur dann festgelegt, wenn die entsprechenden eingehenden Einschränkungen nicht angegeben sind (0 für Mindesteinschränkungen und unendlich für Höchsteinschränkungen). (I311ea, b/150460257)
FocusManagerAmbient wurde entfernt. Verwenden Sie FocusModifier.requestFocus, um den Fokus zu erhalten. (Ic4826)
CanvasScope API erstellt, die ein Canvas-Objekt umschließt, um eine zustandslose, deklarative API-Oberfläche für die Zeichnung bereitzustellen Transformationen sind auf ihren eigenen Empfängerbereich beschränkt und die Informationen zur Größe beziehen sich ebenfalls auf die entsprechenden Einblendungsgrenzen. Der Nutzer muss kein eigenes Paint-Statusobjekt zum Konfigurieren von Zeichenvorgängen verwalten.
CanvasScopeSample hinzugefügt und die Demo-App um eine deklarative Grafikdemo (Ifd86d) erweitert
Anpassung der Cursorfarbe für das Textfeld (I6e33f)
TextFieldValue, der mit TextField verwendet wird, kann jetzt in folgenden Fällen nach Aktivitäten verwendet werden:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
(I5c3ce, b/155075724)LayoutModifier2 in LayoutModifier umbenannt (Id29f3)
Die verworfene LayoutModifier-Schnittstelle wurde entfernt. (I2a9d6)
Der Parameter „focusIdentifier“ von CoreTextField/TextField wurde durch „FocusNode“ ersetzt, um die Integration in das Fokus-Subsystem zu ermöglichen. (I7ea48)
Die Funktionen für intrinsische Messungen in „Layout“ und „LayoutModifier2“ haben jetzt einen Empfänger für „IntrinsicMeasureScope“, der die intrinsische Abfrage-API mit implizit weitergegebener Layoutrichtung bereitstellt. (ID9945)
Die neue Funktion „Modifier.zIndex()“ steuert die Zeichnungsreihenfolge der untergeordneten Elemente im selben übergeordneten Layout. Die Property „elevation“ von „DrawLayerModifier“ wurde in „shadowElevation“ umbenannt und steuert nicht mehr die Zeichnungsreihenfolge. Die Reihenfolge der Parameter in DrawShadow wurde geändert: Die Höhe ist jetzt die erste und die Form ist die zweite. Die Standardform lautet RectangleShape. (I20150, b/152417501)
RectangleShape wurde von androidx.ui.foundation.shape.* zu androidx.ui.graphics.* verschoben (Ia74d5, b/154507984)
Aktualisierung der TextField API: Die Callbacks „onFocus“ und „onBlur“ wurden in einen einzigen Callback „onFocusChange(Boolean)“ mit Parametern zusammengeführt (I66cd3)
Den Parametern „verticalGravity“ und „horizontalGravity“ wurden die Optionen „Zeile“ und „Spalte“ hinzugefügt. (I7dc5a)
„wrapContentWidth“ und „wrapContentHeight“ wurden aktualisiert, damit eine vertikale oder horizontale Ausrichtung erwartet wird. Der Gravitationsmodifikator wurde aktualisiert, um eine vertikale oder horizontale Ausrichtung zuzulassen. Zeilen, Spalten und Stapel wurden aktualisiert, um benutzerdefinierte fortlaufende Ausrichtungen zu unterstützen. (Ib0728)
Die PixelMap API wurde erstellt, um Pixelinformationen aus einem ImageAsset abzufragen. (I69ad6)
Entfernt ProvideContentColor, verwende stattdessen ContentColorAmbient direkt mit
Providers
(Iee942)Das Modul „ui-text-compose“ wurde in „ui-text“ umbenannt. „ui-text“ enthält jetzt die Composables „CoreText“ und „CoreTextField“ (Ib7d47)
Das Modul „ui-text“ wurde in „ui-text-core“ umbenannt (I57dec).
Die ui-framework/CoreText- und CoreTextField-Kompositen wurden in ui-text-compose verschoben. Sie können ui-text-compose in Ihr Projekt aufnehmen. (I32042)
Verbesserungen an der DrawModifier API:
- Der Empfängerbereich für draw() wurde zu ContentDrawScope geändert.
- Alle Parameter fürdraw() wurden entfernt.
- DrawScope hat dieselbe Oberfläche wie das bisherige CanvasScope
- ContentDrawScope verfügt über die Methode „drawContent()“ (Ibaced, b/152919067).
runOnIdleCompose
undrunOnUiThread
sind jetzt globale Funktionen anstelle von Methoden in ComposeTestRule. (Icbe8f)[Veränderlich]Operatoren für die Deklaration von Statuseigenschaften wurden in Erweiterungen verschoben, um die Optimierung von Property Delegate-Funktionen in Kotlin 1.4 zu unterstützen. Aufrufer müssen Importe hinzufügen, um
by state { ... }
oderby mutableStateOf(...)
weiterhin verwenden zu können. (I5312c)„positionInParent“ und „boundsInParent“ für „LayoutCoordinates“ hinzugefügt (Icacdd, b/152735784)
„ColoredRect“ wurde eingestellt. Verwenden Sie stattdessen Box(Modifier.preferredSize(width, height).drawBackground(color)). (I499fa, b/152753731)
„LayoutResult“ in „MeasureResult“ umbenannt. (Id8c68)
LayoutModifier2 wurde hinzugefügt, eine neue API zum Definieren von Layoutmodifikatoren. LayoutModifier wurde eingestellt (If32ac)
Der Modifikator-Plus-Operator wurde durch Funktionen der werkseitigen Erweiterung ersetzt (I225e4)
„Draggable“ wurde in „Modifier“ verschoben (Id9b16, b/151959544)
Das composable-Element „ParentData“ wird nicht mehr unterstützt. Sie sollten entweder einen Modifikator erstellen, der die ParentDataModifier-Schnittstelle implementiert, oder den LayoutTag-Modifikator verwenden, wenn Sie einfach Layout-Kinder taggen müssen, damit sie im Messblock erkannt werden. (I51368, b/150953183)
Veraltete zusammensetzbare Funktion aus dem Center. Er sollte entweder durch den Modifizierer „LayoutSize.Fill“ + „LayoutAlign.Center“ oder durch eines der Box- oder Stack-Kompositionen mit geeigneten Modifizierern ersetzt werden (Idf5e0).
Die VectorPainter API wurde hinzugefügt, um die vorhandene Subkomposition API für Vektorgrafiken zu ersetzen. Das Ergebnis der Unterkomposition ist ein VectorPainter-Objekt anstelle eines DrawModifier-Objekts. Die bisherigen DrawVector-Kompositionen wurden zugunsten von VectorPainter eingestellt.
Umbenennung der Image(Painter) API in PaintBox(Painter) Erstellung einer zusammensetzbaren Vektor-Datei mit Vektoren, die sich wie die zusammensetzbare Funktion von Bild verhält, außer mit einem VectorAsset anstelle eines ImageAsset (I9af9a, b/149030271)
„LayoutFlexible“ in „LayoutWeight“ umbenannt. Zum Ausfüllen muss enger Parameter umbenannt werden. (If4738)
"RepaintBoundary" wurde zugunsten von DrawLayerModifier (I00aa4) entfernt.
DrawVector wurde von einer regulären kombinierbaren Funktion in einen Modifikator umgewandelt, der drawVector() zurückgibt, um den Vektor als Hintergrund für ein Layout zu zeichnen. (I7b8e0)
Die zusammensetzbare Funktion „Opacity“ wurde durch den Modifikator „drawOpacity“ ersetzt. (I5fb62)
Ersetzen Sie die zusammensetzbare Funktion „Clip“ durch den Modifikator „drawClip()“. „DrawClipToBounds“ ist ein praktischer Modifikator, wenn Sie nur die Ebenengrenzen mit einem Rechteck zuschneiden müssen. (If28eb)
Die composable Funktion „DrawShadow“ wurde durch den Modifikator „drawShadow()“ ersetzt. Schatten werden jetzt als Teil von LayerModifier gezeichnet. (I0317a)
Wir haben LayerModifier hinzugefügt, einen Modifikator, mit dem ein RenderNode für ein Layout hinzugefügt werden kann. Sie können damit Zuschneiden, Deckkraft, Drehung, Skalierung und Schatten festlegen. Damit wird „RepaintBoundary“ ersetzt. (I7100d, b/150774014)
androidx.compose.ViewComposer wurde in androidx.ui.node.UiComposer verschoben und androidx.compose.Emittable wurde entfernt. Es war mit ComponentNode redundant. androidx.compose.ViewAdapters wurde entfernt. Dieser Anwendungsfall wird nicht mehr unterstützt. Compose.composeInto wurde eingestellt. Verwende stattdessen
setContent
odersetViewContent
. Compose.disposeComposition wurde eingestellt. Verwenden Sie stattdessen die Methodedispose
auf dem vonsetContent
zurückgegebenenComposition
. androidx.compose.Compose.subcomposeInto wurde in androidx.ui.core.subcomposeInto verschoben ComponentNode#emitInsertAt wurde in ComponentNode#insertAt umbenannt ComponentNode#emitRemoveAt wurde in ComponentNode#removeAt umbenannt ComponentNode#emitMode wurde in ComponentNode#move umbenannt (Idef00)Es wurde ein Bild erstellt, das zusammensetzbar ist, um neben der Darstellung eines bestimmten Bild-Assets auf dem Bildschirm auch Größe und Layout zu verarbeiten. Diese Komponente unterstützt auch das Zeichnen beliebiger Painter-Instanzen unter Berücksichtigung ihrer ursprünglichen Größe sowie einer bestimmten festen Größe oder Mindestgröße (Ibcc8f).
Die Funktion „Wrap“ (Umbruch) wurde eingestellt. Er kann entweder durch den LayoutAlign-Modifikator oder durch das Stack-Kompositelement (Ib237f) ersetzt werden.
„WithConstraints“ hat den Parameter „LayoutDirection“ erhalten (I6d6f7)
Die Layoutrichtung wird jetzt vom übergeordneten Layoutknoten an die untergeordneten Knoten weitergegeben. Modifikator für Layoutrichtung wurde hinzugefügt. (I3d955)
Stapelkomponente unterstützt die Richtungsvorgabe von rechts nach links (Ic9e00)
Das composable „DrawShape“ wurde entfernt. Verwenden Sie stattdessen den Modifikator „DrawBackground“. (I7ceb2)
Unterstützung der Ausrichtung von rechts nach links im LayoutPadding-Modifikator (I9e8da)
AdapterList wurde hinzugefügt, eine scrollbare Listenkomponente, die nur die sichtbaren Elemente zusammenstellt und anordnet. Zu den derzeit bekannten Problemen gehört, dass die Funktion nur für vertikale Channels verfügbar ist und nicht alle Änderungen an untergeordneten Channels berücksichtigt. (Ib351b)
Das Flag
ComposeFlags.COMPOSER_PARAM
wurde intrue
geändert. Dadurch ändert sich die Codegenerierungsstrategie für das Compose-Plug-in. Im Allgemeinen führt dies dazu, dass @Composable-Funktionen mit einem zusätzlichen synthetischen Parameter generiert werden, der an nachfolgende @Composable-Aufrufe übergeben wird, damit die Laufzeit die Ausführung richtig verwalten kann. Dies ist eine erhebliche Änderung, die die Binärkompatibilität jedoch bei allen zulässigen Verwendungen von compose beibehalten sollte. (I7971c)Canvas-Komponente hinzugefügt. Dieses Composeable nimmt eine gewisse Größe ein (vom Nutzer angegeben) und ermöglicht das Zeichnen mit CanvasScope (I0d622).
Density und DensityScope wurden in einer Benutzeroberfläche zusammengeführt. Anstelle von ambientDensity() können Sie jetzt DensityAmbient.current verwenden. Statt „withDensity(density)“ einfach „with(density)“ verwenden (I11cb1)
Bei „LayoutCoordinates“ wurde geändert, dass „providedAlignmentLines“ ein Set anstelle einer Map ist und dass „LayoutCoordinates“ den Operator „get()“ zum Abrufen eines Werts implementiert. So können Modifikatoren einen oder mehrere Werte des Sets leichter ändern, ohne für jeden Modifikator eine neue Sammlung erstellen zu müssen. (I0245a)
Scroller zeigen jetzt das native Android-Fling-Bewegungsverhalten. (I922af, b/147493715)
Verbesserungen an der API-Oberfläche von Einschränkungen (I0fd15)