Material zusammenstellen
androidx.compose.material
androidx.compose.material.icons
(API-Referenzdokumente für alle Compose-Pakete ansehen)
Letzte Aktualisierung | Stabile Version | Release Candidate | Beta-Ausgabe | Alphaversion |
---|---|---|---|---|
13. November 2024 | 1.7.5 | - | - | 1.8.0-alpha06 |
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 | Sie können Animationen in ihren Jetpack Compose-Anwendungen erstellen, um die Nutzerfreundlichkeit zu verbessern. |
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 Compose-Benutzeroberfläche, die für die Interaktion mit dem Gerät erforderlich sind, einschließlich 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:
Groovy
dependencies { implementation "androidx.compose.material:material:1.7.5" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.7.5") } 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 geben, indem Sie auf die Schaltfläche mit dem Stern klicken.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Version 1.8
Version 1.8.0-alpha06
13. November 2024
androidx.compose.material:material-*:1.8.0-alpha06
wird veröffentlicht. Version 1.8.0-alpha06 enthält diese Commits.
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
- Unterstützung für Welleneffekte bei maximierten Komponenten auf Android S und höher hinzugefügt, z. B. bei einer Karte, die sich per Klick 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
wird 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
wird 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
- An Android-Artefakten gibt es keine Änderungen.
-desktop
Artefakte wurden entfernt und-jvmStubs
und-linuxx64Stubs
Artefakte hinzugefügt. Keines dieser Ziele ist zur Verwendung vorgesehen. Sie dienen als Platzhalter für die Arbeit mit Jetbrains Compose.
Version 1.7.0
4. September 2024
androidx.compose.material:material-*:1.7.0
wird 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 die standardmäßige Bottomsheet wurden zur stabilen API.
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
wird 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 Material-Links 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 Wellenbewegung deaktivieren möchten, geben Sie anstelle vonRippleConfiguration
mitisEnabled = false
null
bisLocalRippleConfiguration
an. (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
- Textlinks haben jetzt neben dem normalen Stil auch einen Stil für den gedrückten Zustand, den Hover-Zustand und den Fokus. (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
wird veröffentlicht. Version 1.7.0-alpha06 enthält diese Commits.
Mitteilung
androidx.compose.material
erfordert nicht mehr, dass für jedes Artefakt in dieser Maven-Gruppe dieselbe Version verwendet wird. Nutzer können Versionen der Compose-Grundlagenbibliotheken (Ie5fba) kombinieren.
API-Änderungen
- Weitere Standardwerte für
ModalDrawer
undBottomDrawer
in dasDrawerDefaults
-Objekt verschoben (Ib5b2e)
Version 1.7.0-alpha05
20. März 2024
androidx.compose.material:material-*:1.7.0-alpha05
wird 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 die Unterstützung von unteren Infofeldern als Ziele bei Verwendung von Navigation Compose ermöglicht. 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
stellt den Fortschritt jetzt als Funktion bereit, sodass der Fortschritt zwischen bestimmten Zielen abgefragt werden kann. 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. Der ParametersnackbarHost
vonBackdropScaffold
ist nicht mehr der letzte Parameter, um Verwechslungen mit abschließenden 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 Tween-Spezifikation gemäß den Richtlinien. (I3c1a8, b/278692145, b/261409034)
- Modale Blätter am unteren Rand wurden aus dem experimentellen Status in den stabilen Status überführt. 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
wird veröffentlicht. Version 1.7.0-alpha01 enthält diese Commits.
Verhaltensänderungen
- Materialkomponenten wurden auf die neuen Ripple APIs umgestellt und
RippleTheme
wird nicht mehr abgefragt.
API-Änderungen
rememberRipple
undRippleTheme
wurden in material-ripple eingestellt. Den Material- und anderen Designsystembibliotheken wurden neue Ripple- undRippleConfiguration
APIs hinzugefügt.Materialkomponenten, die zuvor eine
MutableInteractionSource
akzeptierten und standardmäßig{ MutableInteractionSource() }
speicherten, akzeptieren jetzt eine nullableMutableInteractionSource
und standardmäßig „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.
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
wird 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
wird 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
wird 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
wird 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. Um die vorherige Funktionalität zu erhalten, müssen SieBottomSheetScaffold
in einen Drawer-Composeable-Block einschließen. Ein Beispiel findest du inBottomSheetScaffoldWithDrawerSample
. (I1dcc8)
API-Änderungen
- Einführung eines temporären Flags, mit dem festgelegt werden kann, ob die untergeordneten Elemente von Scaffold während der Messung oder während des Platzierens gemessen 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. Wenn Sie keine spezielle Behandlung für das Spiegeln 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 Berechnung von
DropdownMenu
wurde korrigiert, sodass die X-Achsenverschiebungen nur noch von der lokalen Layoutrichtung abhängen. Die Y-Achsenverschiebungen werden nicht mehr umgekehrt, wenn sich das Menü unten auf dem Bildschirm befindet.offset
(Iccc74, b/294103942) - Das Layout von
BottomSheetScaffold
wurde optimiert und ein potenzielles Problem mitBottomSheetScaffold
in einerLookaheadLayout
wurde 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 Überladung, 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. Diese Version enthält keine Änderungen.
Version 1.5.2
27. September 2023
androidx.compose.material:material-*:1.5.2
wird 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 übergeben.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)
confirmStateChange
vonModalBottomSheetState
,ModalBottomSheetState.Saver
undrememberModalBottomSheetState
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, 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.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
wird 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 anzugeben, dass kein Versatz 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. Durch diese Korrektur 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. Daher werden fürBottomDrawerState
jetzt nur APIs auf Klassenebene definiert. Methoden und Eigenschaften werden nicht 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)
- Animierte Tabelleninhalte (z.B.
Modifier.animateContentSize
in Tabelleninhalten) inBottomSheetScaffold
wurden optimiert und funktionieren 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
wird 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 den untergeordneten Chips im Beispiel für die Chipgruppe mit einer Zeile gemäß den Spezifikationen. (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 APIs für wischbare Inhalte in
ModalDrawer
ü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) - Den Parametern
BasicText
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-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 APIs für wischbare Inhalte in
BottomSheetScaffold
übernommen. Der ParameterconfirmStateChange
vonBottomSheetState
wurde inconfirmValueChange
umbenannt.progress
wird jetzt als Gleitkommawert übergeben.animateTo
undsnapTo
sind intern. Verwenden Sie stattdessenexpand()
undcollapse()
.direction
undoverflow
wurden entfernt.offset
wurde durchrequireOffset()
ersetzt. (I323b4)
Fehlerkorrekturen
- Semantische Rollen wurden von anklickbaren und auswählbaren Oberflächen entfernt. Komponenten, in denen sie verwendet wurden, um Rollen mit „modifier.semantics“ festzulegen, wurden aktualisiert (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
wird 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 deronRelease
-Lambda inModifier.pullRefresh
geändert, um für die verbrauchte Geschwindigkeit ein Float 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
wird veröffentlicht. Version 1.4.0-alpha05 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem wurde behoben, bei dem der Status von
ModalBottomSheetLayout's HalfExpanded
falsch berechnet wurde und das Tabellenblatt so erschien, als würde es schweben. (I8c615, b/265610459) - Ein Fehler in
ModalBottomSheetLayout
wurde behoben, bei dem das Tabellenblatt unter bestimmten Umständen abstürzte, wenn es von ausgeblendet zu sichtbar wechselte. (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) - 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)
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 von Fortschrittsanzeigen ist jetzt korrekt auf den erwarteten Bereich begrenzt. (I8a7eb, b/262262727)
- Wenn
ModalBottomSheetState
noch keine Anker erhalten hat, wirdcurrentValue
ohne Animation aktualisiert, wennsnapTo
oderanimateTo
aufgerufen wird, anstatt eine Ausnahme zu werfen. (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. Wenn der Tabelleninhalt leer ist, hat er 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
wird 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
wird 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 dann von dieser Änderung betroffen, wenn Sie ein benutzerdefiniertes Dialogfeld oder Pop-up erstellen, dessen Höhe über 8 dp liegt. 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 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 teilweise Verbrauch (nach unten ODER Position) wurde in
PointerInputChange
eingestellt. Mitconsume()
können Sie die Änderung vollständig übernehmen. MitisConsumed
kannst du feststellen, ob jemand anderes die Änderung bereits verwendet hat. PointerInputChange::copy()
erstellt jetzt immer eine flache Kopie. Das bedeutet, dass Kopien vonPointerInputChange
verbraucht werden, sobald eine der Kopien verbraucht 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 Unterpaket „.grid“ 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 Größen für Achsenkreuze 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 gibt jetzt eine Möglichkeit, horizontale und vertikale Ränder in Textfeldern anzupassen. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/168003617)
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 Anmerkungen vom Compose-Compiler-Plug-in abgeleitet werden. Die direkte Verwendung dieser Anmerkungen sollte daher selten vorkommen. 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 Anwendern müssen die zusammensetzbaren Funktionen, die
ComposeNode
oderReusableComposeNode
aufrufen, eineCompoableTarget
-Anmerkung für die Funktion und alle zusammensetzbaren Lambda-Parametertypen hinzufügen. Es wird jedoch empfohlen, eine Anmerkung zu erstellen, die mitComposableTargetMarker
gekennzeichnet ist, und dann die gekennzeichnete Anmerkung anstelle vonComposableTarget
direkt 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
wird veröffentlicht. Version 1.2.0-alpha03 enthält diese Commits.
Fehlerkorrekturen
- Chipgruppenbeispiel hinzugefügt (I97080, b/192585545)
Version 1.2.0-alpha02
26. Januar 2022
androidx.compose.material:material-*:1.2.0-alpha02
wird 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 Memoisierungsüberprüfungen (Gleichungen) 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 dieisSkipHalfExpanded
-Eigenschaft 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 Touch-Zielen
- Im Vergleich zu Compose 1.0 wird der Layoutbereich von Materialkomponenten erweitert, um die Richtlinien für Bedienungshilfen von Material Design für die Größe von Touch-Zielelementen einzuhalten. 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.
- 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
Im Vergleich zu Compose 1.0 wird der Layoutbereich von Materialkomponenten erweitert, um die Größe des Berührungszielbereichs gemäß den Richtlinien für Bedienungshilfen in Material Design einzuhalten. 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
wird 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
- Für Ripples werden jetzt Hover- und Fokusstatus unterstützt. Wenn Sie den Mauszeiger auf eine Komponente wie eine Schaltfläche bewegen oder sie fokussieren, wird jetzt das richtige 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
- Es wurde eine überlastungsfreie Variante für das Layout hinzugefügt, die effizienter ist (Ib0d9a)
- Implementierung von
ExposedDropdownMenu
basierend aufExposedDropdownMenuBox
mitTextField
undDropdownMenu
(If60b2) dismissOnOutsideClick
wurde zuPopupProperties
hinzugefügt und ersetztdismissOnClickOutside
, das eingestellt wurde. Die neue Property empfängt die Klickposition und die Ankergrenzen, sodass Sie genauer festlegen können, ob onDismissRequest aufgerufen werden soll oder nicht. Das kann beispielsweise nützlich sein, um das Schließen des Ankers bei Berührungen des Ankers zu verhindern.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
performGesture
undGestureScope
wurden eingestellt und durchperformTouchInput
undTouchInjectionScope
ersetzt. (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. Das ist nützlich für Pixel-Art, die beim Skalieren für pixelbasierte Kunst gepixelt werden soll. BitmapPainter und Bild-Composable wurden aktualisiert, sodass auch ein optionaler FilterQuality-Parameter verwendet wird (Ie4fb0, b/180311607) - „BadgeBox“ in „BadgedBox“ umbenannt und Parameter geändert, um Badge-Kompositionen zuzulassen. 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
wird veröffentlicht. Version 1.0.5 enthält diese Commits.
Fehlerkorrekturen
- Ein Absturz beim Tracking von „derivedStateOf“-Instanzen wurde behoben. (aosp/1792247)
Version 1.0.4
13. Oktober 2021
androidx.compose.material:material-*:1.0.4
wird 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.
Abhängigkeitsupdates
- Aktualisiert, um von Kotlin
1.5.30
abhängig zu sein
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 1.0.2
-Version 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
wird veröffentlicht. Version 1.0.1 enthält diese Commits.
Abhängigkeitsupdates
- Aktualisiert auf 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 Sie Android Studio Bumblebee Canary 4 oder AGP
7.1.0-alpha04
/7.1.0-alpha05
verwenden, kann der folgende Absturz auftreten:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
Erhöhen Sie in der
build.gradle
-Datei vorübergehend die minSdkVersion auf mindestens 24, 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
wird veröffentlicht. Version 1.0.0-beta09 enthält diese Commits.
API-Änderungen
- Dem OutlinedTextField wurde der Parameter „Shape“ hinzugefügt, um die Form des Rahmens anzupassen (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)
Profilregeln hinzugefügt
In dieser Version werden den folgenden Compose-Modulen (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. Diese Regeln können auf eine von zwei Arten auf Methoden oder Klassen ausgerichtet werden.Eine Methodenregel hat das folgende Muster:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Eine Klassenregel hat das folgende Muster:
<CLASS_DESCRIPTOR>
Hier ist
<FLAGS>
eines oder mehrere 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 Klasse, die in dieser Datei vorhanden ist, wird beim Start verwendet und sollte im Heap vorab zugewiesen werden, um die 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 Enums wurde in Inline-Klassen umgestellt, um Probleme mit umfassenden Wenn-Beschreibungen 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 datenbankgestützte Ripple-Implementierung 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 jetzt die Reihenfolge der Modifikatoren darüber entscheidet, welche Koordinaten erfasst 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üllt das übergeordnete Element nicht mehr den gesamten verfügbaren Hauptachsenbereich 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
DrawerState
wird nicht mehr durch den experimentellen Status „SwipeableState“ erweitert.- 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: Bilder für Komponentenkacheln, Themenauswahl (wird in den nächsten Ä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. Wenn SiewithFrameNanos
oderRecomposer.runRecomposeAndApplyChanges
ohneMonotonicFrameClock
aufrufen, 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
LocalSoftwareKeyboardController
-Komposition API hinzugefügt, um die vorherigeSoftwareKeyboardController
-Schnittstelle für 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
hängt nicht mehr von AppCompat oder Fragment ab. 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)
- Entfernte dp-Behauptungen (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 anklickbaren Zeilen wurden aktualisiert, um diese Funktion zu verwenden. (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() }
. - Anstatt
Interaction.Pressed in interactionState
sollten Sie stattdessen die Erweiterungsfunktionen von 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)
- AccessibilityManager-Schnittstelle und LocalAccessibilityManager in CompositionLocals hinzufügen (I53520)
- Die veralteten LayoutCoordinates-Methoden wurden entfernt. Verwenden Sie für „positionInParent“ und „boundsInParent“ eine Funktion anstelle der Eigenschaft. (I580ed, b/169874631, b/175142755)
- Der Schieberegler unterstützt jetzt den Status „Aktiviert“/„Deaktiviert“ (I6d56b, b/179793072)
- Neue TextInputSession für Eingabesitzungen von Textkomponenten auf niedriger Ebene wie CoreTextField erstellt. (I8817f, b/177662148)
- AnimationEndReason.Interrupted wurde entfernt. CancellationException wird geworfen, wenn die Animation unterbrochen wird. (I2cbbc, b/179695417)
@ExperimentalRippleApi
wurde entfernt undRippleAlpha
in eine Klasse mit Eigenschaften anstelle einer Schnittstelle geändert. (I6df7c)- Die Schnittstelle „TextFieldColors“ wurde hinzugefügt, um verschiedene Farben darzustellen, die in TextField und OutlinedTextField in verschiedenen Status 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 „smoothScrollBy“ 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. (I4eaae)
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)
„Anbieter“ 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 und hat keine Typparameter mehr.
- 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 Funktion „clearRoots“ der
@TestOnly
auf oberster Ebene 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 zu folgen, dass erforderliche Parameter vor optionalen Parametern stehen müssen.
- 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 Parametertyp nicht geändert hat, führt dies nicht zu einem Fehler im Code. Achten Sie darauf, dass Sie entweder benannte Parameter verwenden oder die Reihenfolge manuell aktualisieren. Andernfalls funktioniert Ihr 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 als „nullable“ gekennzeichnet.- 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)
„Indication#createIndication()“ in „Indication#rememberUpdatedIndication(InteractionState)“ geändert und der Parameter „InteractionState“ aus „IndicationInstance#drawIndication()“ entfernt. „IndicationInstance“ sollte nur für das Zeichnen visueller Effekte verantwortlich sein und keine Animationen starten oder den Status als Reaktion auf Änderungen des Interaktionsstatus schreiben. Diese Animationen und Statusänderungen sollten stattdessen in
rememberUpdatedIndication()
erfolgen. 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 in das Modul androidx.activity:activity-compose zu androidx.activity.compose.setContent 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)
- „Indication#createInstance“ wurde in „@Composable“ geändert und „LocalIndication“ enthält jetzt eine „Indication“, keine „() -> Indication“. (I5eeea, b/157150564)
- AlertDialog und DropdownMenu 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“. „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)
- Es wurden Aktionen zum Maximieren und Minimieren 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)
- Die Auswahl wurde in die Foundation 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 zuvor ein benutzerdefiniertes Speicherobjekt übergeben haben, müssen Sie jetzt eine neue Überladung von „rememberSaveable“ 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 zu@DisallowComposableCalls
geworden@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
von „Tab“ und der Parameterlabel
von „BottomNavigationItem“ wurden in „nullable“ geändert, um das Verhalten der Komponente besser zu veranschaulichen, wenn diese Parameter angegeben sind oder nicht, 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 zum Ändern der RGB-Werte von Quellinhalten. Die ColorFilter API wurde zu einer Schnittstelle umgestaltet und der Implementierung von PathEffect angepasst. (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 entsprechend seiner Größe skaliert, wobei die angewendeten Größenmodifikatoren berücksichtigt werden.
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
wird 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).
- Die Material-Benutzeroberflächen für zustandsorientierte Parameter werden so geändert, dass sie @Composable-Funktionen enthalten, 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“ und „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 Transition wurde eingestellt (I0ac57)
- Der Anfangsstatus in „updateTransition“ wird jetzt unterstützt (Ifd51d)
- „WithConstraints“ wurde als „BoxWithConstraints“ überarbeitet und in „foundation.layout“ verschoben. (I9420b, b/173387208)
scrollBy ohne Pausieren wird eingestellt, scrollTo ohne Pausieren wird entfernt
Wir empfehlen jetzt, das Scrollen mithilfe von Pausierungsfunktionen zu steuern und zu warten, bis das Scrollen beendet ist. 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)
Einführung von
ComposeContentTestRule
, dasComposeTestRule
erweitert undsetContent
definiert, das ausComposeTestRule
entfernt wurde. Es wurde eine FabrikmethodecreateEmptyComposeRule()
hinzugefügt, die eineComposeTestRule
zurückgibt und keine Aktivität für Sie 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 Angabe einer neuen Anzeige über AmbientIndication angepasst werden. Dies war nie als Möglichkeit zur Anpassung dieser Komponenten gedacht. Dadurch sind diese Komponenten jetzt mit anderen Materialkomponenten einheitlich. 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)Behebung eines Fehlers, durch den die Breite des Material-Textfelds 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 diese Option 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 weiterhin entscheiden, dass sie das Lazy-Verhalten nicht benötigen, und die Modifikatoren direkt verwenden, z. B. so: 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 Methoden für fensterbasierte Koordinaten 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 mit @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
- Velocity wurde um Komponententeile und mathematische Operationen erweitert. (Ib0447)
@ExperimentalTesting
wurde in@ExperimentalTestApi
umbenannt, um mit ähnlichen experimentellen API-Hinweisen übereinzustimmen (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 „equals“-Implementierungen wurde aktualisiert. Stattdessen wird jetzt „is MyClass“ verwendet. (I4f734)
Fehlerkorrekturen
- Unterstützung für deaktivierte und schreibgeschützte Textfelder hinzugefügt (I35279, b/171040474, b/166478534)
animate()
wurde durchanimateAsState()
ersetzt, dasState<T>
stattT
zurückgibt. Dies ermöglicht eine bessere Leistung, da der Gültigkeitsbereich der Daten auf den Bereich eingegrenzt werden kann, in dem der Statuswert gelesen wird. (Ib179e)- Fügen Sie die Semantics-Rollen-API und die Rolle als Parameter zum anklickbaren, auswählbaren und umschaltbaren 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“. Außerdem werden unnötige
default
-Präfixe aus den Eigenschaften dieser neuen Objekte entfernt. (Ibb915, b/159982740) Compose unterstützt Property-Getter, die kombinierbare Aufrufe ermöglichen. Die Unterstützung dafür wird nicht eingestellt, aber die Syntax für die Deklaration eines Property-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.
Die APIs für Gradientenfunktionskonstruktoren wurden zugunsten von Fabrikmethoden für ein Gradientenobjekt verworfen. (I511fc, b/173066799)
Modifier.focusObserver wurde eingestellt. Verwenden Sie stattdessen Modifier.onFocusChanged oder Modifier.onFocusEvent (I30f17, b/168511863, b/168511484)
Die Funktionen „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)
Destrukturierungsdeklarationen 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)
Unterstützung für den InteractionState 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
werden losgelassen. 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)
- Eigenschaften für die grundlegende Semantik in die Benutzeroberfläche verschoben (I6f05c)
fun RippleIndication()
wurde eingestellt und durchrememberRippleIndication()
ersetzt, um für Konsistenz mit anderen APIs zu sorgen. (Id8e2c)- Den Parameter „singleLine“ wurde den Elementen „BasicTextField“, „TextField“ und „OutlinedTextField“ hinzugefügt. Legen Sie diesen Parameter auf „true“ fest, um das Textfeld in eine einzige horizontal scrollbare Zeile zu verwandeln. (I57004, b/168187755)
Fehlerkorrekturen
- Semantische Aktion „Schließen“ hinzufügen (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)
- Modifier.drawLayer in Modifier.graphicsLayer umbenannt. Die zugehörigen Klassen wurden gemäß API-Feedback ebenfalls in GraphicsLayer umbenannt. (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. Stattdessen werden jetzt Lambda-Parameter anstelle von „State“ verwendet. (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 wird die Benennung, der Rückgabetyp, der Standardwert und die Reihenfolge des Parameters auf Übereinstimmung mit den Compose-Richtlinien geprüft. (If493b)
- Aktualisierte TextFieldValue API
- TextFieldValue.composition wurde 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, um die Logik in dieplaceable.placeWithLayer()
-Methode von LayoutModifier zu migrieren (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) - Es wurde eine Lint-Prüfung hinzugefügt, um zu prüfen, ob Modifier-Fabriken intern
androidx.compose.ui.composed {}
verwenden, anstatt als@Composable
gekennzeichnet zu sein. (I3c4bc) - Das semantische 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
werden losgelassen. 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 Foundation-Elemente „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. Bisher wurde bei Versuchen, die Färbung mit „Color.Unspecified“ zu ignorieren, eine transparente Farbe verwendet, wodurch gar nichts gerendert wurde. (I049e2, b/171624632)
- „relativePaddingFrom“ wurde in „paddingFrom“ umbenannt. Der Modifikator „paddingFromBaseline“ wurde hinzugefügt, um die Abstände von den Layoutgrenzen zu den Textgrundlinien einfacher angeben 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 in 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).
- Fügen Sie die SwitchColors-Benutzeroberfläche hinzu, um Farben darzustellen, die von einem Schalter in verschiedenen Status verwendet werden. Weitere Informationen zum Anpassen dieser Farben finden Sie unter SwitchConstants.defaultColors. (I93805)
- Fügen Sie die Oberflächen „ButtonElevation“ und „ButtonColors“ hinzu, um die Höhen und Farben darzustellen, die von Schaltflächen in verschiedenen Status 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 für die verschiedenen Status. (I74130)
- Die Benutzeroberfläche „CheckboxColors“ wurde hinzugefügt, um die Farben darzustellen, die von einem Kästchen in verschiedenen Status 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)
- CoreTextField (I72e6d) hat jetzt eine Option für eine Tastatur mit einer Zeile.
- 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
- DrawContext zum Umschließen von Abhängigkeiten für DrawScope erstellt
- 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. Wie bei allen anderen Umgebungseigenschaften können Sie mit
.current
auf den aktuellen Wert zugreifen. 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 Grenzwertwerten für Inline-Klassen wurde „Color.Unset“ in „Color.Unspecified“ umbenannt, um für Einheitlichkeit mit anderen Inline-Klassen zu sorgen (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“ 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. Die 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)
- ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation in defaultElevation umbenannt. Es wird jetzt ein Dp-Wert anstelle eines AnimatedValue zurückgegeben. (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 „elliptisch“ wird jetzt auch „oval“ verwendet.
- 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 zum Abfragen von „topRight“, „bottomRight“ und „bottomCenter“ 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 Konstruktor für RoundRect wurde aktualisiert, sodass Radiuseigenschaften anstelle einzelner Parameter für X‑/Y‑Radiuswerte verwendet werden.
- 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
- Die Parameter „dx“ und „dy“ in der Einblendmethode wurden in „horizontal“ und „vertical“ umbenannt.
- Ü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) - Dem BottomNavigationItem und Tab wird der Parameter „InteractionState“ hinzugefügt, mit dem dieser Status angehoben und die Darstellung der Komponente in verschiedenen Status 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 Farbe, die über den Parameter „backgroundColor“ angegeben wird, 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
ButtonConstants.defaultAnimatedElevation()
undFloatingActionButtonConstants.defaultAnimatedElevation()
, um die Höhe zwischen den Status anzupassen, anstatt in allen Fällen einen einheitlichen 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)
- Entfernen Sie die semantischen Aktionen „Vor-“ und „Zurückscrollen“. 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 eingestellt 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
- Die experimentelle Komponente „BackdropScaffold“ 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 mit der 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. Sie können über die Funktion
SnackbarHostState.showSnackbar
darauf zugreifen. 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-Überladung wurde hinzugefügt, um eine gemeinsame Schnittstelle zwischen snackbarHostState und Snackbars 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 stringbasierter 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)
- In AlertDialog wird jetzt FlowRow für Schaltflächen verwendet (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 ermitteln möchten. Scaffold wurde die Parameter „contentColor“ und „Modifier“ 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)
- Trennt TabRow in TabRow und ScrollableTabRow 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. In den Beispielen und der Dokumentation finden Sie ausführliche Informationen zur Verwendung der aktualisierten API und zu den Standardeinstellungen. (I54d45, b/161809544) - Der Parameter „thresholds“ in „Modifier.swipeable“ wurde angepasst. Er nimmt jetzt ein Paar von Zuständen (vom Typ „T“) an und gibt den Grenzwert 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“ und „darkColors“ umbenannt. (I9e976, b/161812111)
- Der Parameter
text
von „BottomNavigationItem“ wird inlabel
umbenannt,onSelected
inonSelect
,activeColor
inselectedContentColor
undinactiveColor
inunselectedContentColor
. Außerdem wird die Parameterreihenfolge an die Richtlinien angepasst. (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
- IntOffset.Origin in IntOffset.Zero umbennen, um mit der Offset API übereinzustimmen
- 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.
- Die PointMode-Enum-Typen 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 Implementierung von DrawCache wurde aktualisiert, sodass keine lateinit-Parameter 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.
- Die Klasse „Outline“ wurde um Anmerkungen vom Typ „@Immutable“ ergänzt.
- 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.
- Die Funktion „Size“ wurde aktualisiert, um die Destrukturierungs-API hinzuzufügen. Außerdem wurde „UnspecifiedSize“ in „Unspecified“ 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, da es 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
“ ist jetzt eingestellt. Verwenden Sie stattdessen „state“ und „mutableStateOf“. 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)
- Umkehrbare Entscheidung.
@Model
können wir später jederzeit wieder einführen. - Beseitigt Sonderfälle und schwer zu beantwortende Fragen zur Konfiguration von
@Model
, die wir bearbeiten müssen @Model
-Datenklassen, equals, Hash-Code usw.- Wie kann ich festlegen, dass einige Properties „beobachtet“ und andere nicht werden?
- Wie kann ich festlegen, ob bei der Beobachtung strukturelle oder referenzielle Gleichheit 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 Systems und reduziert Unklarheiten in Bezug auf unveränderliche Zustände oder unsere „Akzeptanz von veränderlichen Zuständen“
Migrationshinweise
Fast alle vorhandenen Verwendungen von
@Model
können auf eine von zwei Arten relativ einfach umgewandelt werden. Im folgenden Beispiel wird beispielhaft eine@Model
-Klasse mit zwei Properties verwendet, die in einem Composeable eingebunden ist.@Model class Position( var x: Int, var y: Int ) @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ 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.Hinweis: Dieser Ansatz funktioniert nur, wenn die einzigen Mutationen an dieser Klasse im selben Gültigkeitsbereich vorgenommen wurden, in dem die
State
-Instanz erstellt wird. Wenn sich die Klasse intern außerhalb des Verwendungsbereichs mutiert und Sie sich auf die Beobachtung dieser Mutation verlassen, sollten Sie den nächsten Ansatz verwenden.data class Position( val x: Int, val y: Int ) @Composable fun Example() { var p by state { Position(0, 0) } PositionChanger( position=p, onXChange={ p = p.copy(x=it) } onYChange={ p = p.copy(y=it) } ) }
Alternative 2: mutableStateOf und Property Delegate 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 Grunde allevar
-Properties der ursprünglichen Klasse durchvar
-Properties mitmutableStateOf
als Property-Delegierter. 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, onXChange={ p.x = it } onYChange={ 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 „thresholds“ wurde im Status „draggable“ hinzugefügt, um Grenzwerte 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 „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. (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)
Der Inhalts-Slot der Schaltfläche verhält sich jetzt wie eine Zeile. Das ist nützlich, wenn Sie ein Symbol mit Text benötigen. Weitere Informationen finden Sie in den Beispielen für Schaltflächen. (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 zu reduzieren, die zur Darstellung von Größeninformationen verwendet werden, 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 wurden umbenannt und es wurden neue Parameter für eine bessere Anpassung hinzugefügt. Es wurde ein Getter hinzugefügt, um die Größe von FAB, TopBar und BottomBar abzufragen (I0e7ce).
Die Komponente „DropdownMenu“ wurde in „ui-material“ hinzugefügt, eine Material Design-Menüimplementierung. (I9bb3d)
Softwaretastatur manuell über SoftwareKeyboardController ein-/ausblenden lassen (Ifb9d6, b/155427736)
„Modifier.indication“ wurde dem Basispaket 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)
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)
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)
Parameter im Divider-Element umbenannt (Ic4373)
children (Ia6d19)
„MaterialTheme.emphasisLevels“ wurde entfernt. 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. In den aktualisierten Beispielen finden Sie Informationen zur Verwendung. (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(onClick = { ... }, modifier = ripple())
(Ie5200, b/151331852, b/150060763).Surface und Card wurden von androidx.ui.material.surface zu 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)„Image“ in „ImageAsset“ umbenannt, um den Unterschied zwischen den Bilddaten und dem anstehenden Bild-Komposit besser zu unterscheiden, das zum Erstellen von Layouts und zum Zeichnen von Inhalten verwendet wird. _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 vorhandene Verwendungen von AppBarIcon direkt durch IconButton ersetzen. Diese haben dann das richtige Touch-Ziel. 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
umbenannt (I8ffcc)LayoutCoordinates hat keine Positionseigenschaft mehr. Die Eigenschaft „position“ ist bei Layout-Modifizierern, Drehungen oder Skalierungen nicht sinnvoll. Stattdessen sollten Entwickler „parentCoordinates“ und „childToLocal()“ verwenden, um die Transformation von einer Layoutkoordinate in eine andere zu berechnen.
Bei „LayoutCoordinates“ wird für die Größe die Property „IntPxSize“ anstelle von „PxSize“ verwendet. Für Layouts werden Ganzzahlpixelgrößen verwendet. Daher sollten für alle Layoutgrößen Ganzzahlen und keine Gleitkommawerte verwendet werden. (I9367b)
Funktionsgefährdende Änderungen an der Ambients API Weitere Informationen finden Sie im Log und in der
Ambient<T>
-Dokumentation (I4c7ee, b/143769776).Komponente für Gerüstmaterial wurde hinzugefügt. Gerüstimplementierungen (I7731b)
„DrawBorder“ durch „Border Modifier“ ersetzt (Id335a)
Fehlerkorrekturen
- FocusModifier wurde 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 scrollbare Elemente 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: „semantics { hidden = true }“ wird jetzt so geschrieben: 'semantics { hidden() }'. (Ic1afd, b/145951226, b/145955412)
- Mehrere Test-APIs wurden umbenannt, um sie intuitiver zu gestalten. Alle APIs vom Typ „findXYZ“ 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 entsprechend aktualisiert. (I0d8d0, b/159596546)
- Für die Testung von Suchern wurde das neue optionale Flag „useUnmergedTree“ hinzugefügt. (I2ce48)
- Veraltete APIs für die Größenprüfung wurden entfernt. (Iba0a0)
- Die Inline-Shader-Klasse, die die NativeShader-Erwartungklasse umhüllte, wurde entfernt. NativeShader wurde in Shader umbenannt. Die gewrappte Shader-Inline-Klasse fügte der API-Oberfläche nichts Wertvolles hinzu und war eine Inline-Klasse. Verwenden Sie daher die NativeShader-Klasse 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 Parameter „Layoutrichtung“ wurde aus dem Messblock der Funktion „Layout()“ 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 Ganzzahlpositionen der Ausrichtungslinie, die von Placeable#get(AlignmentLine) zurückgegeben werden, sind jetzt nicht mehr 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 des Textfelds hat eine blinkende Animation (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 bietet jetzt standardmäßig die Spalte. 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
Dem Textfeld eine Anpassung der Cursorfarbe hinzufügen (I6e33f)
TextFieldValue, das mit TextField verwendet wird, kann jetzt bei der Aktivitätswiederherstellung erhalten bleiben, wenn es so verwendet wird:
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 für „DrawShadow“ wurde geändert: „elevation“ ist jetzt der erste und „shape“ der zweite Parameter mit der Standardeinstellung „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. „Zeile“, „Spalte“ und „Stapel“ wurden aktualisiert, um benutzerdefinierte kontinuierliche Ausrichtungen zu unterstützen. (Ib0728)
Die PixelMap API wurde erstellt, um Pixelinformationen aus einem ImageAsset abzufragen. (I69ad6)
„ProvideContentColor“ wird entfernt. Verwenden Sie stattdessen einfach „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ür „draw()“ entfernt
- DrawScope hat dieselbe Oberfläche wie das bisherige CanvasScope
- ContentDrawScope hat 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. Anrufer 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)
Eingestellte Center-Kompositionen 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.
Die Image(Painter) API wurde in PaintBox(Painter) umbenannt. Es wurde ein Vektor-Komposit erstellt, das sich wie das Bild-Komposit verhält, jedoch mit einem VectorAsset anstelle eines ImageAsset (I9af9a, b/149030271).
„LayoutFlexible“ in „LayoutWeight“ umbenannt. Der Parameter „tight“ wurde in „fill“ umbenannt. (If4738)
RepaintBoundary wurde zugunsten von DrawLayerModifier entfernt (I00aa4)
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)
Der LayerModifier wurde hinzugefügt. Mit diesem Modifikator kann ein RenderNode für ein Layout hinzugefügt werden. 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. Verwenden Sie 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 eine Bildkomposition erstellt, die nicht nur die Größe und das Layout verwaltet, sondern auch ein bestimmtes Bild-Asset auf dem Bildschirm anzeigt. 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. Modus für die Layoutrichtung 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)