Material erstellen
androidx.compose.material
androidx.compose.material.icons
(API-Referenzdokumentation für alle Compose-Pakete)
Letzte Aktualisierung | Stabile Version | Releasekandidat | Beta-Ausgabe | Alpharelease |
---|---|---|---|---|
2. Juli 2025 | 1.8.3 | - | 1.9.0-beta02 | - |
Struktur
Compose ist eine Kombination aus 7 Maven-Gruppen-IDs innerhalb von androidx
. Jede Gruppe enthält eine bestimmte Teilmenge von Funktionen mit jeweils eigenen Versionshinweisen.
In dieser Tabelle werden die Gruppen erläutert und es sind Links zu den jeweiligen Versionshinweisen enthalten.
Gruppe | Beschreibung |
---|---|
compose.animation | Animationen in Jetpack Compose-Anwendungen erstellen, um die Nutzerfreundlichkeit zu verbessern. |
compose.compiler | @Composable-Funktionen transformieren und Optimierungen mit einem Kotlin-Compiler-Plug-in ermöglichen |
compose.foundation | Mit den einsatzbereiten Bausteinen können Sie Jetpack Compose-Anwendungen schreiben und die Grundlage erweitern, um eigene Designsystemkomponenten zu erstellen. |
compose.material | Jetpack Compose-UIs mit einsatzbereiten Material Design-Komponenten erstellen Dies ist der Einstiegspunkt auf höherer Ebene für Compose. Er soll Komponenten bereitstellen, die den auf www.material.io beschriebenen Komponenten entsprechen. |
compose.material3 | Mit Material Design 3-Komponenten, der nächsten Generation von Material Design, können Sie Jetpack Compose-UIs erstellen. Material 3 umfasst aktualisierte Designs und Komponenten sowie Material You-Personalisierungsfunktionen wie dynamische Farben. Es ist auf den neuen visuellen Stil und die System-UI von Android 12 abgestimmt. |
compose.runtime | Grundlegende Bausteine des Programmiermodells und der Statusverwaltung von Compose sowie die Core-Laufzeit für das Compose Compiler-Plug-in. |
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 benötigten Artefakte hinzu:
Groovy
dependencies { implementation "androidx.compose.material:material:1.8.3" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.8.3") } 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. Lassen Sie es uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können für ein vorhandenes Problem abstimmen, indem Sie auf die Schaltfläche mit dem Stern klicken.
Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung.
Version 1.9
Version 1.9.0-beta02
2. Juli 2025
androidx.compose.material:material-*:1.9.0-beta02
wird veröffentlicht. Version 1.9.0-beta02 enthält diese Commits.
Version 1.9.0-beta01
18. Juni 2025
androidx.compose.material:material-*:1.9.0-beta01
wird veröffentlicht. Version 1.9.0-beta01 enthält diese Commits.
Fehlerkorrekturen
- Hyperlinks in
Text(AnnotatedString)
haben jetzt standardmäßig das Material-Design. (I0e8ed, b/339843816)
Version 1.9.0-alpha04
4. Juni 2025
androidx.compose.material:material-*:1.9.0-alpha04
wird veröffentlicht. Version 1.9.0-alpha04 enthält diese Commits.
Version 1.9.0-alpha03
20. Mai 2025
androidx.compose.material:material-*:1.9.0-alpha03
wird veröffentlicht. Version 1.9.0-alpha03 enthält diese Commits.
Version 1.9.0-alpha02
7. Mai 2025
androidx.compose.material:material-*:1.9.0-alpha02
wird veröffentlicht. Version 1.9.0-alpha02 enthält diese Commits.
Version 1.9.0-alpha01
23. April 2025
androidx.compose.material:material-*:1.9.0-alpha01
wird veröffentlicht. Version 1.9.0-alpha01 enthält diese Commits.
Geändertes Verhalten
- Für Lint-Prüfungen, die mit Compose ausgeliefert werden, ist jetzt mindestens AGP-Version 8.8.2 erforderlich. Wenn Sie AGP nicht aktualisieren können, können Sie stattdessen Lint aktualisieren, indem Sie
android.experimental.lint.version=8.8.2
(oder eine neuere Version) in Ihrergradle.properties
verwenden. Um Compose-Lint-Prüfungen in der IDE auszuführen, ist Android Studio Ladybug oder höher erforderlich.
API-Änderungen
- Für Projekte, die mit Kotlin 2.0 veröffentlicht wurden, ist KGP 2.0.0 oder höher erforderlich. (Idb6b5)
- Die APIs für die Dekoration von Textfeldern sind nicht mehr experimentell (I7480f, b/269651160)
runWithTimingDisabled
wird zugunsten vonrunWithMeasurementDisabled
eingestellt, da das Verhalten dort deutlicher beschrieben wird: Alle Messwerte werden pausiert. Außerdem wird dieMicrobenchmarkScope
-Superklasse verfügbar gemacht, da dierunWithMeasurementDisabled
-Funktion nicht neu deklariert werden kann, um den Zugriff zu öffnen, da sie inline ist. (I9e23b, b/389149423, b/149979716)
Fehlerkorrekturen
ExposedDropdownMenu
ist binärkompatibel mit älteren Versionen. (I133f7)- Ein Absturz bei den Fortschritts- und Ladesymbolen wurde behoben, wenn
Float.NaN
als Fortschrittswert übergeben wurde. (I4fa96, b/352364576)
Version 1.8
Version 1.8.3
18. Juni 2025
androidx.compose.material:material-*:1.8.3
wird veröffentlicht. Version 1.8.3 enthält diese Commits.
Version 1.8.2
20. Mai 2025
androidx.compose.material:material-*:1.8.2
wird veröffentlicht. Version 1.8.2 enthält diese Commits.
Version 1.8.1
7. Mai 2025
androidx.compose.material:material-*:1.8.1
wird veröffentlicht. Version 1.8.1 enthält diese Commits.
Version 1.8.0
23. April 2025
androidx.compose.material:material-*:1.8.0
wird veröffentlicht. Version 1.8.0 enthält diese Commits.
Version 1.8.0-rc03
9. April 2025
androidx.compose.material:material-*:1.8.0-rc03
wird veröffentlicht. Version 1.8.0-rc03 enthält diese Commits.
Version 1.8.0-rc02
26. März 2025
androidx.compose.material:material-*:1.8.0-rc02
wird veröffentlicht. Version 1.8.0-rc02 enthält diese Commits.
Version 1.8.0-rc01
12. März 2025
androidx.compose.material:material-*:1.8.0-rc01
wird veröffentlicht. Version 1.8.0-rc01 enthält diese Commits.
Version 1.8.0-beta03
26. Februar 2025
androidx.compose.material:material-*:1.8.0-beta03
wird veröffentlicht. Version 1.8.0-beta03 enthält diese Commits.
Version 1.8.0-beta02
12. Februar 2025
androidx.compose.material:material-*:1.8.0-beta02
wird veröffentlicht. Version 1.8.0-beta02 enthält diese Commits.
Version 1.8.0-beta01
29. Januar 2025
androidx.compose.material:material-*:1.8.0-beta01
wird veröffentlicht. Version 1.8.0-beta01 enthält diese Commits.
Version 1.8.0-alpha08
15. Januar 2025
androidx.compose.material:material-*:1.8.0-alpha08
wird veröffentlicht. Version 1.8.0-alpha08 enthält diese Commits.
Fehlerkorrekturen
- Fügt
displayCutout
der Gruppe von Insets hinzu, die Material-Komponenten standardmäßig berücksichtigen, um zu verhindern, dass sich Inhalte mit dem Displayausschnitt überschneiden.- Dies ist eine Verhaltensänderung, die sich darauf auswirkt, wie Komponenten, die Insets berücksichtigen, in der Nähe eines Displayausschnitts funktionieren. Dazu gehören der Standardwert des Parameters
WindowInsets
für inset-aware Material 3-Komponenten und die in der Komponente angegebenenWindowInsets
-Werte. - Standardobjekte für Material 2 und Material 3. Wenn diese Änderung zu unerwünschtem Verhalten führt, geben Sie den Parameter
WindowInsets
manuell für jede Komponente an. (I43ee9, b/362508045)
- Dies ist eine Verhaltensänderung, die sich darauf auswirkt, wie Komponenten, die Insets berücksichtigen, in der Nähe eines Displayausschnitts funktionieren. Dazu gehören der Standardwert des Parameters
- Die Aktivität, die als Host für das zu testende Composable verwendet wird, wenn
ComposeContentTestRule.setContent
verwendet wird, verwendet jetzt das ThemeTheme.Material.Light.NoActionBar
, um zu vermeiden, dass sichActionBar
mit Testinhalten überschneidet, wenn SDK 35 als Ziel-SDK verwendet wird. Wenn Sie dieses Verhalten deaktivieren möchten, können Sie die Abhängigkeit vonui-test-manifest
entfernen und in derAndroidManifest.xml
Ihrer Test-App einen Aktivitätseintrag fürComponentActivity
mit dem gewünschten Design hinzufügen. (I7ae1b, b/383368165)
Externe Beiträge
sheetGesturesEnabled
inModalBottomSheetLayout
verfügbar machen. (I3f032, b/329543529)
Version 1.8.0-alpha07
11. Dezember 2024
androidx.compose.material:material-*:1.8.0-alpha07
wird veröffentlicht. Version 1.8.0-alpha07 enthält diese Commits.
Fehlerkorrekturen
- Es wurde ein Fehler behoben, bei dem Größenmodifikatoren für Textfelder manchmal nicht berücksichtigt wurden. (I90d4c, b/356905963)
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 Scaffold
contentPadding
, um zu vermeiden, dass der Inhalt des Bodys immer neu zusammengesetzt wird, wenn sichcontentPadding
ändert. (I8c8e2, b/373904168) - Das Material „Slider“ 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 stabile Fundamentversion zu verwenden. (I3aaba)
Fehlerkorrekturen
- Unterstützung für Welleneffekte in maximierenden Komponenten auf Android S+ hinzugefügt, z. B. bei einer Karte, die sich beim Klicken maximiert. Bisher wurde der Ripple nicht an die neue Größe angepasst, sondern er wurde nur innerhalb der neuen Grenzen angezeigt. (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
- Es wurde ein neuer
NavGraphBuilder.bottomSheet
-Builder hinzugefügt, um ein BottomSheet mit Safe Args zu erstellen ((I28589, I777db, b/351858980)). - Neue Überladungen für
TextField
undOutlinedTextField
hinzugefügt, die einTextFieldState
(I3b74c) verwenden
Version 1.7
Version 1.7.8
12. Februar 2025
androidx.compose.material:material-*:1.7.8
wird veröffentlicht. Version 1.7.8 enthält diese Commits.
Version 1.7.7
29. Januar 2025
androidx.compose.material:material-*:1.7.7
wird veröffentlicht. Keine Änderungen gegenüber Version 1.7.6.
Version 1.7.6
11. Dezember 2024
androidx.compose.material:material-*:1.7.6
wird veröffentlicht. Version 1.7.6 enthält diese Commits.
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 wurden keine Änderungen vorgenommen.
-desktop
Artefakte wurden entfernt und-jvmStubs
- und-linuxx64Stubs
-Artefakte wurden hinzugefügt. Keines dieser Ziele ist für die Verwendung vorgesehen. Sie sind Platzhalter, um die Bemühungen von Jetbrains Compose zu unterstützen.
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
- Material-Komponenten wurden migriert, um die neuen Ripple-APIs zu verwenden. Sie fragen
RippleTheme
nicht mehr ab. - Material-Komponenten, die zuvor
MutableInteractionSource
akzeptiert und standardmäßigremember { MutableInteractionSource() }
verwendet haben, akzeptieren jetzt ein nullableMutableInteractionSource
und verwenden standardmäßig „null“. Wenn Sie dasMutableInteractionSource
nicht hochladen und verwenden, sollten Sie „null“ übergeben. So können einige Komponenten eine Instanz erst bei Bedarf erstellen, was die Leistung verbessert. Es wird auch empfohlen, ähnliche Änderungen in Ihren eigenen Komponenten vorzunehmen. BottomDrawer
,ModalBottomSheet
,BackdropScaffold
und das Standard-Bottomsheet sind jetzt stabile APIs.
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 zum Formatieren der Links aktualisiert:
TextLinkStyles
wurde inTextStyle
verschoben undTextDefaults
wurde aus dem Material entfernt (I5477b)
Version 1.7.0-beta01
14. Mai 2024
androidx.compose.material:material-*:1.7.0-beta01
wird veröffentlicht. Version 1.7.0-beta01 enthält diese Commits.
API-Änderungen
- Die API zum Abrufen von Links mit Material-Design in Text wurde aktualisiert. Konkret wurden die Methoden aus
TextDefaults
zum Erstellen thematischerLinkAnnotations
und zum Parsen von HTML mit thematischen Links entfernt. Stattdessen wurde eineTextLinkStyles
-Klasse hinzugefügt, mit der die Links als Parameter für die Text-Composable-Funktion 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
- Problem behoben:
backgroundColor
wird nicht aufTextFieldDecorationBox
undOutlinedTextFieldDecorationBox
angewendet. Für Dekorationsfelder ist jetzt einshape
-Parameter verfügbar. (I371c2, b/307694651) RippleConfiguration#isEnabled
wurde entfernt undLocalRippleConfiguration
wurde auf „nullable“ gesetzt. Wenn Sie einen Ripple deaktivieren möchten, geben Sie statt einesRippleConfiguration
mitisEnabled = false
den Wertnull
bisLocalRippleConfiguration
an. (I22725)- Textlinks haben zusätzlich zu den normalen, Hover- und Fokus-Stilen auch eine Formatierungsoption für den gedrückten Zustand.
TextDefaults
-Methoden haben jeweils einpressedStyle
-Argument, um dies zu unterstützen. (Ic473f, b/139312671)
Fehlerkorrekturen
- Das obere Padding für das Label berücksichtigt jetzt die Schriftgröße des Systems.
OutlinedTextField
(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 zusätzlich zum normalen Stil, zum Stil für den Mauszeiger und zum Fokusstil auch einen Stil für den gedrückten Zustand. (I5f864, b/139312671)
- Es wurde ein
TextDefaults
-Objekt hinzugefügt, das Methoden zum Erstellen einesLinkAnnotation
-Objekts und zum Parsen von HTML-getaggten Strings enthält, in denenMaterialTheme
auf die Links angewendet wird. (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.
Ankündigung
- Für
androidx.compose.material
ist es nicht mehr erforderlich, dieselbe Version jedes Artefakts in dieser Maven-Gruppe zu verwenden. Nutzer können verschiedene Versionen von Compose-Fundamentbibliotheken (Ie5fba) kombinieren.
API-Änderungen
- Weitere
ModalDrawer
- undBottomDrawer
-Standardwerte 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 Unterstützung für Bottom Sheets als Ziele bei Verwendung von Navigation Compose bietet. Diese Bibliothek ersetzt die Accompanist Navigation Material library. (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 „experimentell“ auf „stabil“ hochgestuft.BottomDrawerState
gibt den Fortschritt jetzt als Funktion aus, sodass der Fortschritt zwischen bestimmten Zielen abgefragt werden kann.BottomDrawerState
ermöglicht jetzt die Anpassung der Animationsspezifikation undconfirmStateChange
ist kein nachgestelltes Lambda mehr. (I9c029, b/261423850)BackdropScaffold
wurde von „experimentell“ auf „stabil“ hochgestuft. Die Animationsspezifikation ist jetzt einetween
-Spezifikation gemäß den Richtlinien. Der ParametersnackbarHost
vonBackdropScaffold
ist nicht mehr der letzte Parameter, um Verwechslungen mit nachgestellten Lambdas zu vermeiden.BackdropScaffoldState
stellt eineprogress(from, to)
-API zur Verfügung, mit der der Fortschritt zwischen Ankern abgefragt werden kann. (I73f48, b/261423218)- Standard-Bottom-Sheets sind jetzt stabil und nicht mehr experimentell. Verworfene Konstruktoren wurden entfernt. Die Animationsspezifikation ist jetzt eine Tween-Spezifikation gemäß den Richtlinien. (I3c1a8, b/278692145, b/261409034)
- Modale Bottom Sheets sind nicht mehr experimentell, sondern stabil. Verworfene Konstruktoren wurden entfernt. Die Animationsspezifikation ist jetzt eine
tween
-Spezifikation gemäß den Richtlinien. (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) - Die Unterkomposition in
BottomSheetScaffold
wurde 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.
Geändertes Verhalten
- Material-Komponenten wurden migriert, um die neuen Ripple-APIs zu verwenden. Sie fragen
RippleTheme
nicht mehr ab.
API-Änderungen
rememberRipple
undRippleTheme
wurden aus „material-ripple“ entfernt. In „material“ und anderen Designsystembibliotheken wurden neue Ripple- undRippleConfiguration
-APIs hinzugefügt.Materialkomponenten, die zuvor ein
MutableInteractionSource
akzeptiert und standardmäßig{ MutableInteractionSource() }
gespeichert haben, akzeptieren jetzt ein nullableMutableInteractionSource
und verwenden standardmäßig stattdessen „null“. Wenn Sie dasMutableInteractionSource
nicht hochladen und verwenden, sollten Sie „null“ übergeben. So können einige Komponenten eine Instanz erst bei Bedarf erstellen, was die Leistung verbessert. Es wird auch empfohlen, ähnliche Änderungen in 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 dem letzten Release.
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
- Beheben Sie die Regression in
ExposedDropdownMenu
, damit das Element wieder fokussierbar ist. (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 einstellen. (Ia338d)
Fehlerkorrekturen - Die Höhe von Navigationselementen wird bei großen Inhalten 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ängigkeitsaktualisierungen
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 Verhaltensänderung
- Die schubladenbezogenen Funktionen wurden aus
BottomSheetScaffold
entfernt. Sie können IhrBottomSheetScaffold
in ein Drawer-Composable einfügen, um die bisherige Funktionalität zu erreichen. Ein Beispiel findest du inBottomSheetScaffoldWithDrawerSample
. (I1dcc8)
API-Änderungen
- Es wurde ein temporäres Flag eingeführt, mit dem gesteuert werden kann, ob untergeordnete Elemente von Scaffold während der Messung oder während der Platzierung gemessen werden sollen. Standardmäßig wird die Messung in der Maßeinheit durchgeführt. Wenn Sie Probleme mit dem neuen Verhalten haben, melden Sie bitte ein Problem. (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 mit Leserichtung von rechts nach links hinzugefügt. Die Symbole in den Modulen „material-icons-core“ und „material-icons-extended“ bieten jetzt zusätzliche Symbolsets zur Unterstützung der automatischen Spiegelung, 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 hier.
API-Änderungen
- Unterstützung für automatisch gespiegelte Symbole beim Rendern in Layouts mit Leserichtung von rechts nach links hinzugefügt. Die Symbole in den Modulen „material-icons-core“ und „material-icons-extended“ bieten jetzt zusätzliche Symbolsets zur Unterstützung der automatischen Spiegelung, 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 hier. Die zuvor angegebenen Symboleigenschaften für diese Symbole sind jetzt als veraltet markiert. Es wird ein Vorschlag für einen Ersatzblock angezeigt, um die Migration zu erleichtern. Wenn Sie keine spezielle Behandlung für das Spiegeln von Symbolen in RTL haben, empfehlen wir, zum neuen Satz von Symbolen zu migrieren. Beispiel:Icons.Filled.ArrowBack
sollte inIcons.AutoMirrored.Filled.ArrowBack
umgestaltet 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, die
Subcomposition
(z.B.BottomSheetScaffold
) innerhalb eines Scaffold innerhalb einesLookaheadScope
verwenden, versuchten, ihre Größe zu früh zu lesen. (If2c5d) - Die Berechnung von
DropdownMenu
offset
wurde korrigiert, sodass x-Offsets nur von der lokalen Layoutrichtung abhängen und y-Offsets nicht mehr umgekehrt werden, wenn sich das Menü unten auf dem Bildschirm befindet. (Iccc74, b/294103942) - Das Layout von
BottomSheetScaffold
wurde optimiert und ein potenzielles Problem mitBottomSheetScaffold
innerhalb vonLookaheadLayout
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 die Edge-to-Edge-Funktionalität in Android zu unterstützen. Im Gegensatz zu Material 3-Komponenten unterstützen Material 2-Komponenten standardmäßig keine Insets. Der Wert muss manuell übergeben werden. Weitere Informationen 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
- Die Abhängigkeit von der Dichte wird auf die Komponentenebene verschoben. Dies gilt für die folgenden Komponenten:
SwipeToDismiss
und blattbasierte Komponenten. Verwenden Sie die neue Überladung, bei der die Dichte ein Parameter ist. (I1846e) - Zusätzliche Anmerkungen zum Angeben zulässiger Eingaben für Composables (I51109)
- Aktualisierte API-Dateien zum Annotieren der Kompatibilitätsunterdrückung (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 Überladung 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.
Geändertes Verhalten
includeFontPadding
ist jetzt standardmäßigfalse
in der Material 2-Typografie. Die Standardeinstellung für die Zeilenhöhe wurde ebenfalls inTrim.None
undAlignment.Center
geändert. Außerdem wurde denTextStyle
s vonTypography
ein expliziterlineHeight
(in sp) hinzugefügt. Wenn Sie diese Werte anpassen möchten, sehen Sie in der API-Dokumentation nach. Eine ausführliche Erläuterung dieser Änderungen finden Sie im Blogpost. (Icabc3, I3f801, I04c03)
API-Änderungen
- Die
Swipeable
-APIs für Material wurden eingestellt. Verwenden Sie dieAnchoredDraggable
-APIs von Foundation, die sowohl für einfache als auch für komplexe Anwendungsfälle optimiert sind. (I732e0)
Fehlerkorrekturen
BottomSheetState
,ModalBottomSheetState
undBottomDrawerState
haben jetzt eine Fortschrittseigenschaft, die den Fortschritt zwischen dem aktuellen (abgeglichenen) 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 in den Swipeable1-APIs in
BottomSheetScaffold
wurden berücksichtigt. DerconfirmStateChange
-Parameter vonBottomSheetState
wurde inconfirmValueChange
umbenannt.progress
wird jetzt als Gleitkommawert bereitgestellt.animateTo
undsnapTo
sind intern. Verwenden Sie stattdessenexpand()
undcollapse()
.direction
undoverflow
wurden entfernt.offset
wurde durchrequireOffset()
ersetzt. I323b4 - Markieren Sie die Funktion
snapTo
im Drawer als nicht experimentelle API. (Ib9c18, b/261425368) - Für kreisförmige Fortschrittsanzeigen wurde ein Parameter für die Farbe der Spur und für kreisförmige und lineare Fortschrittsanzeigen ein Parameter für die Form der Linienenden hinzugefügt. (Ie668c, b/216325962, b/222964817)
- Die
confirmStateChange
vonModalBottomSheetState
,ModalBottomSheetState.Saver
undrememberModalBottomSheetState
wurde inconfirmValueChange
umbenannt. (Ib48d1) - Fügen Sie
Modifier.minimumInteractiveComponentSize
hinzu. Damit können Sie mindestens 48 dp für die eindeutige Unterscheidung von Berührungsinteraktionen reservieren, wenn das Element kleiner wäre. (I33f58, b/258495559) - Änderungen an den Swipeable APIs in
ModalBottomSheetLayout
wurden berücksichtigt. Die animateTo-Funktion vonModalBottomSheetState
akzeptiert keinenanimationSpec
-Parameter mehr und der angegebene Offset ist jetzt nullable. Verwenden SierequireOffset
, um den Offset anzufordern. (Ia2e79) - Annotation „
@JvmDefaultWithCompatibility
“ wird hinzugefügt (I8f206) - Die Änderungen an den Swipeable APIs in
ModalDrawer. DrawerState
'sanimateTo
wurden übernommen. Die open- und close-Methoden wurden ersetzt und der Offset ist jetzt nullable. Verwenden SierequireOffset
, um den Offset anzufordern. (I3de9e) - Die Schubladen und Sheets wurden aktualisiert, um das Drücken korrekt zu verzögern, falls Gesten zu Scroll-Ereignissen werden können.
- Der Parameter
minLines
wurde in die Material- und Material3-TextkomponentenTextField
undOutlinedTextField
eingefügt. Damit kann die Mindesthöhe der Komponente in Bezug auf die Anzahl der Zeilen festgelegt werden (I4af1d).
Fehlerkorrekturen
- Es wurde ein Problem behoben, bei dem
pullRefresh
die Geschwindigkeit nicht verbrauchte, was zu einem Overscroll führte. Außerdem wurde die API-Signatur desonRelease
-Lambdas inModifier.pullRefresh
geändert, um einen Float für die verbrauchte Geschwindigkeit zurückzugeben (I7db65, b/266874741). BottomSheetState
,ModalBottomSheetState
undBottomDrawerState
haben jetzt eine Fortschrittseigenschaft, die den Fortschritt zwischen dem aktuellen (abgeglichenen) Anker und dem nächstgelegenen Anker in der Wischrichtung angibt. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)- Die Aktion zum Schließen von
AlertDialog
wird jetzt unter der Bestätigungsaktion angezeigt, wenn die Aktionen übereinander gestapelt werden, um in die Breite des Dialogfelds zu passen. Mit dieser Korrektur wird die Implementierung an die Material Design-Spezifikation angepasst. (I029de, b/235454277) BottomSheetScaffold
nimmt nicht mehr an verschachtelten Scrollvorgängen teil, wenngesturesEnabled
auf „false“ gesetzt ist. (I634f3, b/215403277)- Ein Fehler wurde behoben, aufgrund dessen
BottomSheetScaffold
abstürzte, wenn für Slots leerer Inhalt bereitgestellt wurde. (Ib24a5, b/235588730) - Behebt das Abfangen von Klicks/Zeigerereignissen durch
PullRefreshIndicator
. (2494256, b/271777421) - Ein Problem wurde behoben, durch das
ModalBottomSheetLayout
in einem Grenzfall beim Ändern der Ausrichtung abstürzte. Layout-Animationen (z.B.Modifier.animateContentSize
) im/auf dem Tabellenblattinhalt 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 (abgeglichenen) 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
kann nicht mehr null sein. Stattdessen wirdFloat.NaN
zurückgegeben, um anzuzeigen, dass kein Offset vorhanden ist. (Ie9855) - Es wurde eine Option hinzugefügt, mit der ein
ScrollState
beim Erstellen einesDropdownMenu
oder einesExposedDropdownMenu
übergeben werden kann, um den vertikalen Scrollstatus der angezeigten Menüelemente zu steuern. (Idb009, b/185304441) - Unterstützung für das Aktivieren/Deaktivieren der Geste
ModalBottomSheetLayout
hinzugefügt, damit Nutzer diese für ein Bottomsheet mit mehr Funktionen konfigurieren können (I40af0) - Der Funktion
BasicText
wurde ein Farbparameter hinzugefügt, um die Textfarbe effizient animieren oder festlegen zu können. (Iffd88, b/246961787) - Umbenennung des Semantics-Attributs
isContainer
inisTraversalGroup
(I121f6)
Fehlerkorrekturen
- Die Aktion zum Schließen von
AlertDialog
wird jetzt unter der Bestätigungsaktion angezeigt, wenn die Aktionen übereinander gestapelt werden, um in die Breite des Dialogfelds zu passen. Mit dieser 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
- Die Abhängigkeit von der Dichte wird auf die Komponentenebene verschoben. Dies gilt für die folgenden Komponenten:
BottomDrawer
,ModalBottomSheetLayout
,BottomSheetScaffold
,Switch
,ModalDrawer
. 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 Komponenten von
BottomDrawer
, damit die neuenSwipeableV2
-APIs verwendet werden. Aus diesem Grund hatBottomDrawerState
jetzt nur noch APIs, die auf Klassenebene definiert sind. Methoden/Attribute werden nicht vonSwipeableState
übernommen. Wir verwenden die Komposition mit einem internenSwipeableV2State
. „Offset“ ist jetzt ein Nullable-Gleitkomma-Attribut. Der aktuelle Wert und ein Wischzielwert können weiterhin über die Attribute „currentValue“ und „targetValue“ abgerufen werden. Die bisherigen Methoden auf Klassenebene wie „open“/„expand“/„close“ und Attribute wieisOpen/isClosed
werden weiterhin unterstützt. (Iad40c, b/178529942, b/220676296)
Fehlerkorrekturen
- Die internen Komponenten der Switch-Komponente wurden aktualisiert. Beim Ziehen wird jetzt der nächstgelegene (Ziel-)Status in der Vorschau angezeigt. (Id90d4)
- Animierte Tabelleninhalte (z.B.
Modifier.animateContentSize
für Tabelleninhalte) inBottomSheetScaffold
wurden optimiert und funktionieren jetzt reibungslos. (Ia913c, b/270518202, b/254446195) BottomSheetScaffold
nimmt nicht mehr an verschachteltem 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 leerer Inhalt bereitgestellt wurde. (Ib24a5, b/235588730) - Fehlerbehebung:
PullRefreshIndicator
fängt Klicks / Zeigerereignisse ab (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 das Umfließen von Chipgruppen hinzufügen Aktualisieren Sie das horizontale Padding zwischen untergeordneten Chips im Beispiel für eine einzeilige Chipgruppe, damit es der Spezifikation entspricht. (I3b155)
- Ein Problem wurde behoben, durch das
ModalBottomSheetLayout
in einem Grenzfall beim Ändern der Ausrichtung abstürzte. Layout-Animationen (z.B.Modifier.animateContentSize
) im/auf dem Tabellenblattinhalt 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 eine 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 können Sie mindestens 48 dp für die eindeutige Unterscheidung von Berührungsinteraktionen reservieren, wenn das Element kleiner wäre. (I33f58, b/258495559) - Änderungen an den Swipeable APIs in
ModalDrawer
wurden berücksichtigt.DrawerState
sanimateTo
wurde durch die open- und close-Methoden ersetzt und der Offset ist jetzt nullable. Verwenden SierequireOffset
, um den Offset anzufordern. (I3de9e) - Der Parameter
minLines
wurde in die Material- und Material3-TextkomponentenTextField
undOutlinedTextField
eingefügt. Damit kann die Mindesthöhe der Komponente in Bezug auf die Anzahl der Zeilen festgelegt werden (I4af1d). - Der Parameter
minLines
wurde denBasicText
undBasicTextField
hinzugefügt. Damit kann die Mindesthöhe dieser Composables in Zeilen angegeben werden (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 Swipeable APIs in
BottomSheetScaffold
wurden berücksichtigt. DerconfirmStateChange
-Parameter vonBottomSheetState
wurde inconfirmValueChange
umbenannt.progress
wird jetzt als Gleitkommawert bereitgestellt.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, wurden aktualisiert, um Rollen mit „modifier.semantics“ festzulegen (Ibb4ba).
- Geringfügige Aktualisierung der erweiterten Material Design-Symbole, bei der die gefü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, bei dem
pullRefresh
die Geschwindigkeit nicht verbrauchte, was zu einem Overscroll führte. Außerdem wurde die API-Signatur desonRelease
-Lambdas inModifier.pullRefresh
geändert, um einen Float für die verbrauchte Geschwindigkeit zurückzugeben (I7db65, b/266874741). - Die Getter-Methode
LocalMinimuTouchTargetEnforcement
für die wiederhergestellte Property wurde wiederhergestellt, als eingestellt markiert und zur MethodeLocalMinimumInteractiveComponentEnforcement
weitergeleitet. (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
ModalBottomSheetLayout's HalfExpanded
falsch berechnet wurde und das Blatt schwebend angezeigt wurde. (I8c615, b/265610459) - Ein Fehler in
ModalBottomSheetLayout
wurde behoben, bei dem das Tabellenblatt unter bestimmten Umständen abstürzte, wenn es von einem ausgeblendeten in einen sichtbaren Zustand 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 Semantik-Property
IsContainer
wurde auf Plattformen hinzugefügt. Diese Eigenschaft wird bei einer späteren Änderung verwendet, bei der die Reihenfolge der Traversierung auf der Grundlage der semantischen Bedeutung von Elementen wie Oberflächen bestimmt wird. (I63379) - Markieren Sie die Funktion
snapTo
im Drawer als nicht experimentelle API. (Ib9c18, b/261425368) - Für kreisförmige Fortschrittsanzeigen wurde ein Parameter für die Farbe der Spur und für kreisförmige und lineare Fortschrittsanzeigen ein Parameter für die Form der Linienenden hinzugefügt. (Ie668c, b/216325962, b/222964817)
- Die
confirmStateChange
vonModalBottomSheetState
,ModalBottomSheetState.Saver
undrememberModalBottomSheetState
wurde inconfirmValueChange
umbenannt. (Ib48d1) - Weitere Informationen zur Nullable-Eigenschaft des Rückgabetyps von eingestellten, ausgeblendeten Funktionen (Ibf7b0)
- Fügen Sie
Modifier.minimumInteractiveComponentSize
hinzu. Damit können Sie mindestens 48 dp für die eindeutige Unterscheidung von Berührungsinteraktionen reservieren, wenn das Element kleiner wäre. (I33f58, b/258495559) - Änderungen an den Swipeable APIs in
ModalBottomSheetLayout
wurden berücksichtigt. DieanimateTo
vonModalBottomSheetState
akzeptiert keinenanimationSpec
-Parameter mehr und die bereitgestellteoffset
ist jetzt nullable. Verwenden SierequireOffset
, um dieoffset
anzufordern. (Ia2e79)
Fehlerkorrekturen
- Die Breite eines
ModalBottomSheetLayout
-Blatts beträgt jetzt maximal 640 dp. (I71a4f, b/234927577) - Ein Problem wurde behoben, bei dem
rememberPullRefreshState
im Laufe der Zeit nicht aktualisiert wurde.refreshThreshold
refreshingOffset
(Ifed10, b/263159832) - Der Fortschritt für Fortschrittsindikatoren 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 werden, anstatt eine Ausnahme auszulösen. (I2c91b) - Der aktivierte Status wurde in der Material 2-Implementierung von
FilterChip
korrigiert. (Id326a, b/261329817) - Ein Fehler wurde behoben, durch den
ModalBottomSheetLayout
abstürzte, wennHalfExpanded
beim Drehen vom Hoch- ins Querformat verwendet wurde. Achten Sie darauf, dass Sie die richtigeinitialValue
übergeben, indem Sie beispielsweise die Konfiguration prüfen. (Ie8df7, b/182882364) - Ein Problem wurde behoben, bei dem
ModalBottomSheetLayout
abstürzte, wenn der Tabelleninhalt leer war.ModalBottomSheetLayout
lässt jetzt leere Tabelleninhalte zu. 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. Ein Fix wurde eingereicht und ist im nächsten Compose-Update 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
-Bibliothek auf Version 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
- Annotation „
@JvmDefaultWithCompatibility
“ wird hinzugefügt (I8f206) - Änderungen an den
Swipeable
-APIs inModalDrawer
wurden berücksichtigt. DieanimateTo
vonDrawerState
wurde durch die Methodenopen
undclose
ersetzt und der Offset ist jetzt nullable. Verwenden SierequireOffset
, um den Offset anzufordern. (I3de9e) - Eine Modifier API zum Abfragen von Scrollinformationen für übergeordnete Elemente wurde hinzugefügt. (I2ba9d, b/203141462)
- Wird in
Clickable
verwendet, um Tippinteraktionen richtig zu verzögern, wenn aus Gesten Scroll-Ereignisse werden könnten. - Das Problem, dass
Clickables
Ripples nicht richtig verzögert hat, wenn es in einemScrollable ViewGroup
verwendet wurde, wurde behoben. - Die Schubladen und Sheets wurden aktualisiert, um das Drücken korrekt zu verzögern, falls Gesten zu Scroll-Ereignissen werden können.
Fehlerkorrekturen
- Ein Problem wurde behoben, durch das
PullRefreshIndicator
nach dem Aufrufen vononRefresh
hängen bleiben konnte, wenn der Aktualisierungsstatus nicht in „true“ geändert wurde. (Ie2416, b/248274004)
Abhängigkeitsupdates
- Compose UI und Compose Material hängen jetzt von Lifecycle 2.5.1 ab. (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
awaitFirstDown
undwaitForUpOrCancellation
akzeptieren jetzt einPointerEventPass
, um mehr Flexibilität zu bieten. (I7579a, b/212091796)- Der Parameter
minLines
wurde in die Material- und Material3-TextkomponentenTextField
undOutlinedTextField
eingefügt. Damit kann die Mindesthöhe der Komponente in Bezug auf die Anzahl der Zeilen festgelegt werden (I4af1d). - Der Parameter
minLines
wurdeBasicTex
undBasicTextField
hinzugefügt. Damit kann die Mindesthöhe dieser Composables in Bezug auf die Anzahl der Zeilen festgelegt werden (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
- Es wurde eine neue Methode,
awaitEachGesture()
, für Gestenerkennung hinzugefügt. Sie funktioniert ähnlich wieforEachGesture()
, aber die Schleife über Gesten erfolgt vollständig innerhalb vonAwaitPointerEventScope
, sodass keine Ereignisse zwischen den Iterationen verloren gehen können. forEachGesture()
wurde zugunsten vonawaitEachGesture()
eingestellt, da beiforEachGesture()
Ereignisse zwischen 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
Verhaltensänderung
- Die maximal unterstützte Erhebung in Dialogfeldern und Pop-ups wurde auf 8 dp reduziert.
API-Änderungen
- Fügen Sie Compose eine „Pull-to-Refresh“-Komponente hinzu (I29168).
- Parametername von „values“ in „value“ in RangeSlider geändert (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
- Pull-to-Refresh-Komponente in Compose 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 Version 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.
Verhaltensänderung
Die maximal unterstützte Erhebung in Dialogfeldern und Pop-ups wurde auf 8 dp reduziert.
Die maximal unterstützte Erhebung für Compose-Dialogfelder und ‑Pop-ups wurde von 30 dp auf 8 dp reduziert. Diese Änderung betrifft sowohl benutzerdefinierte Dialogfelder und Pop-ups für Material Design als auch für die Benutzeroberfläche. Diese Änderung wurde vorgenommen, um einen Fehler bei der Barrierefreiheit in Android-Versionen unter S zu beheben und dafür zu sorgen, dass Bedienungshilfen in diesen Fenstern mit den Inhalten im Dialogfeld oder Pop-up interagieren können.
Sie sind nur von dieser Änderung betroffen, wenn Sie ein benutzerdefiniertes Dialogfeld oder Pop-up mit einer Erhebung erstellen, die auf Ebenen über 8 dp festgelegt ist. Verringern Sie die Erhebung des Dialogfelds oder Pop-ups. Wenn Sie dieses neue Verhalten deaktivieren möchten, können Sie einen eigenen Dialog oder ein eigenes Pop-up mit der gewünschten Erhebung forken. Dies wird nicht empfohlen, da die Barrierefreiheit dadurch beeinträchtigt werden kann. Es liegt in der Verantwortung des Entwicklers, dafür zu sorgen, dass der untere Teil des Dialogfelds oder Pop-ups für Barrierefreiheitsdienste 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.
Externe Beiträge
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
- Parametername von „values“ in „value“ in
RangeSlider
ändern (I3b79a)
Fehlerkorrekturen
- Aktualisieren Sie das Beispiel für das Logo, 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 Version 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 Standard-Schnittstellenmethoden von JDK8 erstellt (I5bcf1).
Fehlerkorrekturen
- Das Badge wird jetzt mit einem führenden Symbol-Tab aktualisiert, damit es am Label und nicht am Symbol angebracht 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
BottomSheetScaffold
über den Schatten der oberen App-Leiste gezeichnet wurde.BottomSheetScaffold
berücksichtigt jetzt auch den Status des Blatts beim Platzieren von Snackbars: Im minimierten Zustand werden Snackbars über dem Blatt und dem FAB platziert. Im maximierten Zustand werden Snackbars am unteren Rand des Blatts 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
- Die zusammensetzbare Funktion
TextFieldDefaults.BorderStroke
, mit der ein Rahmenstrich inOutlinedTextField
gezeichnet wird, 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
- Die teilweise Nutzung (Down- oder Position) wurde in
PointerInputChange
eingestellt. Mitconsume()
können Sie die Änderung vollständig übernehmen. MitisConsumed
können Sie feststellen, ob die Änderung bereits von jemand anderem übernommen wurde. PointerInputChange::copy()
erstellt jetzt immer eine oberflächliche Kopie. Das bedeutet, dass Kopien vonPointerInputChange
verbraucht werden, sobald eine der Kopien verbraucht wird. Wenn Sie ein ungebundenesPointerInputChange
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 der klickbaren Card API aufgrund von Änderungen an der Surface API (I56bcb)
- Aktualisierungen der Material 2 Surface API, durch die zusätzliche überladene Funktionen für auswählbare und umschaltbare Surfaces hinzugefügt werden. (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. Aktualisieren Sie Ihre Importe von „androidx.compose.foundation.lazy“ zu „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 für die Verwaltung einiger Fenster-Flags benötigt wird.ViewCompat.getWindowInsetsController
wurde zugunsten vonWindowCompat.getInsetsController
eingestellt, um sicherzustellen, dass 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 Beschneidungsprobleme, die durchincludeFontPadding=false
verursacht werden, wurden behoben. Bei hohen Skripts sollte es nicht mehr zu Beschneidungen kommen. (I31c84, b/171394808) - Eine neue
LazyVerticalGrid
API zum Definieren von Größen für die Querachse wurde 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 zusammen mitBasicTextField
verwenden, können Sie benutzerdefinierte Textfelder erstellen, die auf Material Design-Textfeldern basieren, aber mehr Anpassungsoptionen bieten.- Es wurde eine Möglichkeit geschaffen, den horizontalen und vertikalen Innenabstand in Textfeldern anzupassen. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/168003617)
Die Funktionen
ComposableTarget
,ComposableTargetMarker
undComposableOpenTarget
wurden hinzugefügt, mit denen zur Kompilierzeit gemeldet werden kann, wenn eine zusammensetzbare Funktion für einen Applier aufgerufen wird, für den sie nicht vorgesehen ist.In den meisten Fällen können die Annotationen vom Compose-Compiler-Plug-in abgeleitet werden. Die direkte Verwendung dieser Annotationen sollte daher selten sein. Die Fälle, die nicht abgeleitet werden können, umfassen das Erstellen und Verwenden eines benutzerdefinierten Appliers, abstrakte zusammensetzbare Funktionen (z. B. Schnittstellenmethoden), Felder oder globale Variablen, die zusammensetzbare Lambdas sind (lokale Variablen und Parameter werden abgeleitet), oder wenn
ComposeNode
oder eine zugehörige zusammensetzbare Funktion verwendet wird.Bei benutzerdefinierten Appliern muss für die zusammensetzbaren Funktionen, die
ComposeNode
oderReusableComposeNode
aufrufen, die AnnotationCompoableTarget
für die Funktion und alle zusammensetzbaren Lambda-Parametertypen hinzugefügt werden. Es wird jedoch empfohlen, eine Annotation zu erstellen, die mitComposableTargetMarker
annotiert ist, und dann die markierte Annotation anstelle vonComposableTarget
direkt zu verwenden. Eine mitComposableTargetMarker
markierte zusammensetzbare Annotation entspricht einemComposbleTarget
mit dem vollständig qualifizierten Namen der Attributklasse als „applier“-Parameter. 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
- Beispiel für eine hinzugefügte Chipgruppe (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 die vom Compiler generierten Memoization-Prüfungen (equals) für alle Parameter reduziert, die in der aufgerufenen inneren Funktion wiederholt werden. (I90490)- Unterstützung für Aktions-Chip hinzufügen (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 von Kotlin
1.6.10
abhängig.
Externe Beiträge
ModalBottomSheetState
hat jetzt einisSkipHalfExpanded
-Flag. Sie kann entweder über den Konstruktor festgelegt oder später aktualisiert werden, indem dieModalBottomSheetState
-EigenschaftisSkipHalfExpanded
auftrue
gesetzt wird. Wenn Sie den Wert vonisSkipHalfExpanded
aktualisieren, wird das Tabellenblatt neu zusammengestellt. (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 Zwischenablageinhalte beim Lesen aus der Zwischenablage unter Android verursacht wurde, wurde behoben. (I06020, b/197769306)
- RTL-Problem in
LazyVerticalGrid
behoben (aosp/1931080, b/207510535)
Version 1.1.0
9. Februar 2022
androidx.compose.material:material-*:1.1.0
wird veröffentlicht. Version 1.1.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.0.0
- Stabile Unterstützung für den Overscroll-Effekt von Android 12
- Verbesserungen bei der Größe von Berührungszielen
- Im Vergleich zu Compose 1.0 wird der Layoutbereich von Material-Komponenten erweitert, um den Richtlinien für Bedienungshilfen in Material Design für die Größe von Berührungszielen zu entsprechen. Der Berührungszielbereich einer Schaltfläche wird beispielsweise auf eine Mindestgröße von 48 × 48 dp erweitert, auch wenn Sie die Größe der Schaltfläche kleiner festlegen. Dadurch wird Compose Material an das Verhalten von Material Design Components angepasst. So ist das Verhalten konsistent, wenn Sie Views und Compose mischen. Diese Änderung sorgt auch dafür, dass beim Erstellen der Benutzeroberfläche mit Compose Material-Komponenten die Mindestanforderungen für die Barrierefreiheit von Touch-Zielen erfüllt werden.
- Stabile Unterstützung für Navigation Rail
- Eine Reihe zuvor experimenteller APIs wird auf stabil umgestellt.
- Unterstützung für neuere Versionen von Kotlin
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 Material-Komponenten erweitert, um die Richtlinien für Bedienungshilfen für die Größe des Berührungszielbereichs von Material zu erfüllen. Der Berührungszielbereich einer Schaltfläche wird beispielsweise auf eine Mindestgröße von 48 × 48 dp erweitert, auch wenn Sie die Größe der Schaltfläche kleiner festlegen. Dadurch wird Compose Material an das Verhalten von Material Design Components angepasst. So ist das Verhalten konsistent, wenn Sie Views und Compose mischen. Diese Änderung sorgt auch dafür, dass beim Erstellen der Benutzeroberfläche mit Compose Material-Komponenten die Mindestanforderungen für die Barrierefreiheit von Touch-Zielen erfüllt werden.
Fehlerkorrekturen
- Es wurden bessere Debugging-Informationen für den Layout-Inspector hinzugefügt, wenn Modifikatoren für das Mindest-Touch-Ziel untersucht 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
- Eckradius für
Checkbox
es korrigieren (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, um mit Kotlin
1.6.0
kompatibel zu sein
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
- Ripples und andere Hinweise werden jetzt nur noch verzögert, wenn sie sich in einem Modifier.scrollable()-Container befinden, anstatt immer bei einem Down-Ereignis verzögert zu werden. (Ibefe0, b/203141462)
Version 1.1.0-beta01
27. Oktober 2021
androidx.compose.material:material-*:1.1.0-beta01
wird veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.
Neue Funktionen
- Ripples unterstützen jetzt Hover- und Fokusstatus. Wenn Sie also den Mauszeiger auf eine Komponente wie „Button“ bewegen oder den Fokus darauf legen, 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
- Für „Layout“ wurde eine überladene Version ohne untergeordnete Elemente hinzugefügt, die effizienter ist (Ib0d9a).
- Implementierung von
ExposedDropdownMenu
basierend aufExposedDropdownMenuBox
mitTextField
undDropdownMenu
(If60b2) dismissOnOutsideClick
wurdePopupProperties
hinzugefügt und ersetztdismissOnClickOutside
, das eingestellt wurde. Die neue Eigenschaft empfängt die Klickposition und die Ankergrenzen, wodurch sich genauer steuern lässt, ob „onDismissRequest“ aufgerufen werden soll oder nicht. Das kann beispielsweise nützlich sein, um zu verhindern, dass ein Anker bei Berührungen des Ankers entfernt wird.updateAndroidWindowManagerFlags
wurdePopupProperties
hinzugefügt, um eine detaillierte Steuerung der Flags zu ermöglichen, die vom Pop-up an den Android WindowManager übergeben werden. Der Parameter des Lambda ist das Flag, das aus den PopupProperties-Werten berechnet wird, die zu WindowManager-Flags führen, z.B. „focusable“. Das Ergebnis der Lambda-Funktion sind die endgültigen Flags, die an den Android-WindowManager übergeben werden. Standardmäßig werden die aus Parametern berechneten Flags durch updateAndroidWindowManagerFlags nicht geändert. Diese API sollte nur mit Vorsicht und nur in Fällen verwendet werden, 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ügt eine Mindestgröße für Berührungszielbereiche für Material-Komponenten hinzu, die keinen zugänglichen Berührungszielbereich haben. Da dadurch zusätzlicher Abstand um Komponenten herum eingefügt wird, um sicherzustellen, dass sie einen ausreichend großen Berührungszielbereich haben, kann sich die Darstellung vorhandener Benutzeroberflächen ändern, bei denen davon ausgegangen wird, dass die Größe dieser Komponenten ihrer visuellen Größe entspricht und die Größe des Berührungszielbereichs nicht berücksichtigt wird. Sie können das experimentelle
LocalMinimumTouchTargetEnforcement
-Kompositionslokal verwenden, um dieses Verhalten in einer Hierarchie zu deaktivieren. Dies ist jedoch nur als vorübergehende Lösung gedacht, während vorhandene Benutzeroberflächen aktualisiert werden, um die neue Mindestgröße zu berücksichtigen. (I9b966, b/149691127, b/171509422) - Die experimentelle Schnittstelle „TextFieldColorsWithIcons“ wurde hinzugefügt. Sie erweitert „TextFieldColors“ um „InteractionSource“ für „leadingColor“ und „trailingColor“. So kann das Erscheinungsbild von TextField entsprechend dem Fokusstatus geändert werden. (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
- Die Methoden
performGesture
undGestureScope
wurden verworfen und durchperformTouchInput
undTouchInjectionScope
ersetzt. (Ia5f3f, b/190493367) touchBoundsInRoot
wurde zuSemanticsNode
hinzugefügt. Diese enthält die Mindestgröße für Berührungszielbereiche, damit Entwickler sicherstellen können, dass Berührungszielbereiche die Mindestanforderungen für die Barrierefreiheit erfüllen. (I2e14b, b/197751214)
Fehlerkorrekturen
- Zulassen, dass sich die Grenzen des Berührungszielbereichs über den Clipbereich hinaus erstrecken, um die Mindestgröße des Berührungszielbereichs zu erreichen. (I43e10, b/171509422)
- Das
Divider
-Composable wurde aktualisiert, umDp.Hairline
für den Parameter „thickness“ (Dicke) zu berücksichtigen. So können unabhängig von der Displaydichte Trennlinien mit einer Breite von einem Pixel 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 aktualisiert und hängt jetzt von Kotlin1.5.30
ab. (I74545)
API-Änderungen
- Es wurde eine Testmethode zum Abrufen der beschnittenen Grenzen hinzugefügt. (I6b28e)
- Der ViewConfiguration wurde eine Mindestgröße für den Berührungszielbereich hinzugefügt, die in der Semantik und bei der Zeigereingabe verwendet wird, um die Barrierefreiheit zu gewährleisten. (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.
Externe Beiträge
- Das Verhalten von „SwipeableState“ wurde korrigiert, wenn der Wisch-Offset 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 Methode
DrawScope#drawImage
wurde aktualisiert und verwendet jetzt Quell- und Zielrechtecke, um einen optionalen Parameter „FilterQuality“ zu verwenden. Das ist nützlich für Pixelkunst, die beim Hochskalieren für pixelbasierte Kunst bewusst verpixelt werden soll. Die Composables „BitmapPainter“ und „Image“ wurden aktualisiert, sodass sie auch einen optionalen Parameter „FilterQuality“ verwenden (Ie4fb0, b/180311607). - BadgeBox wurde in BadgedBox umbenannt und die Parameter wurden so geändert, dass sie die Badge-Composable-Funktion akzeptieren. Die Komponente „Badge“ wurde hinzugefügt. Sie enthält die typischen Badge-Inhalte für eine „BadgedBox“. (I639c6)
- Die Komponente „NavigationRail“ wurde hinzugefügt. Informationen zur Verwendung finden Sie in der Dokumentation und in den Beispielen (I8de77).
Fehlerkorrekturen
- Ein unten ausgerichtetes NavigationRail-Beispiel und eine Demo der Catalog-App wurden hinzugefügt. (I3cffc)
- Dialoge folgen jetzt dem Größenverhalten der Plattform. Setzen Sie „usePlatformDefaultWidth“ auf „false“, um dieses Verhalten zu überschreiben. (Iffaed, b/192682388)
- Der Katalog-App wurde eine Demo für die Navigationsleiste hinzugefügt. (I04960)
- Der Katalog-App wurde eine Badge-Demo 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 zur Unterstützung der Compose-Version 1.0.2
. 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
- Die Abhängigkeit wurde auf Kotlin
1.5.21
aktualisiert.
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 Version 1.0.0
Dies ist die erste stabile Version von Compose. Weitere Informationen finden Sie 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 es zu folgendem Absturz kommen:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
Um das Problem zu beheben, erhöhen Sie vorübergehend die minSdkVersion in Ihrer
build.gradle
-Datei auf 24 oder höher. 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. Setzen Sie
usePlatformDefaultWidth
auf „false“, 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
- Die Komponente
BadgeBox
wurde hinzugefügt. Informationen zur Verwendung finden Sie in der Dokumentation und in den Beispielen (I5e284). useDefaultMaxWidth
inPopupProperties
wurde inusePlatformDefaultWidth
umbenannt. (I05710)- Dialogfelder können jetzt die gesamte Bildschirmbreite nutzen. (I83929, b/190810877)
- Implementierung des experimentellen Bereichsschiebereglers hinzugefügt (I2f4b3)
Fehlerkorrekturen
- Gemäß den Material Design-Spezifikationen wird für OutlinedTextField mit ungültiger Eingabe nicht mehr die Fehlerfarbe für das Label verwendet, wenn das Label als Platzhalter verwendet wird. Letzteres ist der Fall, wenn im Textfeld kein Eingabetext vorhanden ist und das Textfeld nicht fokussiert ist. Damit hat sich auch die Bedeutung des Parameters
error:Boolean
in der FunktionTextFieldColors.labelColor()
geändert: Er gibt jetztfalse
zurück, auch wenn die Eingabe ungültig ist, sofern das Label als Platzhalter verwendet wird. (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
- Der Parameter „Shape“ wurde dem OutlinedTextField hinzugefügt, um die Form des Rahmens anpassen zu können (I8f39e, b/181322957).
- „TextOverflow“ wird in eine Inline-Klasse geändert. (I433af)
Fehlerkorrekturen
- Der Scrim in BottomDrawer, BackdropScaffold und ModalBottomSheetLayout verschwindet, wenn Color.Unspecified übergeben wird (I2d899, b/182063309)
Hinzugefügte Profilregeln
In dieser Version werden den folgenden Compose-Modulen Profilregeln hinzugefügt (I14ed6):
- 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
angegeben, die sich im Verzeichnissrc/main
oder einem entsprechenden Verzeichnis befindet. In der Datei wird eine Regel pro Zeile angegeben. Eine Regel ist in diesem Fall ein Muster, das mit Methoden oder Klassen in der Bibliothek abgeglichen wird. Die Syntax für diese Regeln ist eine Obermenge des menschenlesbaren ART-Profilformats, das bei der Verwendung vonadb shell profman --dump-classes-and-methods ...
verwendet wird. Diese Regeln können entweder auf Methoden oder auf Klassen ausgerichtet sein.Eine Methodenregel hat das folgende Muster:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Eine Klassenregel hat das folgende Muster:
<CLASS_DESCRIPTOR>
Dabei 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. Die Methodefun isPlaced(): Boolean
fürLayoutNode
hat beispielsweise die SignaturisPlaced()Z
.Diese Muster können Platzhalter (
**
,*
und?
) enthalten, damit eine einzelne Regel mehrere Methoden oder Klassen abdeckt.
Was bewirken 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
- Bibliotheken können diese Regeln definieren, die in AAR-Artefakten enthalten sind. Wenn dann ein APK erstellt wird, das diese Artefakte enthält, werden diese Regeln zusammengeführt und die zusammengeführten Regeln werden verwendet, um ein kompaktes binäres ART-Profil zu erstellen, das spezifisch für das APK ist. ART kann dieses Profil dann verwenden, wenn die APK auf Geräten installiert wird, um ein bestimmtes Subset der Anwendung vorab zu kompilieren und so die Leistung der Anwendung zu verbessern, insbesondere beim ersten Ausführen. Hinweis: Dies hat keine Auswirkungen auf debugfähige 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
Verhaltensändernde API-Änderung
- VERHALTENSÄNDERUNG: Die Karte verarbeitet jetzt Klicks. Klicks, die über
Card(Modifier.clickable)
hinzugefügt werden, werden ignoriert. 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 klickbare Funktionen verarbeitet: indication, interactionSource, enabled/disabled. Es war nicht möglich, eine normale, nicht klickbare Karte mit dem
Modifier.clickable
zu verwenden, da die Karte in diesen Fällen die Ripple-Anzeige nicht beschneidet.
- Es wurde eine neue Kartenüberladung hinzugefügt, die Klicks sowie andere klickbare Funktionen verarbeitet: indication, interactionSource, enabled/disabled. Es war nicht möglich, eine normale, nicht klickbare Karte mit dem
- VERHALTENSÄNDERUNG: „Surface“ verarbeitet jetzt Klicks. Klicks, die über
Surface(Modifier.clickable)
hinzugefügt werden, werden ignoriert. Verwenden Sie die neue experimentelle Überladung von „Surface“, die „onClick“ akzeptiert. (I73e6c, b/183775620)- Es wurde eine neue Surface-Überladung hinzugefügt, die Klicks sowie andere anklickbare Funktionen verarbeitet: Indikation, interactionSource, aktiviert/deaktiviert. Es war nicht möglich, eine normale, nicht klickbare Oberfläche mit
Modifier.clickable
zu verwenden, da die Oberfläche in diesen Fällen die Wellenanzeige nicht beschneidet.
- Es wurde eine neue Surface-Überladung hinzugefügt, die Klicks sowie andere anklickbare Funktionen verarbeitet: Indikation, interactionSource, aktiviert/deaktiviert. Es war nicht möglich, eine normale, nicht klickbare Oberfläche mit
API-Änderungen
FabPosition
wurde von einer Enumeration in eine Inline-Klasse konvertiert, um eine mögliche zukünftige Erweiterung zu unterstützen (I030fb).- Die Verwendung von Enums wurde in Inline-Klassen umgestaltet, um Probleme mit erschöpfenden „when“-Anweisungen zu vermeiden, wenn neue Enum-Werte hinzugefügt werden. (I2b5eb)
- Es wurde ein Tipp-Timeout für klickbare/umschaltbare Elemente hinzugefügt, um zu verhindern, dass während eines Scroll- oder Ziehvorgangs ein Ripple-Effekt angezeigt wird (Ia2704, b/168524931).
- Die Semantik-Properties „ContentDescription“ und „Text“ sind nicht mehr einzelne Werte, sondern Listen. So können sie zusammengeführt werden, anstatt aneinandergehängt zu werden. Außerdem wurden bessere Test-APIs bereitgestellt, um diese Änderungen zu nutzen (Ica6bf, b/184825850).
Modifier.focusModifier()
wurde verworfen und durchModifier.focusTarget()
ersetzt (I6c860)- Das
FocusState
-Enum wurde durch eineFocusState
-Schnittstelle ersetzt (Iccc1a, b/187055290) LocalRippleNativeRendering
wurde entfernt, da die View-basierte Ripple-Implementierung stabil ist (I7fab3, b/188569367).
Fehlerkorrekturen
Modifier.onGloballyPositioned()
wurde geändert, um die Koordinaten dieses Modifikators in der Modifikator-Kette zu melden, nicht die Layoutkoordinaten nach Anwendung aller Modifikatoren. Das bedeutet, dass die Reihenfolge der Modifizierer jetzt beeinflusst, welche Koordinaten gemeldet werden. (Ieb67d, b/177926591)- Für den vorhandenen Compose Material-Katalog wurde eine README-Datei 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 keine Erweiterungsmethoden mehr für die Routenunterstützung in Navigation Compose 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 und verwendet intern
RippleDrawable
auf Android-Geräten. Das bedeutet, dass Ripple-Animationen im RenderThread ausgeführt werden und daher auch dann flüssig dargestellt werden, wenn der UI-Thread ausgelastet ist, z. B. beim Navigieren zwischen Bildschirmen. Die API-Oberfläche von Ripple ändert sich dadurch nicht, aber es kann zu Verhaltensänderungen kommen. Zur Unterstützung der Migration wurdeLocalRippleNativeRendering
hinzugefügt. Geben Sie für diese CompositionLocal den Wertfalse
an, um auf die vorherige Ripple-Implementierung im CompositionLocalProvider zurückzugreifen. Diese API ist temporär und wird in Zukunft entfernt. Wenn Sie also auf Probleme stoßen, die dazu führen, dass Sie diese API verwenden, melden Sie bitte einen Fehler. (I902f8, b/168777351, b/183019123) - Es wurden die Accessibility-APIs „CollectionInfo“ und „CollectionItemInfo“ hinzugefügt, mit denen Sammlungen und ihre Elemente für Bedienungshilfen markiert werden können (Id54ef, b/180479017).
- Die Bedienungshilfen-API
error
wurde hinzugefügt. Damit kann ein Knoten markiert werden, der ungültige Eingaben enthält (I12997, b/180584804, b/182142737).
Fehlerkorrekturen
- Die Implementierung von Compose Material-Katalog-Insets wurde aktualisiert: https://github.com/google/accompanist/pull/365. (I25dc3)
- Untergeordnete Elemente vom Typ „Row“ und „Column“ mit „weight(fill = false)“ sorgen nicht mehr dafür, dass das übergeordnete Element den gesamten verfügbaren Platz auf der Hauptachse ausfüllt. (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 bestehenden Compose Material-Katalog wurden Kachelbilder für Komponenten, eine Designauswahl 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
DrawerState
-Status wird nicht mehr auf den experimentellen SwipeableState erweitert.- API-ÄNDERUNG:
BottomDrawerState
ist jetzt als „Experimentell“ gekennzeichnet, um der bereits als „Experimentell“ gekennzeichneten BottomDrawer-Komponente zu entsprechen (I81114, b/181656094).
- API-ÄNDERUNG:
- Benennen Sie
hideSoftwareKeyboard
undshowSoftwareKeyboard
aufSoftwareKeyboardController
inhide()
bzw.show()
um.- Die vollständige CompositionLocal-Schnittstelle für LocalSoftwareKeyboardController wird bereitgestellt, sodass sie festgelegt werden kann (besonders nützlich in Tests) (I579a6).
- Die LiveRegion-Accessibility-API wurde hinzugefügt. Wenn ein Knoten als Live-Bereich markiert ist, werden die Nutzer von den Barrierefreiheitsdiensten automatisch über Änderungen informiert (Idcf6f, b/172590946).
Fehlerkorrekturen
- Implementierung des Compose Material-Katalogs zum vorhandenen Modul hinzugefügt. Derzeit fehlen: Kachelbilder für Komponenten, Themenauswahl (wird in nachfolgenden Änderungen hinzugefügt). (Ie7a94)
Version 1.0.0-beta03
24. März 2021
androidx.compose.material:material-*:1.0.0-beta03
wird veröffentlicht. Version 1.0.0-beta03 enthält diese Commits.
API-Änderungen
DefaultMonotonicFrameClock
ist veraltet. Wenn SiewithFrameNanos
oderRecomposer.runRecomposeAndApplyChanges
ohneMonotonicFrameClock
aufrufen, wird jetztIllegalStateException
ausgegeben. (I4eb0d)- Es wurde eine neue API
LeadingIconTab
hinzugefügt, mit der ein Symbol und Inline-Text auf einem Tab angezeigt werden können. (I23267)
Externe Beiträge
- [von Jossi Wolf]
BottomDrawer
umschließt jetzt den Inhalt des Drawer-Slots.BottomDrawer
löst keineIllegalStateException
aus, wenn das übergeordnete Element eine unendliche Höhe hat. Die untere Schublade wird jetzt in einem erweiterten Zustand geöffnet, wenn sie kleiner als 50% des übergeordneten Elements ist. Die Dokumentation zuBottomDrawerState
undModalBottomSheetLayoutState
wurde aktualisiert.BottomDrawerState#isOpen
gibt jetzt „true“ zurück, wenn der Status „offen“ 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
- Es wurde eine neue lokale API für die
LocalSoftwareKeyboardController
-Zusammensetzung 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 standardmäßige horizontale Ausrichtung für TopAppBar und BottomAppBar wurde in „Start“ geändert, was mit der Ausrichtung für Row übereinstimmt (Ib2dc7).
- Es wurde ein neues Modul und eine neue Platzhalter-UI für einen Compose Material-Katalog hinzugefügt, der derzeit in vorhandenen Integrations-Testdemos verschachtelt ist. (Idfcb3)
androidx.compose.ui:ui
hängt nicht mehr von AppCompat oder Fragment ab. Wenn Sie in Ihrer Anwendung eine ComposeView verwenden und Fragment und/oder AppCompat nutzen, müssen Sie AppCompat 1.3+ / Fragment 1.3+ verwenden. Diese Versionen sind erforderlich, um die für ComposeView erforderlichen Lifecycle- und SavedState-Inhaber richtig 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ößenmodifizierer 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 ImageBitmap- und ImageVector-Begleitobjekte. 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)
- Geräteprofil-Assertions entfernt (I798d2)
- Der SoftwareKeyboardController-Callback wurde aus allen Textfeldern entfernt und wird in Kürze durch eine neue API ersetzt. (Iae869, b/168778053)
- Die Lambda-Ausdrücke für die Aktionen „Switch“, „Checkbox“ und „RadioButton“ sind jetzt nullable. Die Beispiele für das Kontrollkästchen in einer anklickbaren Zeile wurden aktualisiert, um diese Funktion zu verwenden. (If601b, b/171819073)
InteractionState
wurde durch[Mutable]InteractionSource
ersetzt.- Schnittstellen sind für das Ausgeben / Erfassen von Interaktionsereignissen verantwortlich.
- Anstatt
interactionState = remember { InteractionState() }
an Komponenten wieButton
undModifier.clickable()
zu übergeben, verwenden SieinteractionSource = remember { MutableInteractionSource() }
. - Statt
Interaction.Pressed in interactionState
sollten Sie stattdessen die Erweiterungsfunktionen für InteractionSource verwenden, z. B. InteractionSource.collectIsPressedAsState(). - Bei komplexen Anwendungsfällen können Sie InteractionSource.interactions verwenden, um den Stream von Interaktionen zu beobachten. Weitere Informationen finden Sie in der Dokumentation und den Beispielen zu „InteractionSource“.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- AccessibilityMananger-Schnittstelle und LocalAccessibilityMananger in CompositionLocals hinzugefügt (I53520)
- Die eingestellten LayoutCoordinates-Methoden wurden entfernt. Verwenden Sie stattdessen die Funktion anstelle der Eigenschaft für „positionInParent“ und „boundsInParent“ (I580ed, b/169874631, b/175142755).
- Schieberegler unterstützen jetzt den Status „Aktiviert“/„Deaktiviert“ (I6d56b, b/179793072)
- Es wurde eine neue TextInputSession für Eingabesitzungen aus Low-Level-Textkomponenten wie CoreTextField erstellt. (I8817f, b/177662148)
- „AnimationEndReason.Interrupted“ wurde entfernt. CancellationException wird ausgelöst, wenn die Animation unterbrochen wird. (I2cbbc, b/179695417)
@ExperimentalRippleApi
wurde entfernt undRippleAlpha
wurde in eine Klasse mit Attributen 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. Informationen zur 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)
- „selectionGroup“-Modifikator hinzugefügt, mit dem Sammlungen von Tabs oder Optionsfeldern für Barrierefreiheitszwecke markiert werden können (Ie5c29)
LazyListState.animateScrollToItem hinzufügen
Mit dieser Methode wird ein sanfter Bildlauf zu einem bestimmten Element in der Liste ausgeführt. (I4bfd7)
ScrollableState.smoothScrollBy()
wurde inanimateScrollBy()
umbenannt.LazyListState.snapToItemIndex()
wurde inscrollToItem()
umbenannt.ScrollState.smoothScrollTo()
wurde inanimateScrollTo()
umbenannt (I35ded).Alle Composables, die mit
@ReadOnlyComposable
gekennzeichnet sind, werden jetzt zur Kompilierzeit validiert, um sicherzustellen, dass sie nur andere@ReadOnlyComposables
aufrufen (I58961).Die TargetAnimation API wurde entfernt. (If47d1, b/177457083)
Die Scrollposition in Modifier.verticalScroll()/horizontalScroll() wird jetzt mit Ints 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 Suspend-Animation anstelle vordefinierter Decays. (I02b86, b/175294473)
Größenmodifizierer 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 Fundamentpaket verschoben. VelocityTracker wurde von ui.gesture zu ui.input.pointer verschoben. (Iff4a8, b/175294473)
drawerState.open() und drawerState.close() sind jetzt suspend-Funktionen. Verwenden Sie rememberCoroutineScope(), um den Bereich der Komposition abzurufen, um sie aufzurufen (I16f60, b/175294473).
„Providers“ wurde in „CompositionLocalProvider“ umbenannt.
- Der Konstruktor „Composition“ akzeptiert keinen Schlüsselparameter mehr und wurde eingestellt.
- currentCompositeKeyHash wurde in eine zusammensetzbare Property auf oberster Ebene anstelle einer zusammensetzbaren Funktion auf oberster Ebene umgewandelt.
- „CompositionData“ und „CompositionGroup“ wurden in den Namespace „androidx.compose.runtime.tooling“ verschoben.
- ComposableLambda ist jetzt eine Schnittstelle anstelle einer konkreten Klasse und hat keine Typparameter mehr.
- ComposableLambdaN ist jetzt eine 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
@TestOnly
-Funktion „clearRoots“ auf oberster Ebene wurde entfernt. Das ist nicht mehr erforderlich. - Die Funktionen „keySourceInfoOf“ und „resetSourceInfo“ wurden entfernt. Sie sind nicht mehr erforderlich.
- Composer.collectKeySourceInformation wurde entfernt. Das ist nicht mehr erforderlich.
- Die Methoden „isJoinedKey“, „joinedKeyLeft“ und „joinedKeyRight“ wurden entfernt. Sie sind nicht mehr erforderlich.
- Verschiedene APIs der obersten Ebene wurden verschoben und in verschiedenen Dateien neu organisiert. Aufgrund der Dateiklassensemantik von Kotlin wird dadurch die binäre Kompatibilität, nicht aber die Quellkompatibilität beeinträchtigt. Für die meisten Nutzer sollte das 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 einer einfachen Lambda-Funktion. Sie können den Status über
rememberDraggableState { delta -> }
erstellen, um das gleiche Verhalten wie zuvor zu erhalten (Ica70f, b/175294473).ZoomableController.smoothScaleBy und ZoomableController.stopAnimation sind jetzt suspend-Funktionen. (I7f970, b/177457083)
Einige zuvor verworfene APIs wurden gelöscht (Ice5da, b/178633932)
Folgende Änderungen an der Material API wurden vorgenommen:
- Der Parameter „contentPadding“ wurde der Top-/BottomAppBar hinzugefügt, um das Anpassen des Standardabstands zu ermöglichen.
- Die Parameter in BackdropScaffold wurden neu angeordnet, um den API-Richtlinien zu entsprechen, nach denen 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 Reihenfolge der Parameter in
ButtonDefaults.buttonColors()
wurde geändert. Da sich der Typ der Parameter nicht geändert hat, führt dies nicht zu einem Fehler in Ihrem Code. Sie müssen jedoch entweder benannte Parameter verwenden oder die Reihenfolge manuell aktualisieren, da Ihr Code sonst nicht wie bisher funktioniert. - Der Parameter
secondaryVariant
wurde zudarkColors()
hinzugefügt. Diese Farbe ist im dunklen Design in der Regel dieselbe wiesecondary
. Sie wird jedoch zur Konsistenz und für weitere Anpassungen hinzugefügt. - ElevationDefaults und animateElevation() wurden aus der öffentlichen API entfernt, da sie nicht häufig verwendet wurden.
onValueChangeEnd
inSlider
wurde inonValueChangeFinished
umbenannt und kann jetzt auch null sein.- Der Parameter
text
inSnackbar
wurde aus Konsistenzgründen incontent
umbenannt. - Der Parameter
contentPadding
wurde zuDropdownMenuItem
hinzugefügt, um das Anpassen des Standardabstands zu ermöglichen. Außerdem istcontent
jetzt eine Erweiterung vonRowScope
. ModalDrawerLayout
wurde inModalDrawer
umbenannt.BottomDrawerLayout
wurde inBottomDrawer
umbenannt.- (I1cc66)
BasicTextField akzeptiert jetzt Brush anstelle von Color für eine bessere Anpassung (I83a36)
imageResource und vectorResource sind jetzt Erweiterungsfunktionen für ImageBitmap- und ImageVector-Begleitobjekte. Die Funktionen load{Image,Vector,Font}Resource wurden gelöscht. (I89130)
Die Methode „Indication#createIndication()“ wurde in „Indication#rememberUpdatedIndication(InteractionState)“ umbenannt und der Parameter „InteractionState“ wurde aus „IndicationInstance#drawIndication()“ entfernt. „IndicationInstance“ sollte nur für das Zeichnen visueller Effekte zuständig sein und nicht für das Starten von Animationen oder das Schreiben von Status als Reaktion auf Änderungen von „InteractionState“. 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
- Es wurde eine neue lokale Kompositions-API für LocalSoftwareKeyboardController hinzugefügt, um die vorherige SoftwareKeyboardController-Schnittstelle für 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 Remember-Schlüssel erforderlich, um anzugeben, wann die Pointer-Eingabeerkennungs-Coroutine für neue Abhängigkeiten neu gestartet werden soll. (I849cd)
- BottomDrawerLayout und ListItem wurden mit @ExperimentalMaterialApi (Id766e) gekennzeichnet.
- PaddingValues.Absolute wurde hinzugefügt und kann in APIs verwendet werden, die PaddingValues akzeptieren. (Ia5f30)
- onImeActionPerformed ist veraltet. Verwenden Sie stattdessen KeyboardActions (If0bbd, b/179071523).
- Um die Namenskonventionen besser an ImageBitmap und ImageVector anzupassen, wurde ImagePainter in BitmapPainter umbenannt, um VectorPainter zu entsprechen. (Iba381, b/174565889)
- Animatable.snapTo und Animatable.stop sind jetzt suspend-Funktionen (If4288)
- ComponentActivity.setContent wurde in das Modul androidx.activity:activity-compose verschoben und befindet sich jetzt unter androidx.activity.compose.setContent. (Icf416)
- Die Methoden „Destructuring“ und „copy()“ 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“ und nicht „() -> Indication“. (I5eeea, b/157150564)
- AlertDialog und DropdownMenu sind vorerst nur für Android verfügbar. Der DropdownMenu-Komponente wurde der Parameter „PopupProperties“ hinzugefügt, um das zugrunde liegende Popup weiter zu konfigurieren. (I9c443)
- „loadFontResource“ ist veraltet. Verwenden Sie stattdessen „fontResource“. „imageResource“, „loadImageResource“, „vectorResource“ und „loadVectorResource“ sind veraltet. Verwenden Sie stattdessen „painterResource“. (I6b809)
- Die Parameter
toggle
undtoggleModifier
wurden aus DropdownMenu entfernt. Die ParameterdropdownModifier
,dropdownOffset
unddropdownContent
wurden inmodifier
,offset
undcontent
umbenannt. DropdownMenu verhält sich jetzt konsistent zuPopup
. Das übergeordnete Layout wird für die Position des Menüs verwendet. In den meisten Fällen können Sietoggle
als gleichgeordnetes Element vonDropdownMenu
verschieben und beide in einBox
einfügen. 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)
- Semantische 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 auf einer Achse verwenden (I0ba93, b/175294473). - Umgebungen wurden umbenannt, um der Umbenennung von „Ambient“ in „CompositionLocal“ zu entsprechen. Ambients hießen früher „AmbientFoo“, jetzt heißen CompositionLocals „LocalFoo“. (I2d55d)
- Die Auswahl wurde in die Grundlage verschoben. (I7892b)
- Ähnlich wie wir zuvor die zusammensetzbare Funktion
state { 0 }
entfernt und die Verwendung vonremember { mutableStateOf(0) }
gefördert haben, werden wir die zusammensetzbare FunktionsavedInstanceState { 0 }
entfernen. Verwenden Sie stattdessenrememberSaveable { mutableStateOf(0) }
. Der Wert wird automatisch gespeichert und wiederhergestellt, wenn der Typ, der in MutableState verwendet wird, im Bundle gespeichert werden kann. Wenn Sie zuvor ein benutzerdefiniertes Saver-Objekt übergeben haben, müssen Sie jetzt eine neue Überladung von „rememberSaveable“ mit dem ParameterstateSaver
verwenden. Die Verwendung sieht so aus:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004) - ProgressBarRangeInfo.Indeterminate wurde hinzugefügt, um unbestimmte Fortschrittsanzeigen für die Barrierefreiheit zu kennzeichnen (I6fe05).
@ComposableContract wurde zugunsten von drei spezifischeren Annotationen 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 oder den Wert mehr haben (I0484d).rememberSavedInstanceState() wurde in rememberSaveable() umbenannt und in das Paket androidx.compose.runtime.saveable verschoben. (I1366e, b/177338004)
„Saver“, „listSaver()“, „mapSaver()“ und „autoSaver“ wurden von „androidx.compose.runtime.savedinstancestate“ nach „androidx.compose.runtime.saveable“ verschoben (I77fe6).
Parameter für RounderCornerShape, CutCornerShape und CornerBasedShape wurden von „left“/„right“ in „start“/„end“ umbenannt, um die automatische Spiegelung der Form in RTL-Richtung 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 „ChangedTab“ und der Parameterlabel
von „BottomNavigationItem“ wurden auf „nullable“ gesetzt, um das Verhalten der Komponente besser zu veranschaulichen, wenn diese Parameter angegeben werden oder nicht, da dies sich auf die Größe und das Layout der Komponente auswirkt. Wenn Sie derzeitemptyContent()
übergeben, um keinen Text, kein Symbol und kein Label darzustellen, sollten Sie stattdessennull
verwenden. (I57ed4)Der Farbparameter „contentColorFor“ wurde in „backgroundColor“ umbenannt (I5bb67).
„TabDefaults“ wurde verworfen und durch „TabRowDefaults“ ersetzt. (I0f189)
Die ColorMatrix API wurde eingeführt, um RGB-Werte von Quellinhalten zu ändern. Die ColorFilter API wurde als Schnittstelle refaktoriert und entspricht der Implementierung von PathEffect. (Ica1e8)
AnimatedValue/Float wurde eingestellt. Verwenden Sie stattdessen „Animatable“. (I71345, b/177457083)
Die API „SemanticsProperties.PaneTitle“ wurde hinzugefügt. (I20d5a)
Den Komponenten „Tab“ und „BottomNavigationItem“ wurden aktivierte Parameter hinzugefügt, um zu verhindern, dass sie angeklickt werden können. „BottomNavigationItem“ wurde in „RowScope.BottomNavigationItem“ geändert, um die Layoutanforderungen in der API besser auszudrücken. (Id683d)
„tapGestureFilter“, „doubleTapGestureFilter“, „longPressGestureFilter“ und „pressIndicaitonGestureFilter“ wurden eingestellt. Verwenden Sie stattdessen Modifier.clickable oder Modifier.pointerInput mit der Funktion detectTapGestures. (I6baf9, b/175294473)
Der Funktion „createOutline“ der Form wird der Parameter „layoutDirection“ hinzugefügt. So lassen sich Formen erstellen, die die Layoutrichtung berücksichtigen. (I57c20, b/152756983)
Recomposer.current()
wurde entfernt. [Zusammenfassung]ComposeView wird jetzt standardmäßig verzögert erstellt und verwendet Recomposers mit Fensterbereich, die vom ViewTreeLifecycleOwner für das Fenster gesteuert werden. Die Recomposition und auf „withFrameNanos“ basierende Animations-Ticks werden pausiert, während der Lebenszyklus des Hosts angehalten wird. (I38e11)
Fehlerkorrekturen
- Das Symbol wird jetzt so skaliert, dass es der Größe entspricht, wobei alle angewendeten Größenmodifizierer 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
(I5d20e) eingestuft. - Dem Bild und dem Symbol wurde der Parameter „Inhaltsbeschreibung“ hinzugefügt. Sie wird verwendet, um Bedienungshilfen (I2ac4c) eine Beschreibung zu geben.
- Änderungen an zustandsorientierten Materialparameter-Schnittstellen, sodass sie @Composable-Funktionen haben, die
State<T>
zurückgeben. FügtAnimatable.asState()
hinzu, um die Konvertierung eines Animatable in einen State zu vereinfachen. Außerdem wird „animateElevation“ in eine Suspend-Erweiterung für „Animatable“ geändert. (If613c) - Snackbar, SnackbarHost und SnackbarHostState sind nicht mehr
@ExperimentalMaterialAPI
(Id1fb5) - Die Klassen „Typography“, „Shapes“ und „TabPosition“ sind keine Datenklassen mehr. Es wurde eine Kopierfunktion für Typografie und Formen hinzugefügt, um die generierten Elemente zu ersetzen. (I40037)
- Einige zuvor verworfene Material-APIs (Ifaa25) wurden gelöscht.
Fehlerkorrekturen
- Die APIs „onCommit“, „onDispose“ und „onActive“ wurden zugunsten der APIs „SideEffect“ und „DisposableEffect“ eingestellt (If760e).
- Auf TransitionDefinition basierende Übergänge sind veraltet (I0ac57)
- Der Ausgangsstatus in „updateTransition“ wird jetzt unterstützt (Ifd51d).
- „WithConstraints“ wurde als „BoxWithConstraints“ überarbeitet und nach „foundation.layout“ verschoben. (I9420b, b/173387208)
scrollBy ohne Unterbrechung einstellen, scrollTo ohne Unterbrechung entfernen
Wir empfehlen jetzt, das Scrollen mit Suspend-Funktionen zu steuern und zu warten, bis das Scrollen abgeschlossen ist. Im Rahmen dieser Umstellung werden die Versionen dieser Funktionen, die nicht zum Sperren verwendet werden, eingestellt und/oder entfernt. (Ie9ced)
smoothScrollBy ohne suspend wird eingestellt Wir empfehlen jetzt, suspend-Funktionen zu verwenden, um das Scrollen zu steuern und zu warten, bis das Scrollen abgeschlossen ist. Im Rahmen dieser Umstellung werden die Versionen dieser Funktionen, die nicht suspendiert werden, eingestellt. (I12880)
ComposeContentTestRule
wurde eingeführt. Diese Klasse erweitertComposeTestRule
und definiertsetContent
, das ausComposeTestRule
entfernt wurde. Es wurde eine Factory-MethodecreateEmptyComposeRule()
hinzugefügt, die einComposeTestRule
zurückgibt und keine Activity für Sie startet. Verwenden Sie diese Option, wenn Sie Ihre Aktivität während des Tests starten möchten, z. B. mitActivityScenario.launch
(I9d782, b/174472899).Die in „Button“ und „FloatingActionButton“ verwendete Wellenanimation kann nicht mehr angepasst werden, indem eine neue Indication über „AmbientIndication“ bereitgestellt wird. Das war nie als Möglichkeit zum Anpassen dieser Komponenten vorgesehen. Dadurch sind diese Komponenten jetzt mit anderen Material-Komponenten konsistent. Informationen zum Anpassen von Ripples 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)
BasicTextField hat einen neuen Parameter namens
decorationBox
erhalten. Damit können dem Textfeld Dekorationen wie Symbole, Platzhalter und Labels hinzugefügt und der Trefferbereich vergrößert werden. (I16996)Fehlerbehebung: Die Breite des Material-Textfelds konnte nicht auf weniger als 280 dp festgelegt werden (I78373).
Der Parameter „canDrag“ wurde aus „Modifier.draggable“ entfernt (Ic4bec, b/175294473).
Entfernen Sie „displaySize“, da diese Eigenschaft vermieden werden sollte. In der Regel ist es besser, die Größe von onRoot() oder zumindest die Fenstergröße zu verwenden. (I62db4)
Eine Oberfläche kann jetzt mehrere untergeordnete Layouts haben. (I66a92, b/144488459)
invalidate und compositionReference() sind jetzt zugunsten von currentRecomposeScope bzw. rememberCompositionReference veraltet. (I583a8)
Ändert PopupPositionProvider, sodass fensterbezogene Koordinaten anstelle von globalen Koordinaten verwendet werden. Benennt parentGlobalBounds in anchorBounds um und ändert windowGlobalBounds in
windowSize: IntSize
(I2994a)„Duration“ und „Uptime“ werden durch „Long milliseconds“ ersetzt. Durch diesen Schritt wird die Abhängigkeit der Zeigereingabe von diesen Klassen entfernt. (Ia33b2, b/175142755, b/177420019)
Die AnimatedFloat.fling-Funktion, die FlingConfig akzeptiert, wurde entfernt. Verwenden Sie stattdessen „suspendAnimatable.animateDecay“. (I4659b, b/177457083)
Klickbare, ein- und ausschaltbare sowie auswählbare Elemente können jetzt außerhalb der Komposition erstellt werden (I0a130, b/172938345, b/175294473).
Die Funktion „Easing“ wurde in eine funktionale Schnittstelle (Ib14e5) geändert.
ScrollableColumn/Row wurden verworfen. Die Verwendung von „ScrollableColumn“ ist weniger effizient als „LazyColumn“, wenn Sie viele Inhalte haben, die gescrollt werden müssen, da mit „LazyColumn“ nur sichtbare Elemente zusammengestellt, gemessen und gezeichnet werden können. Um zu verhindern, dass Nutzer ineffiziente Methoden verwenden, haben wir beschlossen, ScrollableColumn und ScrollableRow einzustellen und stattdessen die Verwendung von LazyColumn und LazyRow zu fördern. Nutzer können sich weiterhin gegen das Lazy-Verhalten entscheiden und die Modifikatoren direkt verwenden, z. B. „Column(Modifier.verticalScroll(rememberScrollState()))“ (Ib976b, b/170468083).
Neue
items(count: Int)
-Factory-Methode für den Bereich von LazyColumn/LazyRow/LazyVerticalGrid.items(items: List)
unditemsIndexed(items: List)
sind jetzt Erweiterungsfunktionen und müssen daher manuell importiert werden, wenn sie verwendet werden. Neue Erweiterungsüberladungen für Arrays:items(items: Array)
unditemsIndexed(Array)
(I803fc, b/175562574)Experimentelle monotonicFrameAnimationClockOf-Methoden entfernt (Ib753f, b/170708374)
Globale Koordinatenmethoden wurden eingestellt und neue fensterbasierte Koordinatenmethoden eingeführt. (Iee284)
Es wurde „Modifier.toolingGraphicsLayer“ hinzugefügt, mit dem ein Grafikebenen-Modifikator hinzugefügt wird, wenn die Prüfung aktiviert ist. (I315df)
FocusRequester.createRefs ist jetzt als experimentell gekennzeichnet, da sich die Funktion ä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 in Tests verwenden (I532b6)
Die API für Vektorgrafiken wurde aktualisiert, um das Parsen von Farbtonanpassungen zu unterstützen, die auf den Stamm von Vektorgrafiken 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 so geändert, dass es aus Komponenten besteht und mathematische Operationen unterstützt. (Ib0447)
@ExperimentalTesting
wurde in@ExperimentalTestApi
umbenannt, um mit ähnlichen experimentellen API-Anmerkungen (Ia4502, b/171464963) konsistent zu sein.- Position in „DpOffset“ umbenannt und „getDistance()“ entfernt (Ib2dfd)
- Ranamed Color.useOrElse() to Color.takeOrElse() (Ifdcf5)
- Schaltfläche zu „foundation/Strings.kt“ hinzufügen (I4a5b7, b/172366489)
- FlowRow und FlowColumn wurden verworfen. 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 als intern festgelegt. Die Verwendung von „nativeClass“ in „equals“-Implementierungen wurde aktualisiert, sodass stattdessen „is MyClass“ verwendet wird. (I4f734)
Fehlerkorrekturen
- Unterstützung für deaktivierte und schreibgeschützte Textfelder hinzugefügt (I35279, b/171040474, b/166478534)
animate()
wurde durchanimateAsState()
ersetzt, das anstelle vonT
einState<T>
zurückgibt. Dies ermöglicht eine bessere Leistung, da der Ungültigkeitsbereich auf den Ort eingegrenzt werden kann, an dem der Statuswert gelesen wird. (Ib179e)- Fügen Sie die Semantics-Rollen-API hinzu und fügen Sie „Role“ als Parameter für den klickbaren, auswählbaren und umschaltbaren SemanticsModifier hinzu. „Modifier.progressSemantics“ wurde so geändert, dass es auch für „Slider“ 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 „Settle“-Animation und zum Ziehen in Modifier.swipeable hinzugefügt (Iaa17a, b/162408885)
- *Constants-Objekte wie ButtonConstants wurden umbenannt und enden jetzt mit „Defaults“, z. B. ButtonDefaults. Außerdem werden unnötige
default
-Präfixe aus Eigenschaften in diesen neuen Objekten entfernt. (Ibb915, b/159982740) Compose unterstützt Property-Getter, die Aufrufe von Composables ermöglichen. Die Unterstützung dafür wird nicht eingestellt, aber die Syntax zum Deklarieren eines Property-Getters als @Composable ändert sich.
Die jetzt eingestellte Syntax dafür bestand darin, das Attribut selbst zu kommentieren:
@Composable val someProperty: Int get() = ...
Die jetzt korrekte Syntax dafür besteht darin, den Getter der Property zu annotieren:
val someProperty: Int @Composable get() = ...
Beide Syntaxen funktionieren noch eine Weile, aber die eingestellte Syntax führt irgendwann zu einem Kompilierungsfehler. (Id9197)
Die
androidx.compose.material:material-ripple
-Bibliothek mit Ripple-APIs wurde hinzugefügt, damit interaktive Komponenten erstellt werden können, ohne dass die restliche Material-Bibliothek erforderlich ist. rememberRippleIndication wurde eingestellt und durch rememberRipple ersetzt. (Ibdf11)
Fehlerkorrekturen
- Lambdas in Offset-Modifizierern geben jetzt „IntOffset“ anstelle von „Float“ zurück. (Ic9ee5, b/174137212, b/174146755)
ShaderBrush wurde so umgestaltet, dass eine Shader-Instanz erst erstellt wird, wenn Größeninformationen der Zeichenumgebung verfügbar sind. Das ist nützlich, um Verläufe zu definieren, die zur Kompositionszeit die gesamten Zeichenbegrenzungen eines Composables einnehmen, ohne dass benutzerdefinierte DrawModifier-Implementierungen erforderlich sind.
Verworfene Konstruktor-APIs für Gradientenfunktionen zugunsten von Factory-Methoden für ein Gradient-Objekt. (I511fc, b/173066799)
„Modifier.focusObserver“ wurde eingestellt. Verwenden Sie stattdessen Modifier.onFocusChanged oder Modifier.onFocusEvent (I30f17, b/168511863, b/168511484).
LazyColumnFor, LazyRowFor, LazyColumnForIndexed und LazyRowForIndexed werden eingestellt. LazyColumn und LazyRow verwenden (I5b48c)
Dp.VectorConverter, Position.VectorConverter usw. wurden in „animation-core“ verschoben und die alten VectorConverter (If0c4b) sind veraltet.
Die Autofill API ist jetzt eine experimentelle API und erfordert die Einwilligung (I0a1ec).
Destrukturierungsdeklarationen zum Erstellen von FocusRequester-Instanzen hinzugefügt (I35d84, b/174817008)
„accessibilityLabel“ wurde in „contentDescription“ umbenannt. „accessibilityValue“ wurde in „stateDescription“ umbenannt. (I250f2)
Neue Funktion „infiniteRepeatable“ zum Erstellen eines InfiniteRepeatableSpec (I668e5)
Das Positionierungsverhalten von DropdownMenus wurde gemäß der Material-Spezifikation leicht geändert. (I34c72, b/168594123)
Unterstützung für InteractionState für TextFields wurde hinzugefügt. (I61d91)
„Modifier.clearAndSetSemantics“ wurde hinzugefügt, um die Semantik von untergeordneten Elementen zu löschen und neue festzulegen. (I277ca)
ContentDrawScope wurde in das Modul „ui-graphics“ verschoben, um mit DrawScope zusammen zu sein. (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
sind veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.
API-Änderungen
- Mit MaterialTheme werden jetzt die richtigen Farben für Auswahlhandles und den Auswahlhintergrund festgelegt. Nicht-Material-Apps können die Farben für die Auswahl manuell mit AmbientTextSelectionColors anpassen. (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 Einhaltung der Compose-Richtlinien zu prüfen.
Außerdem wurden einige APIs, die
children
als Namen für ihr nachgestelltes Lambda verwenden, gemäß Lint-Prüfung und Anleitung zucontent
migriert. (Iec48e) - VectorAsset wurde in ImageVector umbenannt. VectorAsset wurde in Builder verschoben und umbenannt, um gemäß den API-Council-Richtlinien eine innere Klasse von ImageVector zu sein. Es wurde ein Typalias von VectorAssetBuilder hinzugefügt, um für die Kompatibilität auf ImageVector.Builder zu verweisen. (Icfdc8)
- ImageAsset und zugehörige Methoden wurden in ImageBitmap umbenannt. (Ia2d99)
- Semantische Eigenschaften der Grundlage in „ui“ verschoben (I6f05c)
fun RippleIndication()
wurde eingestellt und durchrememberRippleIndication()
ersetzt, um die Konsistenz mit anderen APIs zu gewährleisten. (Id8e2c)- In BasicTextField, TextField und OutlinedTextField wurde ein „singleLine“-Parameter hinzugefügt. Setzen Sie diesen Parameter auf „true“, damit das Textfeld eine einzelne horizontal scrollbare Zeile ist. (I57004, b/168187755)
Fehlerkorrekturen
- Semantik-Aktion „Schließen“ hinzufügen (I2b706)
- Die DrawModifier-APIs wurden vom Paket androidx.compose.ui in das Paket androidx.compose.ui.draw verschoben. Die Datei „DrawModifierDeprecated.kt“ wurde erstellt, um Typaliase/Hilfsmethoden für die Migration von den eingestellten zu den aktuellen APIs bereitzustellen. (Id6044, b/173834241)
- „Modifier.drawLayer“ wurde in „Modifier.graphicsLayer“ umbenannt. Außerdem wurden zugehörige Klassen gemäß API-Feedback in „GraphicsLayer“ aktualisiert. (I0bd29, b/173834241)
<T>
wurde aus der SubcomposeLayout-Deklaration entfernt. Sie können es jetzt verwenden, ohne einen Typ anzugeben. (Ib60c8)- Die APIs „Modifier.scale“/„rotate“ wurden als Convenience-Funktionen für „drawLayer“ hinzugefügt.
Modifier.drawOpacity
wurde inModifier.alpha
umbenanntModifier.drawShadow
wurde inModifier.shadow
umbenannt (I264ca, b/173208140)
- Der Ausrichtungsparameter von „Box“ wurde in „contentAlignment“ umbenannt. (I2c957)
- Die offsetPx-Modifikatoren wurden in „offset“ umbenannt. Sie akzeptieren jetzt Lambda-Parameter anstelle von „State“. (Ic3021, b/173594846)
- Die APIs „SweepGradientShader“ und „SweepGradientBrush“ wurden eingeführt. (Ia22c1)
- Es wurde eine Lint-Prüfung für Modifier-Parameter in zusammensetzbaren Funktionen hinzugefügt. Bei dieser Lint-Prüfung werden der Name, der Rückgabetyp, der Standardwert und die Reihenfolge des Parameters auf Übereinstimmung mit den Compose-Richtlinien geprüft. (If493b)
- Aktualisierte TextFieldValue API
- TextFieldValue.composition ist jetzt schreibgeschützt
- Entfernte Ausnahme für ungültigen Auswahlbereich (I4a675, b/172239032)
- Eine neue
Modifier.drawLayer()
-Überladung wurde hinzugefügt. Es wird ein Lambda-Block in einem neuen GraphicsLayerScope verwendet, in dem Sie die Ebenenparameter so definieren, dass Recomposition und Relayout bei einer Zustandsänderung übersprungen werden können. DrawLayerModifier ist jetzt intern, um seine Logik in dieplaceable.placeWithLayer()
-Methode von LayoutModifier zu migrieren (I15e9f, b/173030831). - Wir haben die verworfenen Ambients mit dem Suffix
Ambient
ersetzt und neue Eigenschaften mit dem Präfix „Ambient“ eingeführt, die anderen Ambients und den Compose-API-Richtlinien entsprechen. (I33440) - Es wurde ein Lint-Check hinzugefügt, um zu prüfen, ob in Modifier-Factories intern
androidx.compose.ui.composed {}
verwendet wird, anstatt als@Composable
gekennzeichnet zu sein. (I3c4bc) - Das Semantikargument „mergeAllDescendants“ wurde in „mergeDescendants“ umbenannt. (Ib6250)
- Die Zeitsteuerung in Tests (TestAnimationClock und ihre Verwendung) ist jetzt experimentell (I6ef86, b/171378521).
- Altes ui-test-Modul und seine Stubs entfernen (I3a7cb)
- TextUnit.Inherit wurde in TextUnit.Unspecified umbenannt, um die Einheit an andere Einheiten anzugleichen. (Ifce19)
- Die Benutzeroberfläche für die Ausrichtung wurde aktualisiert und funktionsfähig gemacht. (I46a07, b/172311734)
- „id“ wurde für „LayoutIdParentData“ in „layoutId“ 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
sind veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.
API-Änderungen
- Die Funktion „Emphasis“ wurde eingestellt und durch „AmbientContentAlpha“ ersetzt. AmbientContentAlpha ist eine einfachere Abstraktion, die den bevorzugten Alpha-Wert für Inhalte für einen Teil der Hierarchie darstellt, ähnlich wie AmbientContentColor die bevorzugte Farbe für Inhalte darstellt. Text und Symbol verwenden jetzt standardmäßig den aktuellen Wert von „AmbientContentAlpha“. Sie können manuell
color.copy(alpha = AmbientContentAlpha.current)
eingeben, um denselben Effekt in Ihren Komponenten zu erzielen. Statt ProvideEmphasis zu verwenden, können Sie einfach direkt einen Wert über AmbientContentAlpha angeben und die neuen Standardstufen in ContentAlpha verwenden, um die alten EmphasisLevels zu ersetzen. (Idf03e, b/159017896) - androidx.compose.material.AmbientContentColor wird hinzugefügt, um androidx.compose.foundation.AmbientContentColor zu ersetzen (I84f7b, b/172067770)
- Fügt androidx.compose.material.Text hinzu, um androidx.compose.foundation.Text als Textkomponente auf hoher Ebene zu ersetzen, die thematisiert werden kann. Verwenden Sie BasicText für eine einfache Textkomponente, die keine Farbe oder keinen Textstil aus dem Design verwendet. (Ie6ae0)
- maxLines für TextFields hinzugefügt (Ib2a5b)
- TextFields für die Akzeptanz von KeyboardOptions aktualisieren (Ida7f3)
- Bei der Berechnung von Höhen-Overlays wird jetzt die absolute (Gesamt-)Höhe verwendet. Wenn also eine Oberfläche in einer anderen Oberfläche verschachtelt ist, wird für das Overlay die kombinierte Höhe verwendet. (I7bd2b, b/171031040)
Fehlerkorrekturen
captureToBitmap
nach "captureToImage
" verschoben (I86385)- Die Grundlagen AmbientTextStyle, ProvideTextStyle und AmbientContentColor wurden eingestellt. Verwenden Sie stattdessen die neuen Versionen, die in der Materialbibliothek verfügbar sind. Für Nicht-Material-Anwendungen sollten Sie stattdessen eigene Designsystem-spezifische Ambient-Themen erstellen, die in Ihren eigenen Komponenten verwendet werden können. (I74acc, b/172067770)
- foundation.Text wurde eingestellt und durch material.Text ersetzt. Eine einfache, neutrale Text-API, die keine Werte aus einem Theme 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 Annotation „ExperimentalSubcomposeLayoutApi“ wurde entfernt. SubcomposeLayout kann jetzt ohne @OptIn verwendet werden (I708ad).
- FirstBaseline und LastBaseline wurden in das Paket androidx.compose.ui.layout verschoben (Ied2e7).
- Die Icon API wurde aktualisiert, um Color.Unspecified als mögliche Tönungsfarbe zu akzeptieren. Das bereitgestellte Asset oder der Painter wird dann ohne ColorFilter gezeichnet. Bisher wurde bei dem Versuch, die Tönung mit Color.Unspecified zu ignorieren, eine transparente Farbe verwendet, sodass nichts gerendert wurde. (I049e2, b/171624632)
- „relativePaddingFrom“ wurde in „paddingFrom“ umbenannt. Der Modifier „paddingFromBaseline“ wurde hinzugefügt, um die Angabe von Abständen von Layoutgrenzen zu Text-Baselines zu vereinfachen. (I0440a, b/170633813)
- „LaunchedTask“ wurde in „LaunchedEffect“ umbenannt, um die Konsistenz mit den APIs „SideEffect“ und „DisposableEffect“ zu wahren. LaunchedEffect ohne Subject-Parameter 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 nach 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
sind veröffentlicht. Version 1.0.0-alpha06 enthält diese Commits.
API-Änderungen
- androidx.compose.foundation.Icon wurde zu androidx.compose.material.Icon verschoben. Wenn Sie die Material-Bibliothek nicht verwenden möchten, können Sie auch die Image-Komponente / Modifier.paint() mit einem Painter verwenden. (I9f622)
- Fügt „FloatingActionButtonElevation“ hinzu, um die Erhebung darzustellen, die von FABs in verschiedenen Status verwendet wird. Die Standardimplementierung finden Sie unter FloatingActionButtonConstants.defaultElevation() (I2d4f5).
- Fügt die SwitchColors-Schnittstelle hinzu, um Farben darzustellen, die von einem Schalter in verschiedenen Status verwendet werden. Informationen zum Anpassen dieser Farben finden Sie unter SwitchConstants.defaultColors. (I93805)
- Es werden die Schnittstellen „ButtonElevation“ und „ButtonColors“ hinzugefügt, um die Höhe und die Farben darzustellen, die von Schaltflächen in verschiedenen Status verwendet werden. Die Standardfunktionen finden Sie in ButtonConstants. (Ic5b7b)
- Fügt die RadioButtonColors-Schnittstelle hinzu, um die Farben darzustellen, die von einem RadioButton in verschiedenen Status verwendet werden. Mit RadioButtonConstants.defaultColors() können Sie die Farben anpassen, die in den verschiedenen Status verwendet werden. (I74130)
- Fügt die CheckboxColors-Schnittstelle hinzu, um die Farben darzustellen, die von einem Kästchen in verschiedenen Status verwendet werden. Mit CheckboxConstants.defaultColors() können Sie die Farben anpassen, die in den verschiedenen Status verwendet werden. (I7dbdb)
Fehlerkorrekturen
- In Material-Komponenten wird die Höhe nicht mehr als „zIndex“ festgelegt. Das bedeutet, dass das untergeordnete Element mit der größeren Schattengröße nicht automatisch über dem untergeordneten Element mit der kleineren Schattengröße gezeichnet wird. Wenn Sie dieses Verhalten weiterhin benötigen, legen Sie Modifier.zIndex() manuell fest (I70417, b/170623932).
- VectorPainter wird zugunsten von rememberVectorPainter eingestellt, um besser zu verdeutlichen, dass die zusammensetzbare API intern „remember“ verwendet, um Daten über Kompositionen hinweg beizubehalten. (Ifda43)
- Übergänge in ComposeTestRule aktivieren; Option zum Aktivieren des blinkenden Cursors aus ComposeTestRule entfernen. (If0de3)
- Dem CoreTextField wurde die Option für einzeilige Tastaturen hinzugefügt (I72e6d).
- Die Radius API wurde in CornerRadius umbenannt, um besser zu verdeutlichen, wie sie in Compose verwendet wird. Die Dokumentation wurde aktualisiert, um darauf hinzuweisen, dass negative Eckenradien auf null begrenzt werden. (I130c7, b/168762961)
- DrawScope und ContentDrawScope wurden in Schnittstellen anstelle von abstrakten Klassen umgestaltet.
- CanvasDrawScope-Implementierung von DrawScope erstellt
- Implementierungen von DrawScope wurden refaktoriert, um stattdessen CanvasScope zu verwenden.
- DrawContext wurde erstellt, um Abhängigkeiten für DrawScope zu umschließen.
- Verworfene 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
sind veröffentlicht. 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 eine Option zum expliziten Konfigurieren hinzugefügt (I64966, b/143778148, b/143778149).
- Für den Modifier „swipeable“ werden jetzt standardmäßig Schwellenwerte von 56 dp für Status verwendet (Iab825, b/168610267).
- Alle Scaffold-Zustände sind mit @Stable gekennzeichnet. drawerGesturesEnabled in ScaffoldState wurde in Scaffold verschoben. (I36645, b/168297016)
- Entfernt den Nullable-Typ aus den Scaffold-Lambda-Parametern. Sie können „emptyContent()“ verwenden, um anzugeben, dass für einen bestimmten Parameter keine Inhalte vorhanden sind. (I2b318, b/157633857, b/158551084)
Die APIs „contentColor()“ und „currentTextStyle()“ werden eingestellt und durch die Ambient-Variablen „AmbientContentColor“ und „AmbientTextStyle“ ersetzt. Sie können auf den aktuellen Wert zugreifen, indem Sie
.current
für die Ambient-Eigenschaft verwenden, wie bei jedem anderen Ambient. Diese Änderung wurde vorgenommen, um die Einheitlichkeit zu verbessern und mehrere Möglichkeiten zur Erledigung derselben Aufgabe zu vermeiden. Außerdem wurden einige Ambient-Properties umbenannt, um ihren Zweck besser zu beschreiben:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
Fügt AmbientElevationOverlay hinzu, sodass das standardmäßige Höhen-Overlay, das auf Oberflächen im dunklen Design angewendet wird, angepasst oder deaktiviert werden kann. (I5b74d)
Fehlerkorrekturen
- Im Rahmen der Standardisierung von Sentinel-Werten für Inline-Klassen wird „Color.Unset“ in „Color.Unspecified“ umbenannt, um die Konsistenz mit anderen Inline-Klassen zu gewährleisten (I97611, b/169797763).
- „TextOverflow.None“ wurde eingeführt. Wenn „overflow“ auf „None“ gesetzt ist, wird kein Überlauf mehr verarbeitet und die tatsächliche Größe wird an „LayoutNode“ gemeldet. (I175c9, b/158830170)
- „launchInComposition“ wurde in „LaunchedTask“ umbenannt, um den Compose-API-Richtlinien zu entsprechen (I99a8e).
- OnPositionedModifier wurde in OnGloballyPositionedModifier umbenannt und onPositioned() in onGloballyPositioned(). (I587e8, b/169083903)
Version 1.0.0-alpha04
1. Oktober 2020
androidx.compose.material:material:1.0.0-alpha04
, androidx.compose.material:material-icons-core:1.0.0-alpha04
und androidx.compose.material:material-icons-extended:1.0.0-alpha04
sind veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.
API-Änderungen
- Macht InteractionState-Parameter in zustandsbehafteten Material-Komponenten verfügbar, um den Status zu verschieben und den Status zu lesen / zu steuern. (Iaca5f, b/168025711, b/167164434)
- Die
*color
-Parameter für RadioButton und TriStateCheckbox wurden geändert, um die Farben in den einzelnen Status vollständig anpassen zu können. Außerdem kann bei Bedarf geändert werden, wie die Farben zwischen den Status animiert werden. Weitere Informationen finden Sie in den neuen Farbfunktionen „animateDefault*“ in „CheckboxConstants“ und „RadioButtonConstants“. (I1c532) - „rememberBackdropState“ wurde in „rememberBackdropScaffoldState“ umbenannt und ein zusätzlicher Parameter für die Animationsuhr wurde hinzugefügt. Der Parameter „backdropScaffoldState“ von „BackdropScaffold“ wurde in „scaffoldState“ umbenannt. BackdropConstants wurde in BackdropScaffoldConstants umbenannt. (Ib644d)
- Die experimentelle Komponente „BottomSheetScaffold“ wurde hinzugefügt. (Ie02f0, b/148996320)
- Die experimentelle Komponente „ModalBottomSheetLayout“ wurde hinzugefügt. (Ic209e, b/148996320)
- Benennt ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation in defaultElevation um und gibt jetzt einen Dp-Wert anstelle eines AnimatedValue zurück. (I5f3ed)
Fehlerkorrekturen
- Viele Grafik-APIs wurden aktualisiert.
- Die APIs für die Skalierungs- und Rotations-Transformation wurden aktualisiert, sodass sie einen einzelnen Offset-Parameter für die Darstellung der Pivot-Koordinate anstelle separater Gleitkommaparameter für die x-/y-Koordinaten in DrawScope und DrawTransform verwenden.
- Die Methoden „Rect.expandToInclude“ und „Rect.join“ wurden entfernt.
- Die Dokumentation zum Radius wurde aktualisiert und enthält jetzt neben „elliptisch“ auch „oval“.
- Dokumentation hinzugefügt, um darauf hinzuweisen, dass der öffentliche Konstruktor für die Inline-Klasse „Radius“ nicht direkt aufgerufen werden darf, sondern Radius-Objekte über ihre Funktionskonstruktoren instanziiert werden müssen.
- Die RoundRect-APIs zum Abfragen von topRight, bottomRight, bottomCenter usw. wurden entfernt.
- Rect.shift zugunsten von Rect.translate eingestellt
- Entfernte APIs „RoundRect.grow“ und „Rect.shrink“
- RoundRect.outerRect wurde in Rect.boundingRect umbenannt
- Die Methoden „RoundRect.middleRect/tallMiddleRect/wideMiddleRect“ und „Rect.isStadium“ wurden entfernt.
- RoundRect.longestSide wurde in RoundRect.maxDimension umbenannt.
- RoundRect.shortestSide wurde in RoundRect.minDimension umbenannt
- RoundRect.center ist jetzt eine Eigenschaft anstelle einer Funktion.
- Der RoundRect-Konstruktor wurde aktualisiert, sodass er Radius-Eigenschaften anstelle von einzelnen Parametern für x-/y-Radiuswerte verwendet.
- Entfernte Größen-APIs, bei denen davon ausgegangen wurde, dass es sich um ein Rechteck mit dem Ursprung bei 0,0 handelt
- Destrukturierungs-API zu Radius hinzugefügt
- Verschiedene RoundRect-Erweiterungsfunktionen wurden zu Eigenschaften migriert.
- (I8f5c7, b/168762961)
- foundation.Box wurde eingestellt. Verwenden Sie stattdessen foundation.layout.Box. (Ie5950, b/167680279)
- Der Stapel wurde in „Box“ umbenannt. Die zuvor vorhandene Box wird zugunsten der neuen Box in compose.foundation.layout eingestellt. In der neuen Box werden untergeordnete Elemente übereinander gestapelt, wenn sie mehrere untergeordnete Elemente enthält. Das ist anders als bei der vorherigen Box, die sich ähnlich wie eine Spalte verhalten hat. (I94893, b/167680279)
- Die Parameter für die Box-Dekoration wurden eingestellt. Wenn Sie Dekorationen/Abstände für Ihre Box festlegen möchten, verwenden Sie stattdessen Modifiers (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279).
- Viele Grafik-APIs wurden aktualisiert.
- Die DrawScope-APIs wurden mit Methoden für Transformationen mit Bereich aktualisiert, um anzugeben, dass die Transformation nur innerhalb des Callbacks angewendet und nach dem Aufrufen des Callbacks entfernt wird.
- Die Dokumentation zu „clipPath“ wurde aktualisiert. Es wird jetzt auf „Path“ anstelle von abgerundeten Rechtecken verwiesen.
- Der Abstand in der Dokumentation für den rechten Parameter in „clipPath“ wurde korrigiert.
- DrawScope.drawCanvas wurde in drawIntoCanvas umbenannt und der Größenparameter wurde entfernt.
- Die dx/dy-Parameter in der Inset-Methode wurden in „horizontal“ und „vertical“ umbenannt.
- Es wurde eine Inset-Überladung hinzugefügt, die für alle vier Grenzen denselben Inset-Wert bereitstellt.
- Dokumentation zur Inset-Methode entfernt, in der angegeben wurde, dass „inset“ auf alle vier Seiten angewendet wird
- Aktualisierte Dokumentation für die Klasse „Rect“
- Die Kommentare zu Rechteckparametern wurden an den kdoc-Stil angepasst.
- Rect.join und Rect.expandToInclude entfernt
- Überladung für Rect.translate(offset) erstellt und Rect.shift als veraltet markiert
- (If086a, b/167737376)
- Wir haben statische Importe von Inhalten von Layout-Scopes (z.B. „alignWithSiblings“ in „RowScope“) verhindert. Verwenden Sie stattdessen die explizite Bereichsalternative:
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
sind veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.
API-Änderungen
- Benennt den Parameter
onSelect
vonBottomNavigationItem
inonClick
um (I91925, b/161809324) - Fügt den Parameter „InteractionState“ zu „BottomNavigationItem“ und „Tab“ hinzu, sodass 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 / backgroundColor bereits explizit festlegen, sollten Sie stattdessen diese Standardfunktionen verwenden und einige oder alle Parameter anpassen, um zu vermeiden, dass die Farbe für die aktivierten und deaktivierten Status überschrieben wird. (If9b52) - Die Hintergrundfarbe des Textfelds wird nicht mehr implizit mit einem Transparenz-Alpha-Wert versehen. 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 zustandsbezogene Erhebung für Button und FloatingActionButton wurde hinzugefügt. Die Erhebung wird jetzt zwischen dem Standard- und dem gedrückten Zustand animiert. Wenn Sie die Erhebung zwischen den Status anpassen möchten, verwenden Sie
ButtonConstants.defaultAnimatedElevation()
undFloatingActionButtonConstants.defaultAnimatedElevation()
, anstatt in allen Fällen einen pauschalen Dp-Wert festzulegen. (I37925) - Das Label ist jetzt ein optionaler Parameter in TextField und OutlinedTextField (I267f6, b/162234081).
Fehlerkorrekturen
- Globale Testfunktionen wie
onNode
oderwaitForIdle
sind jetzt veraltet. Migrieren Sie zu den neuen Gegenstücken, die in ComposeTestRule definiert sind (I7f45a). - DpConstraints und APIs, die sie verwenden, wurden eingestellt. (I90cdb, b/167389835)
- Die Parameter „minWidth“ und „maxWidth“ von „widthIn“ wurden in „min“ und „max“ umbenannt. Das gilt auch für „preferredWidthIn“, „heightIn“ und „preferredHeightIn“. (I0e5e1, b/167389544)
- Entfernen Sie die semantischen Aktionen zum Vor- und Zurückscrollen. Schritte in AccessibilityRangeInfo hinzugefügt. (Ia47b0)
- Die Verwendung von „gravity“ wurde in Layout-APIs konsistent in „align“ oder „alignment“ umbenannt. (I2421a, b/164077038)
- „onNode“ und andere globale Methoden wurden in „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
sind veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.
API-Änderungen
- Es wurde eine experimentelle BackdropScaffold-Komponente hinzugefügt. (Iad908)
Fehlerkorrekturen
- Matrix4 wurde durch Matrix ersetzt. Alle anderen Teile des Vectormath-Pakets 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
sind veröffentlicht. 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
sind veröffentlicht. Version 0.1.0-dev17 enthält diese Commits.
API-Änderungen
- Die zuvor verworfenen RadioGroup und RadioGroupItems wurden entfernt. Verwenden Sie stattdessen „Row“ und „RadioBotton“ (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 Border-Datenklasse wurde durch BorderStroke ersetzt (I4257d, b/158160576).
- Einige Eigenschaften in „SwipeableState“ wurden umbenannt: „swipeTarget“ -> „targetValue“, „swipeProgress“ -> „progress“, „swipeDirection“ -> „direction“. Die Funktion „rememberSwipeableState“ zum Erstellen von „SwipeableState“-Objekten wurde hinzugefügt. (I2fc9c, b/163129614, b/163132293)
- Es wurde Unterstützung für Snackbars mit Positionierung und korrekter Warteschlange hinzugefügt. Sie können über die Funktion
SnackbarHostState.showSnackbar
darauf zugreifen. Außerdem:- SnackbarHost-Komponenten wurden hinzugefügt. Sie enthält Snackbars basierend auf dem Status und ist für den Übergang zwischen 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. - Snackbar-Überladung wurde hinzugefügt, um eine gemeinsame Schnittstelle zwischen „snackbarHostState“ und Snackbars zu unterstützen. (I79aaa)
- Der Parameter „enabled“ wurde zu „IconButton“ hinzugefügt und die Parameter in „IconToggleButton“ wurden neu angeordnet (I0a941, b/161809385, b/161807956).
- Die ListItem-Version mit String-basierter API wurde entfernt. Verwenden Sie stattdessen die Slot-Version. (Ib8f57, b/161804681)
- Die nicht mehr weitergeführte Komponente „FilledTextField“ wurde entfernt. Verwenden Sie stattdessen „TextField“, um die Material Design-Implementierung des ausgefüllten Textfelds zu erhalten. (I5e889)
- AlertDialog verwendet jetzt FlowRow für Schaltflächen (I00ec1, b/161809319, b/143682374)
- In Modifier.swipeable wurden Parameter hinzugefügt, mit denen sich der Widerstand beim Wischen über die Grenzen hinaus ändern lässt. Die Parameter [min/max]Value wurden entfernt. (I93d98)
- Der Parameter „backgroundColor“ wurde dem LinearProgressIndicator hinzugefügt und das interne Padding wurde aus dem CircularProgressIndicator entfernt. Es wurde eine neue ProgressIndicatorConstants.DefaultProgressAnimationSpec hinzugefügt, die als Standard-AnimationSpec verwendet werden kann, wenn der Fortschritt zwischen Werten animiert wird (If38b5, b/161809914, b/161804677).
- Der optionale Parameter „velocityThreshold“ wurde „Modifier.swipeable“ hinzugefügt. (I698ba)
- bottomBarSize, fabSize und andere sind nicht mehr in ScaffoldState verfügbar. Verwenden Sie Modifier.onPosition anstelle der Komponente, deren Größe Sie ermitteln möchten. contentColor und Modifier-Parameter wurden zu Scaffold hinzugefügt (Ic6f7b, b/161811485, b/157174382).
- Einige Parameter auf dem Tab wurden umbenannt und neu angeordnet, um die Konsistenz mit anderen APIs zu gewährleisten (Ia2d12, b/161807532).
- Teilt TabRow in TabRow und ScrollableTabRow auf und entfernt isScrollable aus TabRow. Außerdem wird „edgePadding“ in „ScrollableTabRow“ verfügbar gemacht, sodass der kostenlose Platz vor und nach den Tabs gesteuert werden kann. (I583e8, b/161809544)
- Das
TabRow
-Objekt wurde entfernt und durch TabConstants ersetzt. TabRow.TabPosition wurde auf die oberste Ebene verschoben (TabPosition) und indicatorContainer wurde inindicator
umbenannt. In den Beispielen und der Dokumentation finden Sie detaillierte Informationen zur Verwendung der aktualisierten API und zu den Standardeinstellungen. (I54d45, b/161809544) - Der Parameter „thresholds“ in „Modifier.swipeable“ wurde angepasst. Er akzeptiert jetzt ein Paar von Status (vom Typ „T“) und gibt den Schwellenwert zwischen ihnen in Form einer „ThresholdConfig“ zurück. Der Funktion „SwipeToDismiss“ wurde der Parameter „dismissThresholds“ hinzugefügt. Dabei handelt es sich um eine Lambda-Funktion (DismissDirection) -> ThresholdConfig. (Ie1080)
- Der Schieberegler hat mehr Farben für eine detailliertere Anpassung (I73e64, b/161810475).
- Der Farbparameter der Karte wurde in „backgroundColor“ umbenannt (I01fc1, b/161809546).
- Die Snackbar hat jetzt anpassbare Hintergrund- und Inhaltsfarben (I238f2, b/161804381).
- Für Drawers wurden Anpassungsparameter für „modifier“, „backgroundColor“, „contentColor“ und „scrimColor“ hinzugefügt (I23655, b/161804378).
- Die zusammensetzbare Funktion
state { ... }
ist jetzt zugunsten expliziter Aufrufe vonremember { mutableStateOf(...) }
eingestellt. Dadurch wird die gesamte API-Oberfläche und die Anzahl der Konzepte für die Statusverwaltung reduziert und dasby mutableStateOf()
-Muster für die Delegierung von Klasseneigenschaften wird eingehalten. (Ia5727) - Der Padding-Parameter der Schaltfläche wurde in „contentPadding“ umbenannt (Id252e, b/161809394).
- Die experimentelle Materialkomponente „SwipeToDismiss“ wurde hinzugefügt. (I129e5)
Fehlerkorrekturen
onChildPositioned
undOnChildPositionedModifier
wurden entfernt. Entwickler sollten stattdessenonPositioned
undOnPositionedModifier
im untergeordneten Layout verwenden. (I4522e, b/162109766)- Lambda „mergePolicy“ zu „SemanticsPropertyKey“ hinzugefügt. Damit kann eine benutzerdefinierte Richtlinie für das Zusammenführen von „mergeAllDescendants“-Semantik definiert werden. Die Standardrichtlinie sieht vor, dass der übergeordnete Wert verwendet wird, sofern er bereits vorhanden ist. 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()
wurde inPlacementScope.placeRelative()
umbenannt. Daher wird die Position in Kontexten mit Leserichtung von rechts nach links nicht mehr automatisch gespiegelt.PlacementScope.place()
Wenn dies gewünscht ist, verwenden Sie stattdessenPlacementScope.placeRelative()
. (I873ac, b/162916675)- PxBounds wurde zugunsten von Rect eingestellt. Alle Verwendungen von PxBounds wurden durch „rect“ ersetzt und es wurden entsprechende Annotations für die Einstellung und den Ersatz hinzugefügt, um die Migration zu erleichtern. (I37038, b/162627058)
- RRect wurde in RoundRect umbenannt, um den Namensmustern von Compose besser zu entsprechen. Es wurden ähnliche Funktionskonstruktoren für RRect erstellt und die Funktionskonstruktoren von RRect wurden als veraltet eingestuft (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
sind veröffentlicht. 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 Theme-Objekt erstellen und in Ihren Komponenten über das neue Ambient auf das Theme-Objekt zugreifen, ähnlich wie MaterialTheme intern funktioniert. (Ibae84)
- „ColorPalette“ wurde in „Colors“ umbenannt, um besser dem Material-Farbsystem zu entsprechen und Verwirrung darüber zu vermeiden, dass „ColorPalette“ ein „generisches“ Theming-Objekt ist und keine spezifische Implementierung des Material-Farbsystems. Außerdem werden lightColorPalette und darkColorPalette in lightColors bzw. darkColors umbenannt. (I9e976, b/161812111)
- Benennt den Parameter
text
von BottomNavigationItem inlabel
,onSelected
inonSelect
,activeColor
inselectedContentColor
undinactiveColor
inunselectedContentColor
um und aktualisiert die Parameterreihenfolge entsprechend den Richtlinien. (Icb605, b/161809324) Modifier.stateDraggable
wurde komplett überarbeitet und in Modifier.swipeable umbenannt. Es wurde eine neue SwipeableState-Klasse eingeführt und DrawerState und BottomDrawerState wurden so umgestaltet, dass sie von ihr erben. [Modal/Bottom]DrawerLayout akzeptiert keinen onStateChange-Parameter mehr. (I72332, b/148023068)- Das Paket „foundation.shape.corner“ wurde in „foundation.share“ zusammengeführt (I46491, b/161887429).
- Die Annotation „ExperimentalMaterialApi“ wurde hinzugefügt. RippleTheme als „Experimentell“ gekennzeichnet (Ic5fa0, b/161784800)
- „Material FilledTextField“ wurde in „TextField“ umbenannt und „foundational TextField“ in „BaseTextField“, um die einfachste gewünschte API leichter auffindbar und nutzbar zu machen (Ia6242, b/155482676).
Fehlerkorrekturen
- Die Methode „OnChildPositioned“ wurde eingestellt. Verwenden Sie stattdessen OnPositioned für das untergeordnete Element. (I87f95, b/162109766)
- Umfassende API-Korrekturen (I077bc)
- Nicht verwendete OffsetBase-Schnittstelle entfernen
- Offset- und IntOffset-Klassen anpassen, um eine einheitliche API zu erhalten
- Benennen Sie „IntOffset.Origin“ in „IntOffset.Zero“ um, um die Konsistenz mit der Offset API zu wahren.
- Die nativeCanvas-Methode wurde aus der Canvas-Schnittstelle entfernt, damit Nutzer eigene Canvas-Instanzen erstellen können.
- Stub-Klasse „EmptyCanvas“ erstellt, um „DrawScope“ so umzugestalten, dass sie ein Parameter ist, der nicht null sein kann, anstatt „lateinit“, und um sicherzustellen, dass das Feld nicht null sein kann.
- ClipOp-Enumerationen wurden in PascalCase umbenannt
- Die FilterQuality-Enumerationen wurden in PascalCase umbenannt.
- StrokeJoin-Enumerationen in PascalCase umbenannt
- Die PointMode-Enumerationen wurden in PascalCase umbenannt.
- Die PaintingStyle-Enumerationen wurden in PascalCase umbenannt.
- Die PathFillType-Enumerationen wurden in PascalCase umbenannt.
- „StrokeCap“-Enums in PascalCase umbenannt
- Die DrawCache-Implementierung wurde aktualisiert, sodass keine „lateinit“-Parameter mehr verwendet werden.
- DrawScope wurde aktualisiert, sodass die interne Parameter „fillPaint“ und „strokePaint“ nicht mehr lazy delegiert werden.
- Das Image-Composable wurde aktualisiert, um die Verwendung von „Box“ zu vermeiden und den Overhead zu verringern.
- Die Outline-Klasse wurde aktualisiert und enthält jetzt @Immutable-Annotationen.
- PathNode wurde aktualisiert, sodass für jede Pfadanweisung @Immutable-Annotationen vorhanden sind.
- Die Vektor-Unterkomposition wurde aktualisiert, um redundante bedingte Gleichheitsprüfungen zu entfernen, da diese bereits von Compose verarbeitet werden.
- Verworfene Begleitkonstruktormethoden für „Rect“ zugunsten von Funktionskonstruktoren
- Aktualisierte Brush-Klassen und Funktionskonstruktoren mit @Immutable- und @Stable-APIs
- Die Enumeration „VertexMode“ wurde in PascalCase aktualisiert.
- Die Methode „DrawScope.selectPaint“ wurde aktualisiert, um Strichparameter im Paint-Objekt nur dann bedingt zu überschreiben, wenn sie sich geändert haben.
- Die Größe wurde aktualisiert, um die Destrukturierungs-API hinzuzufügen, UnspecifiedSize in Unspecified umzubenennen und nicht verwendete Methoden zu entfernen.
- Dialog in die Benutzeroberfläche verschieben (I47fa6)
SemanticsNodeInteraction.performPartialGesture
wurde entfernt. Verwenden Sie stattdessenSemanticsNodeInteraction.performGesture
. (Id9b62)SemanticsNodeInteraction.getBoundsInRoot()
wurde inSemanticsNodeInteraction.getUnclippedBoundsInRoot()
umbenannt (Icafdf, b/161336532)- Die APIs für die Unterstützung von Sprachen, die von rechts nach links geschrieben werden, wurden aktualisiert. „LayoutDirectionAmbient“ wurde hinzugefügt. Damit kann die Layoutrichtung gelesen und geändert werden. „Modifier.rtl“ und „Modifier.ltr“ wurden entfernt. (I080b3)
- Modifier.deternimateProgress wurde in Modifier.progressSemantics umbenannt (I9c0b4).
- Aktualisiert „material-icons-extended“ mit den neuesten Symbolen, die auf 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 die Eingabe von
Modifier.padding().background() + anotherModifier
, was die Kette unterbricht und die Lesbarkeit erschwert (Iedd58, b/161529964). - AndroidComposeTestRule wurde in createAndroidComposeRule umbenannt. (I70aaf)
- SemanticsMatcher für isFocused() und isNotFocused() hinzufügen. (I0b760)
BaseGestureScope.globalBounds
wurde entfernt und sollte nicht in Tests verwendet werden. Verwenden Sie stattdessen Koordinaten, die sich auf den Knoten beziehen, mit dem Sie interagieren. (Ie9b08)- Die Position von Pop-ups auf Displays mit Aussparungen wurde korrigiert. (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
sind veröffentlicht. Version 0.1.0-dev15 enthält diese Commits.
Abhängigkeiten aktualisieren
- Wenn Sie die
0.1.0-dev15
-Version von Compose verwenden möchten, müssen Sie Ihre Abhängigkeiten gemäß den neuen Code-Snippets oben unter Abhängigkeiten deklarieren aktualisieren.
API-Änderungen
Die Anmerkung „
@Model
“ wurde eingestellt. Verwenden Sie stattdessen „state“ und „mutableStateOf“. Diese Entscheidung wurde nach sorgfältiger Überlegung getroffen.Begründung
Die Begründung umfasst unter anderem:
- Reduziert die API-Oberfläche und die Konzepte, die wir vermitteln müssen
- Bessere Abstimmung mit anderen vergleichbaren Toolkits (Swift UI, React, Flutter)
- Die Entscheidung kann rückgängig gemacht werden. Wir können
@Model
später jederzeit wieder einführen. - Entfernt Grenzfälle und schwer zu beantwortende Fragen zur Konfiguration von
@Model
als Dinge, die wir berücksichtigen müssen @Model
-Datenklassen, „equals“, „hashcode“ usw.- Wie kann ich festlegen, dass einige Eigenschaften beobachtet werden und andere nicht?
- Wie lege ich fest, ob die strukturelle oder die referenzielle Gleichheit in der Beobachtung verwendet werden soll?
- Reduziert die „Magie“ im System. Dadurch wird die Wahrscheinlichkeit verringert, dass jemand annimmt, das System sei intelligenter als es ist (d. h., dass es weiß, wie man eine Liste vergleicht).
- Die Granularität der Beobachtung wird intuitiver.
- Verbessert die Refaktorierbarkeit von Variable → Eigenschaft in der Klasse
- Möglicherweise ergeben sich dadurch Möglichkeiten für individuelle Optimierungen auf Bundesstaatsebene.
- Es entspricht besser dem Rest des Ökosystems und reduziert die Unklarheit in Bezug auf unveränderliche oder „veränderliche“ Zustände.
Hinweise zur Migration
Fast alle vorhandenen Verwendungen von
@Model
lassen sich auf zwei Arten relativ einfach transformieren. Im folgenden Beispiel wird eine@Model
-Klasse mit zwei Attributen verwendet, nur um das Beispiel zu veranschaulichen. Sie wird in einer zusammensetzbaren Funktion verwendet.@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 erleichtert. Machen Sie im Grunde alle bisherigen
var
-Properties zuval
-Properties einer Datenklasse und verwenden Sie dannstate
anstelle vonremember
. Weisen Sie den Statuswert den geklonten Kopien des Originals mithilfe dercopy(...)
-Hilfsmethode der Datenklasse zu.Dieser Ansatz funktioniert nur, wenn die einzigen Änderungen an dieser Klasse im selben Bereich vorgenommen wurden, in dem die
State
-Instanz erstellt wird. Wenn die Klasse sich intern außerhalb des Anwendungsbereichs ändert und Sie sich darauf verlassen, dass dies beobachtet wird, 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 Delegates verwenden
Dieser Ansatz wird durch die Property Delegates von Kotlin und die
mutableStateOf
API erleichtert, mit der Sie MutableState-Instanzen außerhalb der Komposition erstellen können. Ersetzen Sie im Wesentlichen allevar
-Attribute der ursprünglichen Klasse durchvar
-Attribute mitmutableStateOf
als Attribut-Delegate. Das hat den Vorteil, dass sich die Verwendung der Klasse überhaupt nicht ändert, sondern nur die interne Implementierung. Das Verhalten ist jedoch nicht völlig identisch mit dem ursprünglichen Beispiel, da jede Eigenschaft jetzt einzeln beobachtet bzw. abonniert wird. Die Re-Compositions, die nach dieser Umgestaltung auftreten, könnten 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)
onFocusChange-Callback in Textfeldern in onFocusChanged umbenannt (Ida4a1)
Der Parameter „thresholds“ wurde in „stateDraggable“ hinzugefügt, um Schwellenwerte zwischen Ankern anzugeben. Damit wurde ein Schwellenwert von 56 dp im unteren Bereich festgelegt. Außerdem wird für BottomDrawerLayout jetzt ein separates BottomDrawerState-Enum verwendet. (I533fa)
Entfernt den zuvor verworfenen Modifier.ripple. Bei „clickable“ wird jetzt standardmäßig „ripple“ als Indikator verwendet, wenn Sie in Ihrer Anwendung „MaterialTheme {}“ festgelegt haben. In den meisten Fällen können Sie also einfach „clickable“ verwenden und erhalten den „ripple“-Indikator kostenlos. Wenn Sie die Farbe, Größe oder den begrenzten Parameter für den Ripple anpassen müssen, können Sie manuell eine „RippleIndication“ erstellen und sie als „indication“-Parameter an „clickable“ übergeben. (I663b2, b/155375067)
Veralteter Überschreibungsmechanismus für die zusammensetzbare Funktion „FilledTextField“ entfernt (I7f8f8)
Button-Objekt (mit den von der Button-Funktion verwendeten Standardwerten) in ButtonConstants umbenennen (I7c5f7, b/159687878)
Der Inhaltsslot der Schaltfläche verhält sich jetzt wie eine Zeile (nützlich, wenn Sie ein Symbol mit Text benötigen, siehe Beispiele für Schaltflächen) (I0ff10, b/158677863)
RadioGroup und RadioGroupItem sind nicht mehr verfügbar. Verwenden Sie „Box“ mit „Modifier.selectable“, „Row“ und „Column“, um die richtige Gruppe von Optionsfeldern für Ihr Design zu erstellen (I7f5cf, b/149528535).
Das Textfeld „Material Outlined“ wurde hinzugefügt (I1a518).
„androidx.ui.foundation.TextFieldValue“ und „androidx.ui.input.EditorValue“ sind veraltet. Die Composables TextField, FilledTextField und CoreTextField, die diesen Typ verwenden, sind ebenfalls veraltet. Verwenden Sie stattdessen androidx.ui.input.TextFieldValue (I4066d, b/155211005).
TabRow.TabPosition enthält keine Position in Dp, sondern in IntPx (I34a07, b/158577776)
Die Verwendung von „IntPx“ wurde durch „Int“ ersetzt. „IntPxPosition“ wurde durch „IntOffset“ ersetzt. „IntPxSize“ wurde durch „IntSize“ ersetzt. (Ib7b44)
Um die Anzahl der Klassen zu reduzieren, die zur Darstellung von Größeninformationen verwendet werden, sollten Sie die Klasse „Size“ anstelle von „PxSize“ verwenden. Dies bietet die Vorteile einer Inline-Klasse, um einen Long-Wert zu nutzen, um zwei Float-Werte zu packen, die Breite und Höhe als Floats darstellen. (Ic0191)
Modifier.ripple wird eingestellt. Bei „clickable“ wird jetzt standardmäßig „ripple“ als Indikator verwendet, wenn Sie in Ihrer Anwendung „MaterialTheme {}“ festgelegt haben. In den meisten Fällen können Sie also einfach „clickable“ verwenden und erhalten den „ripple“-Indikator kostenlos. Wenn Sie die Farbe, Größe oder den begrenzten Parameter für den Ripple anpassen müssen, können Sie manuell eine „RippleIndication“ erstellen und sie als „indication“-Parameter an „clickable“ übergeben. (I101cd, b/155375067)
Die Scaffold API wurde überarbeitet: Einige Parameter haben ihren Namen geändert, es wurden neue Parameter für eine bessere Anpassung hinzugefügt. Getter zum Abfragen der Größen von Fab, TopBar und BottomBar hinzugefügt (I0e7ce)
Die Komponente „DropdownMenu“ wurde in „ui-material“ hinzugefügt. Sie ist eine Material Design-Menüimplementierung. (I9bb3d)
Manuelles Ein-/Ausblenden der Softwaretastatur mit SoftwareKeyboardController zulassen (Ifb9d6, b/155427736)
Dem Fundamentpaket wurde „Modifier.indication“ hinzugefügt. Damit können Sie auf Ihren benutzerdefinierten interaktiven Elementen (I8425f, b/155287131) Hinweise zum Drücken, Ziehen oder andere Hinweise anzeigen.
CanvasScope-Implementierungen wurden konsolidiert. Es gibt jetzt nur noch DrawScope und ContentDrawScope. CanvasScope wurde in DrawScope umbenannt. DrawScope wurde aktualisiert, um die Density-Schnittstelle zu implementieren und LayoutDirection bereitzustellen. Die DrawScope-Unterklasse in ContentDrawScope wurde gelöscht. Painter und PainterModifier wurden aktualisiert, um nicht mehr selbst eine RTL-Eigenschaft zu verwalten, da DrawScope diese bereits ohne manuelle Bereitstellung bereitstellt (I1798e).
Die Funktion „Emphasis.emphasize()“ wird in „Emphasis.applyEmphasis()“ umbenannt (Iceebe).
Deaktivierte Schaltflächen entsprechen jetzt visuell der Material Design-Spezifikation (I47dcb, b/155076924).
FilledTextField unterstützt jetzt IME-Aktionen, visuelle Transformationen und Tastaturtypen (I1f9cf, b/155075201).
Der CircularProgressIndicator-Komponente wurde 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)
Der CircularProgressIndicator-Komponente wurde 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)
Es wurde eine Slot-API für nachgestellte und vorangestellte Symbole in FilledTextField hinzugefügt und die Verarbeitung des Fehlerstatus (Ic12e0) wurde verbessert.
Die Standardfarbe von FABs und Extended FABs wurde in „MaterialTheme.colors.secondary“ geändert. (I3b9b9, b/154118816)
Alle Verwendungen von „nullable Color“ in der API wurden durch „non-nullable“ ersetzt und anstelle von „null“ wird „Color.Unset“ verwendet (Iabaa7).
„EdgeInsets“ wurde in „InnerPadding“ umbenannt. Der Parameter „innerPadding“ von Material-Schaltflächen wurde in „padding“ umbenannt. (I66165)
Der Schieberegler ist jetzt zustandslos. Nutzer müssen den Status selbst übergeben und aktualisieren, genau wie bei jeder anderen Steuerung. (Ia00aa)
StaticDrawer wurde entfernt. Verwenden Sie bei Bedarf stattdessen Box mit material-spec'ed width (I244a7).
Material Design-Implementierung des gefüllten Textfelds (Ic75cd) hinzugefügt
Der ListItem-Funktion wurde der Modifier-Parameter hinzugefügt und die Parameter wurden neu angeordnet, um den nachgestellten Lambda-Body zu fördern (I66e21).
Der Konstruktorparameter „defaultFontFamily“ wird „Typography“ hinzugefügt. So kann die Standardschriftfamilie angegeben werden, die für alle bereitgestellten „TextStyles“ verwendet wird, für die keine Schriftfamilie festgelegt ist. (I89d07)
Materialdatentabellen wurden vorübergehend aus der API entfernt. (Iaea61)
Umbenannte Parameter im Divider-Composable (Ic4373)
Kinder (Ia6d19)
Entfernt MaterialTheme.emphasisLevels. Verwenden Sie stattdessen EmphasisAmbient.current, um die Hervorhebungsstufen abzurufen (Ib5e40).
Das System für die Gestaltung von Formen wurde gemäß der Material Design-Spezifikation aktualisiert. Sie können jetzt kleine, mittlere und große Formen für die meisten Komponenten angeben (Ifb4d1).
MaterialTheme-APIs wie MaterialTheme.colors() und MaterialTheme.typography() wurden von Funktionen zu Attributen geändert. Entfernen Sie die Klammern aus vorhandenen Aufrufen. Es ist keine Verhaltensänderung zu erwarten. (I3565a)
Die APIs für FloatingActionButton wurden umgestaltet, sodass sie zusammensetzbare Lambdas anstelle von Primitiven akzeptieren. Aktualisierte Beispiele mit Informationen zur Verwendung (I00622)
enabled
-Parameter für Checkbox, Switch und Toggleable hinzufügen (I41c16)„Wellen“ ist jetzt ein Modifikator. Da Clickable noch nicht konvertiert wurde, wird die Verwendung von
Clickable(onClick = { ... }, modifier = ripple())
empfohlen (Ie5200, b/151331852, b/150060763).„Surface“ und „Card“ wurden von „androidx.ui.material.surface“ zu „androidx.ui.material“ verschoben (I88a6d, b/150863888)
Die Funktionen „Button“, „FloatingActionButton“ und „Clickable“ haben jetzt einen separaten
enabled
-Parameter. Einige Parameter für die Schaltfläche wurden umbenannt oder neu angeordnet. (I54b5a)„Image“ wurde in „ImageAsset“ umbenannt, um den Unterschied zwischen den Bilddaten und der bevorstehenden Image-Composable-Funktion, die zum Layouten und Zeichnen von Inhalten verwendet wird, besser zu verdeutlichen. _Body:Created extension method on android.graphics.Bitmap, Bitmap.asImageAsset(), to create an instance of an ImageAsset useful for combining traditional Android application development with the compose framework (Id5bbd)
Die Snackbar API mit String-Parametern wurde entfernt. Stattdessen wird die Überladung verwendet, die zusammensetzbare Lambdas akzeptiert. Aktualisierte Beispiele für Nutzungsinformationen (I55f80)
Tab-APIs wurden umgestaltet, um
text
- undicon
-Lambdas zu akzeptieren (Ia057e)Die Komponente „BottomNavigation“ wurde hinzugefügt. Informationen zur Verwendung finden Sie in der Dokumentation und in den Beispielen (I731a0).
Die Komponenten „Icon“, „IconButton“ und „IconToggleButton“ wurden hinzugefügt. „AppBarIcon“ wurde entfernt. Sie können vorhandene Verwendungen von AppBarIcon direkt durch IconButton ersetzen. Die Schaltflächen haben dann den richtigen Berührungszielbereich. Informationen zur Verwendung finden Sie in den Beispielen. 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 Überladung von Text (String) wurde entfernt. In den aktualisierten Beispielen finden Sie Informationen zur Verwendung. (If63ab, b/146478620, b/146482131)
Modifikator „
Border
“ in „DrawBorder
“ umbenennen (I8ffcc)„LayoutCoordinates“ hat keine „position“-Eigenschaft mehr. Die Eigenschaft „position“ ist bei LayoutModifiers, Drehung oder Skalierung nicht sinnvoll. Stattdessen sollten Entwickler parentCoordinates und childToLocal() verwenden, um die Transformation von einer LayoutCoordinate in eine andere zu berechnen.
Bei LayoutCoordinates wird IntPxSize für die size-Property anstelle von PxSize verwendet. Für Layouts werden ganzzahlige Pixelgrößen verwendet. Daher sollten alle Layoutgrößen als Ganzzahlen und nicht als Gleitkommawerte angegeben werden. (I9367b)
Funktionsgefährdende Änderungen an der Ambient-API. Weitere Informationen finden Sie im Log und in der
Ambient<T>
-Dokumentation (I4c7ee, b/143769776).Die Scaffold-Materialkomponente wurde hinzugefügt. Geräte für Gerüste (I7731b)
DrawBorder wurde durch Border Modifier (Id335a) ersetzt.
Fehlerkorrekturen
- „FocusModifier“ ist zugunsten von „Modifier.focus“, „Modifier.focusRequester“ und „Modifier.focusObserver“ veraltet. FocusState und FocusDetailedState sind zugunsten von FocusState2 veraltet (I46919, b/160822875, b/160922136).
- „VerticalScroller“ und „HorizontalScroller“ wurden eingestellt. Verwenden Sie ScrollableColumn und ScrollableRow für eine integrierte Lösung 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 Status, der für das Scrollen erforderlich ist, wurde vereinfacht. „ScrollableState“ wurde in „ScrollableController“ umbenannt (Iab63c, b/149460415).
runOnIdleCompose
wurde inrunOnIdle
umbenannt (I83607)- Für Eigenschaften mit Einzelwertsemantik wird jetzt ein Aufrufstil verwendet. Beispiel: „semantics { hidden = true }“ wird jetzt als „semantics { hidden() }“ geschrieben. (Ic1afd, b/145951226, b/145955412)
- Mehrere Test-APIs wurden umbenannt, um sie intuitiver zu gestalten. Alle findXYZ-APIs wurden in onNodeXYZ umbenannt. Alle doXYZ-APIs wurden in performXYZ umbenannt. (I7f164)
- Die Transition API wurde geändert, sodass sie einen TransitionState zurückgibt, anstatt den TransitionState an untergeordnete Elemente zu übergeben. Dadurch wird die API konsistenter mit den animate()-APIs. (I24e38)
- Es wurde eine IntBounds-Einheitenklasse hinzugefügt, die ganzzahlige Pixelgrenzen aus dem Layout darstellt. Die API von PopupPositionProvider wurde aktualisiert, um sie zu verwenden. (I0d8d0, b/159596546)
- Den Test-Findern wurde das neue optionale Flag useUnmergedTree hinzugefügt. (I2ce48)
- Veraltete APIs zum Testen der Größe wurden entfernt. (Iba0a0)
- Die Inline-Klasse „Shader“ wurde entfernt, die die NativeShader-Expect-Klasse umschlossen hat. NativeShader wurde in Shader umbenannt. Die umschlossene Inline-Klasse „Shader“ hat der API-Oberfläche nichts Wertvolles hinzugefügt und war eine Inline-Klasse. Verwenden Sie daher die Klasse „NativeShader“ direkt. (I25e4d)
- Pop-ups, Dialogfelder und Menüs übernehmen jetzt das kontextbezogene MaterialTheme (Ia3665, b/156527485).
- Material-Dropdown-Menüs sind jetzt scrollbar. (Ide699)
- Der Parameter für die Layoutrichtung wurde aus dem Messblock der Funktion „Layout()“ entfernt. Die Layoutrichtung ist jedoch im Callback über das Messbereichsobjekt (Ic7d9d) verfügbar.
- Verwenden Sie AnimationSpec anstelle von AnimationBuilder in den APIs der obersten Ebene, um das Konzept der statischen Animationsspezifikation zu verdeutlichen. Verbessern Sie die Übergangs-DSL, indem Sie die Lambda-Anforderung zum Erstellen von AnimationSpecs wie Tween und Spring entfernen. Stattdessen werden Konstruktorparameter direkt verwendet. – Die allgemeine Benutzerfreundlichkeit von AnimationSpec wurde verbessert, indem Konstruktoren anstelle von Buildern verwendet werden. – Die Dauer und Verzögerung für KeyFrames und Tween wurde in „Int“ geändert. Dadurch werden unnötige Typumwandlungen und Methodenüberladungen (zur Unterstützung von „Long“ und „Int“) vermieden. (Ica0b4)
- Der Schalter wird jetzt deaktiviert angezeigt, wenn
enabled
auf „false“ gesetzt ist (If4624, b/155941869, b/159331694) - „Modifier.tag“ wurde in „Modifier.layoutId“ umbenannt, um Verwechslungen mit „Modifier.testTag“ zu vermeiden. (I995f0)
- Die von Placeable#get(AlignmentLine) zurückgegebenen Int-Positionen der Ausrichtungslinie sind jetzt nicht mehr null. Wenn die abgefragte Ausrichtungslinie fehlt, wird AlignmentLine.Unspecified zurückgegeben. (I896c5, b/158134875)
Die Klasse „Radius“ wurde in eine Inline-Klasse umgestaltet. Methoden zum Erstellen von Begleitern wurden zugunsten des Funktionskonstruktors mit Standardparameter entfernt, damit der Radius entlang der Y-Achse dem des obligatorischen X-Achsen-Radiusparameters entspricht.
Die Funktion DrawScope.drawRoundRect wurde aktualisiert, sodass sie einen einzelnen Radius-Parameter anstelle von zwei separaten Gleitkommawerten für den Radius entlang der x- und y-Achse verwendet (I46d1b).
Um die Anzahl der Klassen zu reduzieren, die zur Darstellung von Positionsinformationen verwendet werden, wird die Verwendung der Offset-Klasse anstelle von PxPosition standardisiert. Dies bietet die Vorteile einer Inline-Klasse, um einen „long“-Wert zu verwenden, um zwei Gleitkommawerte zu packen, die als Gleitkommazahlen dargestellte x- und y-Offsets darstellen. (I3ad98)
Die Verwendung der Px-Klasse in verschiedenen Compose-Klassen wurde im Rahmen der großen Umstellung ersetzt, um für Pixelparameter nur noch Dp und primitive Typen zu verwenden. Die Px-Klasse wurde vollständig gelöscht (I3ff33).
Die umschaltbare Komponente wurde eingestellt. Verwenden Sie stattdessen Modifier.toggleable (I35220, b/157642842).
Die Verwendung der Px-Klasse in verschiedenen Compose-Klassen wurde im Rahmen der großen Umstellung ersetzt, um sich bei Pixelparametern nur auf Dp und primitive Typen zu verlassen (I086f4).
Die Verwendung der Px-Klasse in verschiedenen Compose-Klassen wurde im Rahmen der großen Umstellung ersetzt, um sich bei Pixelparametern nur auf Dp und primitive Typen zu verlassen (Id3434).
Die Verwendung der Px-Klasse in verschiedenen Compose-Klassen wurde im Rahmen der großen Refaktorierung ersetzt, um sich nur auf Dp- und primitive Typen für Pixelparameter zu verlassen (I97a5a).
Der onClick-Handler wird jetzt für DropdownMenuItems 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 blinkt (Id10a7)
Die Verwendung der Px-Klasse in verschiedenen Compose-Klassen wurde im Rahmen der großen Umstellung ersetzt, um sich bei Pixelparametern nur auf Dp und primitive Typen zu verlassen (I19d02).
Die Komponente „VerticalScroller“ bietet jetzt standardmäßig „Column“. HorizontalScroller bietet jetzt standardmäßig Row. (Ieca5d, b/157020670)
Die Verwendung der Px-Klasse in verschiedenen Compose-Klassen wurde im Rahmen der großen Umstellung ersetzt, um nur noch Dp und primitive Typen für Pixelparameter zu verwenden (Iede0b).
„Modifier.semantics“ wurde wieder eingeführt, um die Verwendung für Komponenten auf hoher Ebene zu ermöglichen. (I4cfdc)
Die API für DrawLayer-Modifizierer wurde geändert: „outlineShape“ wurde in „shape“ umbenannt und hat jetzt den Standardwert „RectangleShape“ und ist nicht mehr nullfähig. „clipToOutline“ wurde in „clip“ umbenannt. „clipToBounds“ wurde entfernt, da es dasselbe ist wie „clip == true“ mit „RectangleShape“ (I7ef11, b/155075735).
Aktualisierte Compose-APIs auf höherer Ebene, die anstelle von CanvasScope ein Canvas-Objekt bereitstellen. Dadurch müssen Nutzer keine eigenen Paint-Objekte mehr verwalten. Für Nutzer, die weiterhin Zugriff auf ein Canvas benötigen, kann die drawCanvas-Erweiterungsmethode verwendet werden. Sie bietet einen Callback zum Ausgeben von Zeichenbefehlen mit dem zugrunde liegenden Canvas. (I80afd)
Die zusammensetzbare Funktion „AlignmentLineOffset“ wurde eingestellt. Verwenden Sie stattdessen den Modifier „relativePaddingFrom()“. Die zusammensetzbare Funktion „CenterAlignmentLine“ wurde entfernt. (I60107)
Die WithConstraints-Trailing-Lambda-API wurde geändert. Anstelle von zwei Parametern gibt es jetzt einen Empfängerbereich, der zusätzlich zu Einschränkungen und „layoutDirection“ die Eigenschaften „minWidth“, „maxWidth“, „minHeight“ und „maxHeight“ in Dp bietet (I91b9a, b/149979702).
Der Layout-Modifier „defaultMinSizeConstraints“ wurde hinzugefügt. Er legt Größenbeschränkungen für das umschlossene Layout nur dann fest, wenn die entsprechenden eingehenden Beschränkungen nicht angegeben sind (0 für Mindestbeschränkungen und unendlich für Maximalbeschränkungen). (I311ea, b/150460257)
„FocusManagerAmbient“ wurde entfernt. Verwenden Sie FocusModifier.requestFocus, um den Fokus zu erhalten. (Ic4826)
Die CanvasScope API wurde erstellt, die ein Canvas-Objekt umschließt, um eine zustandslose, deklarative Zeichen-API bereitzustellen. Transformationen sind in ihrem eigenen Empfängerbereich enthalten und Größeninformationen sind auch auf die entsprechenden Inset-Grenzen beschränkt. Der Consumer muss kein eigenes Paint-Zustandsobjekt zum Konfigurieren von Zeichenvorgängen verwalten.
CanvasScopeSample wurde hinzugefügt und die Demo-App wurde aktualisiert, um eine deklarative Grafikdemo (Ifd86d) zu enthalten.
Cursorfarben für das TextField anpassen (I6e33f)
TextFieldValue, das mit TextField verwendet wird, kann jetzt die Neuerstellung von Aktivitäten überstehen, wenn es so verwendet wird:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
(I5c3ce, b/155075724)„LayoutModifier2“ wurde in „LayoutModifier“ umbenannt. (Id29f3)
Die nicht mehr weitergeführte 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 IntrinsicMeasureScope-Empfänger, der eine API für intrinsische Abfragen mit implizit weitergegebener Layoutrichtung bereitstellt. (Id9945)
Der neue Modifier.zIndex() wurde hinzugefügt, um die Zeichenreihenfolge der untergeordneten Elemente innerhalb desselben übergeordneten Layouts zu steuern. Die Eigenschaft „elevation“ für DrawLayerModifier wurde in „shadowElevation“ umbenannt und steuert die Zeichenreihenfolge nicht mehr. Die Reihenfolge der Parameter für DrawShadow wurde geändert: „elevation“ ist jetzt der erste Parameter und „shape“ der zweite mit einem RectangleShape-Standardwert. (I20150, b/152417501)
RectangleShape wurde von androidx.ui.foundation.shape.* nach androidx.ui.graphics.* verschoben. (Ia74d5, b/154507984)
Aktualisierung der TextField API: Die Callbacks „onFocus“ und „onBlur“ wurden in einem einzigen Callback „onFocusChange(Boolean)“ mit Parameter zusammengeführt (I66cd3)
Den Komponenten „Row“ und „Column“ wurden die Parameter „verticalGravity“ und „horizontalGravity“ hinzugefügt. (I7dc5a)
Die Attribute „wrapContentWidth“ und „wrapContentHeight“ wurden aktualisiert. Sie erwarten jetzt eine vertikale oder horizontale Ausrichtung anstelle einer beliebigen Ausrichtung. Der Schwerkraftmodifikator wurde aktualisiert, um die vertikale oder horizontale Ausrichtung zu akzeptieren. „Zeile“, „Spalte“ und „Stapel“ wurden aktualisiert, um benutzerdefinierte kontinuierliche Ausrichtungen zu unterstützen. (Ib0728)
PixelMap API wurde erstellt, um das Abfragen von Pixelinformationen aus einem ImageAsset zu unterstützen. (I69ad6)
Entfernt ProvideContentColor. Verwenden Sie stattdessen ContentColorAmbient direkt mit
Providers
(Iee942).Das Modul „ui-text-compose“ wurde in „ui-text“ umbenannt. „ui-text“ enthält jetzt die Composables „CoreText“ und „CoreTextField“ (Ib7d47).
Das Modul „ui-text“ wurde in „ui-text-core“ umbenannt (I57dec).
Die Composables ui-framework/CoreText und CoreTextField wurden unter ui-text-compose verschoben. Möglicherweise möchten Sie „ui-text-compose“ in Ihr Projekt einbinden. (I32042)
DrawModifier API verbessern:
- Der Empfängerbereich für draw() wurde zu ContentDrawScope geändert.
- Alle Parameter für draw() entfernt
- DrawScope hat dieselbe Benutzeroberfläche wie das frühere CanvasScope.
- ContentDrawScope hat die Methode drawContent() (Ibaced, b/152919067)
runOnIdleCompose
undrunOnUiThread
sind jetzt globale Funktionen anstelle von Methoden für ComposeTestRule. (Icbe8f)[Mutable]State-Property-Delegatenoperatoren wurden in Erweiterungen verschoben, um die Optimierungen für Property-Delegaten 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“ wurde in „MeasureResult“ umbenannt. (Id8c68)
LayoutModifier2 wurde hinzugefügt, eine neue API zum Definieren von Layoutmodifizierern. LayoutModifier (If32ac) wurde eingestellt.
Modifikator plus Operator durch Factory-Erweiterungsfunktionen ersetzt (I225e4)
„Draggable“ wurde in den Modifier verschoben (Id9b16, b/151959544)
Die zusammensetzbare Funktion „ParentData“ ist veraltet. Sie sollten entweder einen Modifier erstellen, der die ParentDataModifier-Schnittstelle implementiert, oder den LayoutTag-Modifier verwenden, wenn Sie Layout-Untergeordnete nur taggen müssen, um sie im Measure-Block zu erkennen. (I51368, b/150953183)
Eingestellte Center-Composable. Es sollte entweder durch den Modifizierer „LayoutSize.Fill + LayoutAlign.Center“ oder durch eine der Box- oder Stack-Composables mit entsprechenden Modifizierern ersetzt werden (Idf5e0).
Die VectorPainter API wurde hinzugefügt, um die vorhandene Subcomposition API für Vektorgrafiken zu ersetzen. Das Ergebnis der Unterkomposition ist ein VectorPainter-Objekt anstelle eines DrawModifier. Die bisherigen DrawVector-Composables wurden zugunsten von VectorPainter eingestellt.
Die Image(Painter)-API wurde in PaintBox(Painter) umbenannt. Es wurde eine Vektor-Composable-Funktion erstellt, die sich wie die Image-Composable-Funktion verhält, aber anstelle eines ImageAsset ein VectorAsset verwendet (I9af9a, b/149030271).
„LayoutFlexible“ wurde in „LayoutWeight“ umbenannt. Der enge Parameter wurde in „fill“ umbenannt. (If4738)
RepaintBoundary wurde zugunsten von DrawLayerModifier entfernt (I00aa4)
DrawVector wurde von einer regulären zusammensetzbaren Funktion in eine Funktion geändert, die einen Modifier drawVector() zurückgibt, mit dem der Vektor als Hintergrund für ein Layout gezeichnet wird. (I7b8e0)
Die zusammensetzbare Funktion „Opacity“ wurde durch den Modifier „drawOpacity“ ersetzt. (I5fb62)
Ersetzen Sie die zusammensetzbare Funktion „Clip“ durch den Modifier „drawClip()“. „DrawClipToBounds“ ist ein praktischer Modifier, wenn Sie nur mit einer rechteckigen Form auf die Ebenengrenzen beschneiden müssen. (If28eb)
Die zusammensetzbare Funktion „DrawShadow“ wurde durch den Modifier „drawShadow()“ ersetzt. Schatten werden jetzt als Teil von „LayerModifier“ gezeichnet. (I0317a)
„LayerModifier“ hinzugefügt, ein Modifikator, mit dem einem Layout ein „RenderNode“ hinzugefügt werden kann. Damit lassen sich Beschneidung, Deckkraft, Drehung, Skalierung und Schatten festlegen. Damit wird „RepaintBoundary“ ersetzt. (I7100d, b/150774014)
androidx.compose.ViewComposer wurde nach androidx.ui.node.UiComposer verschoben. androidx.compose.Emittable wurde entfernt. Sie war redundant mit ComponentNode. androidx.compose.ViewAdapters wurde entfernt. Sie werden nicht mehr unterstützt. Die Funktion „Compose.composeInto“ wurde eingestellt. Verwenden Sie stattdessen
setContent
odersetViewContent
. Die Funktion „Compose.disposeComposition“ wurde eingestellt. Verwenden Sie stattdessen die Methodedispose
für das vonsetContent
zurückgegebeneComposition
. androidx.compose.Compose.subcomposeInto wurde zu 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).Die zusammensetzbare Funktion „CreatedImage“ übernimmt die Größenanpassung und das Layout und zeichnet ein bestimmtes ImageAsset auf dem Bildschirm. Diese zusammensetzbare Funktion unterstützt auch das Zeichnen einer beliebigen Painter-Instanz unter Berücksichtigung ihrer intrinsischen Größe sowie einer bestimmten festen Größe oder Mindestgröße (Ibcc8f).
Veraltete Wrap-Composable-Funktion. Er kann entweder durch den Modifier „LayoutAlign“ oder durch die zusammensetzbare Funktion „Stack“ (Ib237f) ersetzt werden.
WithConstraints hat den Parameter „LayoutDirection“ erhalten (I6d6f7)
Die Layoutrichtung wird jetzt vom übergeordneten Layoutknoten an die untergeordneten Knoten weitergegeben. Modifikator für die Layoutrichtung hinzugefügt. (I3d955)
Die Stapelkomponente unterstützt die Richtung von rechts nach links (Ic9e00).
Die zusammensetzbare Funktion „DrawShape“ wurde entfernt. Verwenden Sie stattdessen den Modifier „DrawBackground“. (I7ceb2)
Unterstützung für die Richtung „Rechts nach links“ im Modifier „LayoutPadding“ (I9e8da)
AdapterList wurde hinzugefügt, eine scrollbare Listenkomponente, die nur die sichtbaren Elemente zusammensetzt und anordnet. Zu den derzeit bekannten Problemen gehört, dass es nur vertikal funktioniert und nicht alle Fälle von Änderungen an untergeordneten Elementen vollständig berücksichtigt. (Ib351b)
Das Flag
ComposeFlags.COMPOSER_PARAM
wurde intrue
geändert. Dadurch ändert sich die Strategie für die Codegenerierung für das Compose-Plug-in. Auf hoher Ebene 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 binäre Breaking Change, sollte aber die Quellcodekompatibilität bei allen zulässigen Verwendungen von Compose beibehalten. (I7971c)Canvas-Komponente hinzugefügt Diese Composable-Funktion nimmt eine bestimmte Größe ein (vom Nutzer angegeben) und ermöglicht es Ihnen, mit CanvasScope (I0d622) zu zeichnen.
„Density“ und „DensityScope“ wurden in einer Benutzeroberfläche zusammengeführt. Statt ambientDensity() können Sie jetzt DensityAmbient.current verwenden. Anstelle von withDensity(density) nur with(density) (I11cb1)
„LayoutCoordinates“ wurde geändert, sodass „providedAlignmentLines“ ein Set anstelle einer Map ist und „LayoutCoordinates“ stattdessen den Operator „get()“ zum Abrufen eines Werts implementiert. So können Modifikatoren einen oder mehrere Werte des Sets ändern, ohne für jeden Modifikator eine neue Sammlung erstellen zu müssen. (I0245a)
Scroller verhalten sich jetzt wie bei der nativen Android-Wischbewegung. (I922af, b/147493715)
Verbesserungen der API-Oberfläche von Constraints (I0fd15)