Grundlagen verfassen
androidx.compose.foundation
androidx.compose.foundation.layout
androidx.compose.foundation.gestures
androidx.compose.foundation.selection
androidx.compose.foundation.lazy
androidx.compose.foundation.interaction
androidx.compose.foundation.text
(Siehe API-Referenzdokumente für alle Erstellungspakete)
Letzte Aktualisierung | Stabile Version | Releasekandidat | Beta-Ausgabe | Alpha-Release |
---|---|---|---|---|
21. August 2024 | 1.6.8 | 1.7.0–rc01 | - | - |
Struktur
Compose besteht aus sieben Maven-Gruppen-IDs innerhalb von androidx
. Jede Gruppe
enthält eine ausgewählte Teilmenge von Funktionen, jede mit ihren eigenen Release-Sätzen
Notizen.
In dieser Tabelle werden die Gruppen und Links zu den einzelnen Versionshinweisen erläutert.
Gruppe | Beschreibung |
---|---|
compose.animation: | Animationen in den Jetpack Compose-Anwendungen erstellen, um die User Experience zu bereichern |
compose.compiler | @Composable-Funktionen transformieren und Optimierungen mit einem Kotlin-Compiler-Plug-in aktivieren. |
compose.foundation | Schreiben Sie Jetpack Compose-Anwendungen mit gebrauchsfertigen Bausteinen und erweitern Sie die Grundlage für den Aufbau Ihrer eigenen Designsysteme. |
compose.material | Jetpack Compose-UIs mit einsatzbereiten Material Design-Komponenten erstellen Dies ist der übergeordnete Einstiegspunkt von Compose. Hier werden Komponenten bereitgestellt, die den unter www.material.io beschriebenen Komponenten entsprechen. |
compose.material3 einfügen | Jetpack Compose-UIs mit Material Design 3 Components erstellen, der nächsten Entwicklung des Material Design Material 3 enthält aktualisierte Designs und Komponenten sowie Funktionen zur Personalisierung von Material You wie dynamische Farben. Das Produkt wurde so entwickelt, dass es zum visuellen Stil und zur System-UI von Android 12 passt. |
compose.runtime | Grundlegende Bausteine des Programmiermodells und der Statusverwaltung von Compose sowie die zentrale Laufzeit für das Compose-Compiler-Plug-in. |
compose.ui | Grundlegende Komponenten der Benutzeroberfläche zum Schreiben von E-Mails, die für die Interaktion mit dem Gerät erforderlich sind, darunter Layout, Zeichnen und Eingabe |
Abhängigkeiten deklarieren
Wenn Sie eine Abhängigkeit von Compose hinzufügen möchten, müssen Sie das Maven-Repository von Google zu Ihrem Projekt arbeiten. Maven-Repository von Google lesen .
Fügen Sie der Datei build.gradle
die Abhängigkeiten für die Artefakte hinzu, die Sie benötigen
Ihre App oder Ihr Modul:
Cool
dependencies { implementation "androidx.compose.foundation:foundation:1.6.8" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.foundation:foundation:1.6.8") } 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
Dein Feedback hilft uns, Jetpack zu verbessern. Teilen Sie uns mit, wenn Sie neue Ausgaben entdecken oder zur Verbesserung dieser Bibliothek. In der bestehende Probleme in dieser Bibliothek, bevor Sie eine neue erstellen. So können Sie für ein vorhandenes Problem abstimmen: indem Sie auf die Sternschaltfläche klicken.
Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung. .
Version 1.7
Version 1.7.0-rc01
21. August 2024
androidx.compose.foundation:foundation-*:1.7.0-rc01
wurde veröffentlicht. Version 1.7.0-rc01 enthält diese Commits.
Fehlerkorrekturen
- Es wurde eine Regression behoben, bei der der Absturz auftrat, wenn ein Element auf ein übergeordnetes Element fokussiert war, das fokussierbar (oder anklickbar) und deaktiviert war. (b/317561689)
Version 1.7.0-beta07
7. August 2024
androidx.compose.foundation:foundation-*:1.7.0-beta07
wurde veröffentlicht. Version 1.7.0-beta07 enthält diese Commits.
Fehlerkorrekturen
- Die
SemanticsNodeInteraction
-FunktionenperformTextReplacement
,performTextInput
undperformTextClearance
im Zusammenhang mit Texteingabe geben jetzt Assertion-Fehler aus, wenn sie im schreibgeschütztenTextFields
aufgerufen werden. (I4ae8f) - Eine visuelle Störung in Hyperlinks wurde behoben. (I23311)
- Problem behoben, bei dem der
contentReceiver
-Modifikator bei einigen IMEs nicht funktionierte. - Geschwindigkeitsgenerierung: Verhindert die Weitergabe von NaN-Werten in der Compose-Benutzeroberfläche und der Foundation.
Version 1.7.0-beta06
24. Juli 2024
androidx.compose.foundation:foundation-*:1.7.0-beta06
wurde veröffentlicht. Version 1.7.0-beta06 enthält diese Commits.
Version 1.7.0-beta05
10. Juli 2024
androidx.compose.foundation:foundation-*:1.7.0-beta05
wurde veröffentlicht. Version 1.7.0-beta05 enthält diese Commits.
Fehlerkorrekturen
- Fehler bei der Behandlung von Nan-Werten in
SnapFlingBehavior
und Pager behoben.
Version 1.7.0-beta04
26. Juni 2024
androidx.compose.foundation:foundation-*:1.7.0-beta04
wurde veröffentlicht. Version 1.7.0-beta04 enthält diese Commits.
Fehlerkorrekturen
- Abstürze bei sehr großen Textzeilen vermeiden (z. B. 10.000 Zeichen) (8157ab)
- Die Messung von sehr großem Text, die im neuen
BasicTextField
zu Abstürzen führte, wurde korrigiert (6b7575). - Setzt eine Verhaltensänderung bei der Zeilen-/Spaltenmessung zurück, durch die in bestimmten Szenarien die Textnutzung beeinträchtigt wird (69e8ba).
Version 1.7.0-beta03
12. Juni 2024
androidx.compose.foundation:foundation-*:1.7.0-beta03
wurde veröffentlicht. Version 1.7.0-beta03 enthält diese Commits.
Version 1.7.0-beta02
29. Mai 2024
androidx.compose.foundation:foundation-*:1.7.0-beta02
wurde veröffentlicht. Version 1.7.0-beta02 enthält diese Commits.
API-Änderungen
- Fügt eine experimentelle API zum Konfigurieren des Prefetch-Verhaltens von
LazyGrids
hinzu, ähnlich der vorhandenen experimentellen API fürLazyLists
. Dazu gehört auch die Unterstützung für den Vorabruf von Elementen in verschachteltenLazyGrids
. Ähnlich wie beiLazyListPrefetchStrategy
werden die ersten beiden verschachtelten Elemente jedes Rasters standardmäßig vorab abgerufen. Dies kann jedoch über die neuenLazyGridPrefetchStrategy(nestedPrefetchItemCount)
- undLazyListPrefetchStrategy#onNestedPrefetch
-APIs konfiguriert werden. (I591c4) SemanticsProperties.Editable
wurde inIsEditable
umbenannt undSemanticsPropertyReceiver.editable
wird in einen WertisEditable
geändert. Die Eigenschaft ist jetzt ein boolescher Wert und wird immer durch Textfelder angegeben. (I8acd8)- Standardwerte vom Typ „
basicMarquee
“ wurden in das ObjektMarqueeDefaults
verschoben. (I12ff6) - Der Parameter
basicMarquee
delayMillis
wurde inrepeatDelayMillis
umbenannt. (I12ff6) - Update API zum Gestalten der Links:
TextLinkStyles
wurde inTextStyle
verschoben undTextDefaults
aus Material entfernt (I5477b)
Fehlerkorrekturen
LayoutCoordinates.introducesFrameOfReference
wurde inLayoutCoordinates.introducesMotionFrameOfReference
umbenannt, um den Zweck besser widerzuspiegeln. Die zugehörige Funktion wurde umbenannt, um Koordinaten basierend auf dieser Markierung zu berechnen. (I3a330)- „Standard“ entfernt aus den
MarqueeDefaults
-Attributen. (I1d8a0) - Laufrahmen wurde entfernt aus
MarqueeDefaults
Properties. (Iad4f4) TextLinkStyles
wurde aus der KlasseTextStyle
entfernt. Stattdessen istTextLinkStyles
Teil desLinkAnntation
-Konstruktors und derAnnotatedString.fromHtml
-Methode (I90b2b).- Es wurde ein Fehler behoben, bei dem der Pager beim Sprung in Richtung einer Grenze raschte, während er sich bereits an der Grenze befunden hatte. (I9f373, b/339171222)
- BTF2 verfügt jetzt über korrekte Mausauswahlgesten. (Ibe8c6)
Externer Beitrag
- Erneut senden: „Inhaltstyp für die Zeitberechnung anhand des Prefetch-Inhalts erstellen/messen, um die Genauigkeit zu verbessern“ (Iea622)
- Inhaltstyp für die Zeitberechnung zum Erstellen/Messen auf Basis des Prefetches erstellen, um die Genauigkeit zu verbessern (Ibccb1)
WindowInsetsPadding
-Modifikatoren aus gemeinsamem Quellsatz (I070b2) verfügbar machen
Version 1.7.0-beta01
14. Mai 2024
androidx.compose.foundation:foundation-*:1.7.0-beta01
wurde veröffentlicht. Version 1.7.0-beta01 enthält diese Commits.
API-Änderungen
- Die Eigenschaft
KeyboardOptions.shouldShowKeyboardOnFocus
wurde aus Gründen der Binärkompatibilität wieder als veraltet markiert. (I15cfe) Modifier.anchoredDraggable
kehrt jetzt Ziehdeltas jetzt standardmäßig für Komponenten mit horizontaler Ausrichtung um, wenn sie in einem RTL-Layout verwendet werden. (I3c6d9)AnnotatedString.hasEqualsAnnotations
ist jetzthasEqualAnnotations
. (I685c0)- Die API zum Erhalten von Material-Links im Text wurde aktualisiert. Insbesondere wurden die Methoden aus dem
TextDefaults
zum Erstellen von themenbezogenenLinkAnnotations
und zum Parsen von HTML mit themenbezogenen Links entfernt. Stattdessen wurde eineTextLinkStyles
-Klasse hinzugefügt, mit der die Links als Parameter für die zusammensetzbare Textfunktion gestaltet werden können. (I31b93) onDragStarted
undonDragStopped
wurden durch Callbacks ohne Sperrung ersetzt. (I59de8)
Fehlerkorrekturen
- Ein Fehler wurde behoben, bei dem Pager abstürzte, wenn
contentPadding
größer war als die eingehenden Einschränkungen. Pager erzwingt jetzt negative Werte, die vonPageSize
in 0 zurückgegeben werden. (Iba5d8, b/314008560)
Version 1.7.0-alpha08
1. Mai 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha08
wurde veröffentlicht. Version 1.7.0-alpha08 enthält diese Commits.
Neue Funktionen
- Für
BasicTextField
undSelectionContainer
wurde ein Kontextmenü mit der rechten Maustaste hinzugefügt, das Elemente zum Ausschneiden, Kopieren, Einfügen und zum Auswählen aller Aktionen enthält. (If8c93, Ia2b49, I6f268)
API-Änderungen
LazyLayout
Prefetch-Anfragen können jetzt als dringend gekennzeichnet werden. Wir erwarten also, dass dieses Element im nächsten Frame benötigt wird, und möchten das Frame-Budget ignorieren, damit wir im Voraus mehr Arbeit erledigen können (Id513f).isPositionedByParentWithDirectManipulation
wurde inintroducesFrameOfReference
umbenannt. Beachten Sie, dass dies jetzt den umgekehrten Effekt hat. Das bedeutet, dass die meistenLayoutCoordinates
standardmäßig einen Referenzrahmen einführen und das Attribut nur bei direkter Bearbeitung den Wert „false“ hat. Um die Position nur mit solchen abzufragen, die einen Bezugsrahmen beinhalten, verwenden SiepositionInLocalFrameOfReference(...)
. OderpositionInLocalLookaheadFrameOfReference
von einemLookaheadScope
. (Ifc5f7)onClicked
wurde inLinkInteractionListener
inonClick
umbenannt (Iaa35c)- Aktionslambda für
getScrollViewportLength
gemäß Feedback des API-Council ändern. (Ibc74a) - APIs zur Delegierung der Handschrifteingabe mit Eingabestiften wurden umbenannt. (Ica45f, b/327271923)
- Benennen Sie
TextInclusionStrategy.isInside
inisIncluded
um. Legen Sie fest, dass der RückgabetypParagraph/MultiParagraph#getRangeForRect()
nicht Nullwerte zulässig ist. (I51f26)
Fehlerkorrekturen
- „Alle auswählen“ hinzugefügt für alle Textkontextmenüs in
SelectionContainer
. (Ib750e, b/240143283) - Das Erfassen langer Screenshots für scrollbare Container mit
reverseScrolling=true
wurde korrigiert. (I7c59c) - Es wurde ein Problem behoben, bei dem sich die
currentValue
vonAnchoredDraggableState
änderte, wenn sie sich den Grenzen des Bundesstaates näherten. (Iea30b, b/333846848)
Externer Beitrag
- Umbenannt
PrefetchExecutor
->PrefetchScheduler
, um seine Verantwortlichkeiten besser zu reflektieren. (Ib9154) - Unterstützung für den Vorabruf von Elementen in verschachtelten
LazyLists
wurde hinzugefügt (z.B. einLazyColumn
, das verschachtelteLazyRows
rendert). Durch diese Änderung werden Frame-Einbrüche bei diesenLazyLists
voraussichtlich beim Scrollen reduziert. Standardmäßig werden die ersten beiden verschachtelten Elemente vorab abgerufen. Dieses Verhalten kann jedoch über die neuen APIsLazyLayoutPrefetchStrategy(nestedPrefetchItemCount)
undLazyListPrefetchStrategy#onNestedPrefetch
gesteuert werden. (I51952)
Version 1.7.0-alpha07
17. April 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha07
wurde veröffentlicht. Version 1.7.0-alpha07 enthält diese Commits.
Neue Funktionen
- Es wurde ein
TextDefaults
-Objekt hinzugefügt, das Methoden zum Erstellen einerLinkAnnotation
und zum Parsen von HTML-getaggten Strings enthält, dieMaterialTheme
auf die Links anwenden. (I98532, b/139312671) - Die Unterstützung für Animationen für das Erscheinungsbild und das Verschwinden von Elementen wurde in
LazyVerticalGrid
undLazyHorizontalGrid
hinzugefügt. Bisher war es möglich, denModifier.animateItemPlacement()
-Modifikator hinzuzufügen, um Animationen für die Platzierung (Neuanordnung) zu unterstützen. Wir haben diesen Modifikator eingestellt und einen neuen nicht experimentellen Modifikator namensModifier.animateItem()
eingeführt, mit dem alle drei Animationstypen unterstützt werden: Erscheinungsbild (Einblenden), Verschwinden (Ausblenden) und Neuanordnung. (Ib7d12, b/330510929) - Die Unterstützung für Animationen für das Erscheinungsbild und das Verschwinden von Elementen wurde in
LazyVerticalStaggeredGrid
undLazyHorizontalStaggeredGrid
hinzugefügt. Bisher war es möglich, denModifier.animateItemPlacement()
-Modifikator hinzuzufügen, um Animationen für die Platzierung (Neuanordnung) zu unterstützen. Wir haben diesen Modifikator eingestellt und einen neuen nicht experimentellen Modifikator namensModifier.animateItem()
eingeführt, mit dem alle drei Animationstypen unterstützt werden: Erscheinungsbild (Einblenden), Verschwinden (Ausblenden) und Neuanordnung. (I69bc9, b/330511290)
API-Änderungen
- Fügt
ContextMenuColors
und die zugehörigenLocalContextMenuTheme
ProvidableCompositionLocal
hinzu. Die Farben des Kontextmenüs für Textfelder und auswählbarer Text können geändert werden, indem die Komposition lokal bereitgestellt wird. (Ifa154) - Die Stiloption für Textlinks wurde neben der normalen Gestaltung auch gedrückt, wenn der Mauszeiger darauf bewegt wurde und der Text hervorgehoben wurde. (I5f864, b/139312671)
- Stelle
ViewConfiguration.HandwritingGestureLineMargin
für handschriftliche Gesten vor. Unterstützung der Handschrift-Geste fürBasicTextField
. (Ie6e13, b/325660505) DelegatableNode.scrollIntoView
wurde für Version 1.7 entfernt, da wir keine Zeit hatten, die Stabilisierung der übrigen API-Oberfläche abzuschließen. Diese Funktion wird in 1.8 wieder eingeführt (I6cf61, b/333421581, b/332900232).- Bei der Abfrage von Layoutkoordinaten können Sie jetzt das Argument
excludeDirectManipulationOffset
verwenden, um den Versatz von übergeordneten Layouts auszuschließen, bei denen die untergeordneten Layouts mithilfe vonPlaceable.PlacementScope.withDirectManipulationPlacement
platziert wurden. Ebenso kann ein Layout, bei dem sich die Position seiner untergeordneten Elemente häufig ändert, diese nun mithilfe vonwithDirectManipulationPlacement
platzieren, wie z. B. „Scrollen“, das standardmäßig implementiert ist. Auf diese Weise sind die aufapproachLayout
basierenden Animationen intuitiver. Sie haben jetzt die Möglichkeit zu unterscheiden, welcher Offset animiert werden soll und was direkt angewendet werden soll, wenn es um die Animation des Ansatzes geht. (I60ec7) - Stelle
requestScrollToItem
fürLazyStaggeredGrid
vor. Für jeden Measure-Pass kann der Client nun durch Aufrufen vonrequestScrollToItem
die Pflege des Index basierend auf dem Schlüssel deaktivieren. Dies ändert das vorhandene Verhalten in keiner Weise, es sei denn,requestScrollToItem
wird aufgerufen. (I63983) - Stell
requestScrollToPage
als Pager vor. Für jeden Measure-Pass kann der Client nun durch Aufrufen vonrequestScrollToPage
die Pflege des Index basierend auf dem Schlüssel deaktivieren. Dies ändert das vorhandene Verhalten in keiner Weise, es sei denn,requestScrollToPage
wird aufgerufen. (IC4213) - „
requestScrollToItem
“ wurde fürLazyGrids
eingeführt. Für jeden Measure-Pass kann der Client nun durch Aufrufen vonrequestScrollToItem
die Pflege des Index basierend auf dem Schlüssel deaktivieren. Dies ändert das vorhandene Verhalten in keiner Weise, es sei denn,requestScrollToItem
wird aufgerufen. (I0a7a0) ClickableText
ist als veraltet markiert. Um dem Text Links hinzuzufügen, erstellen Sie einAnnotatedString
mit einerLinkAnnotation
, die Ihrem Link entspricht, und übergeben Sie diesesAnnotatedString
an die zusammensetzbareText
-Funktion (I34d4b, b/323346994).UrlAnnotation
wurde verworfen. Verwenden Sie stattdessenLinkAnnotation.Url
. Wenn Sie Material-Designs verwenden, erstellen Sie mit einemTextDefaults
-Objekt die Anmerkung mit angewendeten Material-Designs (I8d180, b/323346545).String.parseAsHtml
umbenannt inAnnotatedString.Companion.fromHtml
(I43dcd)- Stilargumente (
linkStyle
,focusedLinkStyle
,hoveredLinkStyle
) und ein Linkinteraktions-Listener für dieparseAsHtml
-Methode hinzugefügt. Wenn der HTML-getaggte String mit<a>
-Tags geparst wird, erstellt die Methode für jedes dieser Tags einLinkAnnotation.Url
und übergibt die Stilobjekte und den Link-Interaktions-Listener an jede Annotation. (I7c977) LinkAnnotation
verwendet jetzt die zustandsbasierten Stilargumente und einenLinkInteractionListener
. Fügen Sie diese Annotation zumAnnotatedString
hinzu, um einen Hyperlink zu erhalten. Durch die Übergabe vonfocusedState
und/oderhoveredState
können Sie die visuelle Konfiguration für Links definieren, die hervorgehoben werden und/oder wenn der Mauszeiger darauf bewegt wird. (I81ce4, b/139312671)- Die Funktions-Flag für lange Screenshots wurde entfernt. (I28648, b/329128246)
LazyColumn
rendert fixierte Überschriften in langen Screenshots jetzt korrekt. (I8d239, b/329296635)- Die Mehrheit der verbleibenden experimentellen APIs, die mit der neuen
BasicTextField
eingeführt wurden, wurde stabilisiert. (I714e2) BasicSecureTextField
wurdetextObfuscationCharacter
-Parameter hinzugefügt, der steuert, welches Zeichen bei der Verschleierung des Inhalts verwendet werden soll. (I0588b)NestedScroll
-Quellen „Ziehen und Ziehen“ werden durchUserInput
undSideEffect
ersetzt, um die erweiterte Definition dieser Quellen zu ermöglichen, die jetzt Animationen (Seiteneffekt) sowie Mausrad und Tastatur (UserInput
) umfasst. (I40579)- Stell
LocalBringIntoViewSpec
vor, ein plattformabhängiges Scrollverhalten im Fokus, das auf der Ebene mit dem Modus für scrollbare Modifikatoren angewendet wird. (I27aa5, b/317453911) TextFieldCharSequence
wurde entfernt.TextFieldBuffer.originalValues
wird durchTextFieldBuffer.originalText
undTextFieldBuffer.originalSelection
ersetzt. (I2c7d6)- Für
ImeOptions.hintLocales
können keine Nullwerte mehr eingegeben werden. Wenn Sie eine leere Gebietsschemaliste übergeben möchten, verwenden SieLocaleList.Empty
. (Ic5bc4) getOffsetFractionForPage
wurde ingetOffsetDistanceInPages
umbenannt. (Ia05e2)
Fehlerkorrekturen
- Wenn
InputTransformations
mitnext
zusammengeführt werden, werden dieKeyboardOptions
jetzt ordnungsgemäß durch einzelne Optionen mit der neuenKeyboardOptions.merge
-Methode zusammengeführt. (Ie5304, b/295951492) targetValue
vonAnchoredDraggableState
berücksichtigt jetzt keine Positionsgrenzwerte mehr. Er hat jetzt einen impliziten Schwellenwert von 50%, was bedeutet, dass sichtargetValue
am Mittelpunkt zwischen zwei Ankern ändert. (I82c2c)
Externer Beitrag
- Zwei Scroll-APIs wurden umbenannt (I56a75).
Version 1.7.0-alpha06
3. April 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha06
wurde veröffentlicht. Version 1.7.0-alpha06 enthält diese Commits.
Neue Funktionen
- Die Unterstützung für Animationen für das Erscheinungsbild und das Verschwinden von Elementen wurde in
LazyColumn
undLazyRow
hinzugefügt. Bisher war es möglich, denModifier.animateItemPlacement()
-Modifikator hinzuzufügen, um Animationen für die Platzierung (Neuanordnung) zu unterstützen. Wir haben diesen Modifikator eingestellt und einen neuen nicht experimentellen Modifikator namensModifier.animateItem()
eingeführt, mit dem alle drei Animationstypen unterstützt werden: Erscheinungsbild (Einblenden), Verschwinden (Ausblenden) und Neuanordnung. (I2d7f7, b/150812265) - Clients von
LazyColumn/LazyRow
können die Verwaltung eines Index auf Grundlage des Schlüssels für die bevorstehende Messungsdurchführung jetzt deaktivieren, indem sieLazyListState.requestToScroll
ohne Sperrung aufrufen. (I98036, b/209652366) - Es wurde die
parseAsHtml
-Methode für Strings mit benutzerdefinierten Stilen hinzugefügt: Sie ermöglicht das Konvertieren eines mit HTML-Tags markierten Strings inAnnotatedString
. Beachten Sie, dass nicht alle Tags unterstützt werden. Zum Beispiel können Sie noch keine Aufzählungslisten anzeigen. (I84d3d) - Implementierung der experimentellen Unterstützung für lange Screenshots in Scroll-Containern von Compose mit der offiziellen Android API (
ScrollCaptureCallback
). Dies ist eine experimentelle Funktion, die möglicherweise derzeit nicht alle Fälle korrekt verarbeitet. Aus diesem Grund ist sie derzeit standardmäßig deaktiviert. Legen Sie zum Aktivieren das FlagComposeFeatureFlag_LongScreenshotsEnabled
auf „true“ fest. Dieses Flag wird vor der Betaversion 1.7 entfernt. (I2b055, b/329296471) - Führen Sie die neue
GraphicsLayer
API ein, um mehr Flexibilität bei der Platzierung und das Rendering vonGraphicsLayer
-Instanzen zu bieten und intrinsische Renderingfunktionen zu unterstützen, ohne sich mit Composable-Implementierungen koordinieren zu müssen, umGraphicsLayer
-Modifikatorinstanzen anzugeben.
API-Änderungen
- Alle
KeyboardOptions
-Parameter haben jetzt standardmäßig einen nicht angegebenen Wert. MethodeKeyboardOptions.merge
wurde hinzugefügt. KeyboardOptions.autoCorrect
wurde inautoCorrectEnabled
umbenannt und dafür gesorgt, dass Nullwerte zulässig sind, wobei null bedeutet, dass kein Wert angegeben wurde. (Ia8ba0, b/295951492)outOfBoundsPageCount
wurde inbeyondViewportPageCount
umbenannt. (I129c6)- „
fun ClipEntry.getMetadata()
“ wird in „val ClipEntry.clipMetadata
“ geändert. (I50155) TextFieldState.valueAsFlow()
wurde entfernt.snapshotFlow { state.text }
odersnapshotFlow { TextFieldCharSequence(state.text, state.selection) }
bevorzugen (I7d629)InputTransformation.transformInput
-Parameter neu organisiert. „originalValue: TextFieldCharSequence
“ wurde entfernt. Stattdessen trägtTextFieldBuffer
diesen Wert jetzt mit demselben Namen. Außerdem wurde der ParametervalueWithChanges: TextFieldBuffer
entfernt.TextFieldBuffer
ist jetzt der Empfängerbereich der Funktion. (I919cc)- Die Variante „
BasicTextField(state)
“ und „BasicSecureTextField
“ verwenden jetztKeyboardActionHandler
anstelle vonKeyboardActions
, um Aktionen über die Softwaretastatur zu verarbeiten. (I58dda) - APIs zum Delegieren von Handschriften mit Eingabestiften zur Unterstützung der Handschrifterkennung für „Fake“ Texteingabefelder. (I9c09c, b/327271923)
KeyboardOptions.shouldShowKeyboardOnFocus
wurde inshowKeyboardOnFocus
umbenannt. (Ib4b7a, b/295951492)- Parameter
hintMediaTypes
wurde ausModifier.contentReceiver
entfernt. Entwicklern wurde bereits empfohlen, den Medientyp des empfangenenTransferableContent
zu prüfen, da er möglicherweise nicht mit dem konfiguriertenhintMediaTypes
kompatibel ist. (I82f99) - Die Parameter von
BasicSecureTextField
wurden neu angeordnet. Die ParameterkeyboardType
undimeAction
wurden zugunsten der vollständigenKeyboardOptions
-Klasse entfernt, wobei die gleichen Standardwerte fürBasicSecureTextField
beibehalten wurden. Außerdem wurde der ParameterscrollState
entfernt. (Ibbfa9) - Der Typ von „
TextFieldState.text
“ wird von „TextFieldCharSequence
“ in „CharSequence
“ geändert. Daher wurdenTextFieldState.selection: TextRange
undTextFieldState.composition: TextRange?
hinzugefügt, um die aktuellen Auswahl- und Zusammensetzungswerte direkt aus dem Zustandsobjekt zu lesen. TextFieldState.forEachTextValue
wurde entfernt. (Idb2a2)- Die Funktionen
ClipboardManager.getClipMetadata
undClipboardManager.hasClip
wurden entfernt. VerwendeclipEntry.getMetadata()
, um die Metadaten des aktuellen Clipeintrags zu lesen. Prüfen Sie auch das Ergebnis vonClipboardManager.getClip
, wenn es null ist oder nicht, um festzustellen, ob die Zwischenablage einen aktuellen Clip enthält. (I50498) ClipboardManager.setClip
akzeptiert jetzt null, um die Zwischenablage zu leeren. (I7d2e9)ReceiveContentListener
wird in eine Funktionsschnittstelle konvertiert. Außerdem wird dieModifier.receiveContent
-Überlastung, die eine Lambda-Funktion annimmt, entfernt, daReceiveContentListener
jetzt eine Funktionsschnittstelle ist.Modifier.receiveContent
wurde inModifier.contentReceiver
umbenannt. (I1e6af)TransferableContent.consumeEach
wurde inTransferableContent.consume
umbenannt. (I1e462)rememberTextFieldState
ist auf eine stabile API umgestellt. (I37999)
Fehlerkorrekturen
- Ein Fehler wurde behoben, bei dem die Variante
BasicTextField(state)
nicht mit CJK-Tastaturen(kompositionsbasiert) funktionierte. (I54425) - Es wurde ein Fehler behoben, bei dem
Modifier.dragAndDropTarget()
in bestimmten Szenarien mit der Wiederverwendung vonModifier.Node
auf veraltete Daten verweisen konnte. (I05bb1) - Eine kürzlich erfolgte Vertragsänderung wurde rückgängig gemacht, bei der
AnchoredDraggableState#anchoredDrag
-Aufrufe am Ende einesanchoredDrag
-Vorgangs anspringen. (I95715)
Version 1.7.0-alpha05
20. März 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha05
wurde veröffentlicht. Version 1.7.0-alpha05 enthält diese Commits.
API-Änderungen
- Die lokale Testkomposition
LocalTextLinkStyle
für das Gestalten von Hyperlinks wurde entfernt. (Iebfa7) - Die experimentelle Überschreibung von
BasicText
mit dem ArgumentonLinkClicked
wurde entfernt. In Zukunft wird eine Ersatz-API für die Unterstützung von Hyperlinks folgen. (I107d5) - Codepoints-bezogene Methoden und Eigenschaften unter
TextFieldState
undTextFieldBuffer
wurden entfernt. Außerdem wurden dieinChars
-Suffixe aus den verbleibenden APIs zur Auswahl und Zusammensetzung entfernt. (Ief7ce) - Der
currentValue
vonAnchoredDraggable
wird jetzt aktualisiert, wenn er durch einen Ankerpunkt bewegt wird. VerwendesettledValue
, um die vorherigecurrentValue
-Semantik zu erhalten, und wird nur aktualisiert, wenn sich die App an einem Anker befindet. Der Fortschritt wird jetzt als Funktion statt als Eigenschaft angezeigt, die einen Start- und Endpunkt erfordert. (Ibe6e8, b/318707189, b/298271489, b/294991954) BasicTextField(state)
,TextFieldState
,InputTransformation
,OutputTransformation
,TextFieldLineLimits
,TextFieldDecorator
wurden auf die stabile Version umgestellt. (I9582b)- Einführung von
InterceptPlatformTextInput
für das Schreiben von Low-Level-IME-Tests und anderen Low-Level-IME-Anwendungsfällen.PlatformTextInputTestOverride
wurde verworfen. (I862ed, b/322680547) restrictedConstraints()
in zwei Methoden aufteilen:fitPrioritizingWidth()
undfitPrioritizingHeight()
(I6d7fd)
Externer Beitrag
- Zwei neue API
isLastScrollForward
/isLastScrollBackward
hinzugefügt, um die Scrollrichtung für die neueste Scrollaktion zu prüfen. Gibt „false“ zurück, wenn noch keine Scrollaktion vorhanden ist. (I63a0e)
Version 1.7.0-alpha04
6. März 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha04
wurde veröffentlicht. Version 1.7.0-alpha04 enthält diese Commits.
API-Änderungen
- Unterstützung der Handschriftfunktion mit Eingabestift auf Geräten ab Android U. (I002e4)
hintLocales
wurde zuKeyboardOptions
hinzugefügt, damitTextFields
IMEs mit bestimmten Sprachen als Hinweis auf eine bevorzugte Sprache angeben kann. (Id18c2)- Die experimentellen
BasicTextField2
- undBasicSecureTextField
-Überlastungen, für die die Parametervalue: String
undonValueChange: () -> String
erforderlich waren, wurden entfernt. (I568b4) - Fügen Sie
InputTransformation
eine optionaleapplySemantics
-Funktion hinzu, um die Semantik derBasicTextField2
zu beeinflussen, auf die sie angewendet wird. (I74a2f, b/170648072) - In dieser CL wird die semantische Aktion
GetScrollViewportLength
hinzugefügt, damit Informationen zu den Komponenten, nach denen in der Zusammensetzung gescrollt wird, an das A11y-System weitergeleitet werden können. Diese CL wendet auch die Verwendung dieser Property in scrollbaren Foundation-Listen an. (Ic5fa2) BasicTextField2
wurde inBasicTextField
umbenannt. (Beispielsweise 5713)FocusRequester.createRefs
ist jetzt stabil (I4d92c, b/261436820).- Einführung von
DelegatableNode.scrollIntoView()
, damit ModifikatorknotenscrollIntoView
-Anfragen direkt senden können. (I2b3b7, b/299939840) DelegatableNode.requireView()
wurde eingeführt, damit Modifikatorknoten das aktuelle Android-View
abrufen können, ohne eine lokale Zusammensetzung zu lesen. (I40768)- Einführung von kontextbezogenen Layoutinformationen in den Zeilenbereich des Kontextflusses und den Spaltenbereich des Kontextflusses, einschließlich Linienindex, Position und Einschränkungen für maximale Breite und Höhe, um in einer bestimmten Position zu bleiben. Elemente, die die maximale Breite/Höhe überschreiten, werden möglicherweise in die nächste Zeile verschoben oder aufgrund der Überlaufeinstellungen weggelassen. (Id13f8, b/292114798)
Fehlerkorrekturen
- Es wurde ein Fehler behoben, bei dem das Umschalten der
enabled
- oderreadOnly
-Attribute vonTextField
unter bestimmten Bedingungen zu einem Absturz führte. (Iae17b)
Version 1.7.0-alpha03
21. Februar 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha03
wurde veröffentlicht. Version 1.7.0-alpha03 enthält diese Commits.
API-Änderungen
DelegatableNode.requireLayoutCoordinates()
wurde eingeführt, um den aktuellenLayoutCoordinates
einerModifier.Node
abzurufen, ohneonPlaced
überschreiben und die Koordinaten selbst in einer Property speichern zu müssen. (Ia8657)DelegatableNode.currentLayoutCoordinates
wurde eingeführt, um den aktuellenLayoutCoordinates
einerModifier.Node
abzurufen, ohneonPlaced
überschreiben und die Koordinaten selbst in einer Property speichern zu müssen. (Iaebaa)- Leistungsoptimierungen in
DraggableAnchors
werden vonAnchoredDraggable
verwendet. (I89cff) BasicTextField2
und zugehörige APIs unter dem Paketandroidx.compose.foundation.text2
werden nachandroidx.compose.foundation.text
verschoben. (I9f635)BasicTextField2
akzeptiert keinenCodepointTransformation
-Parameter mehr. VerwendeBasicSecureTextField
oderOutputTransformation
. (Id34ff)- Es wurde eine Methode hinzugefügt, mit der nur die Annotationen von zwei
AnnotatedStrings
verglichen werden können. (I32659) - Jetzt neu:
ContextualFlowRow
und erweiterteFlowRow
/Column
mitMaxLines
undOverflow
. Wir freuen uns, Verbesserungen an den experimentellenFlowRow
undFlowColumn
ankündigen zu können, die jetzt neben der Einführung vonContextualFlowRow
undContextualFlowColumn
auchmaxLines
und Überlauf-Unterstützung umfassen. Dieses Update wurde entwickelt, um Komponenten für eine optimale Leistung bereitzustellen, wobeiContextualFlow*
perfekt für eine große Anzahl von Artikeln mit einer kleinenmaxLines
-Konfiguration und dynamischer +N-Schaltflächen für die Anzeige weiterer Schaltflächen undFlowRow
undFlowColumn
ideal für eine kleine Anzahl von Artikeln, also weniger als 100 Elemente, geeignet ist. Wichtig: Wenn Sie das bestehende Verhalten inFlowRow
oderFlowColumn
beibehalten möchten, bei dem alle Elemente unabhängig davon, ob sie zum Maximum der Querachse passen, zusammengehören, setzen Sieoverflow
während der Initialisierung aufFlowRowOverflow.Visible
oderFlowColumnOverflow.Visible
. Sehen Sie sich die Beispiele für diese neuen Funktionen inContextualFlowRowSample
undFlowRowSample
an. (Ib9135, b/293577082)
Fehlerkorrekturen
- Für die Cursoranimation werden keine Frames mehr angefordert, die sich im Ein- oder Aus-Zustand befinden. (Ia2253)
KeyboardOptions
min Veraltete Kopierkonstruktoren kopieren jetzt alle Eigenschaften korrekt. (If12de)
Version 1.7.0-alpha02
7. Februar 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha02
wurde veröffentlicht. Version 1.7.0-alpha02 enthält diese Commits.
API-Änderungen
HorizontalPager
,VerticalPager
undPagerState
werden auf die stabile Version hochgestuft. (I67660, b/316966909)- Es wurde eine lokale
LocalTextLinkStyle
-Erstellung hinzugefügt, mit der der Stil der Links im Textformat in der App geändert werden kann. Wenn Sie in der App Ihr eigenes Design verwenden, sollten Sie diese Komposition lokal entsprechend Ihrem Design festlegen. Wenn Sie das Material-Design verwenden, ist die Farbe des Links standardmäßig auf die Primärfarbe des Materials festgelegt. (I7eb10) - Der
receiveContent
-Modifikator wurde eingeführt, der Entwicklern die Möglichkeit bietet, in Jetpack Compose aussagekräftige Inhalte zu empfangen. receiveContent
lässt sich inBasicTextField2
einbinden, um Rich-Text-Inhalte zu akzeptieren, die über die Softwaretastatur oder die Einfügefunktion in der Zwischenablage bereitgestellt werden. (I81b72)- Im Rahmen dieser Änderung ersetzen wir
SnapFlingBehavior
im Pager-Modus durchTargetedFlingBehavior
, um weitere Anwendungsfälle freizuschalten und mehr Flexibilität zu bieten. (I762ea) - Mit dieser Änderung machen wir Snapping APIs stabil. Außerdem bereinigen wir einen Teil des Testcodes und fügen dem Snapping weitere Beispiele hinzu. (Id8da9)
- Führe
TargetedFlingBehavior
ein. DiesesFlingBehavior
-Element ermöglicht die Weitergabe von Informationen zum Status der laufenden Animation und zum Ziel-Scroll-Offset. (I6a207)
Fehlerkorrekturen
BasicTextField2
behält den Cursor bei der Eingabe jetzt im Blick, wenn er aus dem sichtbaren Bereich gescrollt wurde oder aufgrund der Eingabe aus dem sichtbaren Bereich verschoben wird. (Ieb856, b/237190748)
Externer Beitrag
- Fügt eine experimentelle API zum Konfigurieren des Prefetch-Verhaltens von LazyLists hinzu. (I022a4)
Version 1.7.0-alpha01
24. Januar 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha01
wurde veröffentlicht. Version 1.7.0-alpha01 enthält diese Commits.
Neue Funktionen
Indication API
neu hinzugefügt:IndicationNodeFactory
. Dies führt zu leistungsfähigerenIndication
-Implementierungen im Vergleich zur vorherigen (jetzt verworfenen)rememberUpdatedInstance
API. Informationen zur Migration findest du unter developer.android.com.clickable / combinedClickable / selectable / toggleable
akzeptiert jetzt einenMutableInteractionSource
-Parameter, für den Nullwerte zulässig sind. Wenn der Wert null ist und die angegebeneIndication
einIndicationNodeFactory
ist, kann dieIndication
nur bei Bedarf verzögert erstellt werden, wodurch die Leistung verbessert wird. Wenn du nicht aufhebst undMutableInteractionSource
verwendest, wird empfohlen, null zu übergeben.
API-Änderungen
- Führen Sie
DecayAnimation
inAnchoredDraggable
ein. Durch diese Änderung wirdAnchoredDraggable
eindecayAnimationSpec
-Parameter hinzugefügt, der die Verwendung einer Abklinganimation ermöglicht, wenn sich der Anker auf einen der Anker bezieht. Die Änderung umfasst auch die Umbenennung der vorhandenenanimationSpec
insnapAnimationSpec
, um die Anwendungsfälle der einzelnen Spezifikationen besser verständlich zu machen. BasicTextField2
ist für experimentelle Zwecke verfügbar. Sie sollte in etwa gleichwertig mitBasicTextField
sein und das Verhalten sollte produktionsreif sein. Die API ist vorerst jedoch noch experimentell. Vor der Stabilisierung wird es inBasicTextField
umbenannt und in dasselbe Paket verschoben.- Der erste Entwurf der
OutputTransformation
API fürBasicTextField2
wurde eingeführt. Diese API ersetzt die meisten Anwendungsfälle vonVisualTransformation
in der altenBasicTextField
. Sie ist jedoch noch nicht vollständig und einige Dinge werden nicht richtig funktionieren, aber wir würden uns über Feedback zur API-Nutzungsfreundlichkeit für Ihre Anwendungsfälle freuen. (aosp/2708848) LinkAnnotation
wurde eingeführt, mit dem Links und anklickbare Elemente in Text eingefügt werden können. Die Linkfunktion ist noch nicht vollständig. Weitere API-Änderungen sind geplant.- Der
receiveContent
-Modifikator wurde eingeführt, der Entwicklern die Möglichkeit bietet, in Jetpack Compose aussagekräftige Inhalte zu empfangen. receiveContent
lässt sich inBasicTextField2
einbinden, um Rich-Media-Inhalte zu akzeptieren, die über die Softwaretastatur oder das Einfügen aus der Zwischenablage bereitgestellt werden.- Mit
KeyboardOptions.shouldShowKeyboardOnFocus
kannst du das StandardverhaltenBasicTextField
bei der Anforderung einer fokussierten Tastaturtastatur deaktivieren. TextInputService
undLocalTextInputService
wurden verworfen. Verwenden Sie stattdessenPlatformTextInputModifierNode
für die direkte Einbindung in Plattform-IME-APIs. (aosp/2862698)Indication#rememberUpdatedInstance
wurde verworfen. Sie hat eine unvermeidliche Leistungseinbußen und verhindert weitere Optimierungen. Stattdessen sollten Sie die neueIndicationNodeFactory
API verwenden.
Fehlerkorrekturen
BasicTextField
validiert jetzt eine kleine Auswahl von Offset-Zuordnungen vorab, wennVisualTransformation
übergeben wird. So lassen sich häufige Codierungsfehler erkennen, die zu nicht wiederherstellbaren Ausnahmen bei späteren Mess- oder Zeichendurchläufen führen. Durch das Auslösen dieser Fehler während der Komposition ist es wahrscheinlicher, dass Entwickler diese Fehler während der Entwicklung sehen, was dazu beiträgt, Produktionsabstürze zu vermeiden. (I0fd42)VisualTransformation
wird nicht ausgelöst, wenn Sie einen ungültigen Index für einen ungültigen Index zurückgeben (b/316401857 ).
Version 1.6
Version 1.6.8
12. Juni 2024
androidx.compose.foundation:foundation-*:1.6.8
wurde veröffentlicht. Version 1.6.8 enthält diese Commits.
Version 1.6.7
1. Mai 2024
androidx.compose.foundation:foundation-*:1.6.7
wurde veröffentlicht. Version 1.6.7 enthält diese Commits.
Version 1.6.6
17. April 2024
androidx.compose.foundation:foundation-*:1.6.6
wurde veröffentlicht. Version 1.6.6 enthält diese Commits.
Fehlerkorrekturen
- Es wurde ein Fehler behoben, bei dem das Umschalten der
enabled
- oderreadOnly
-Attribute vonTextField
unter bestimmten Bedingungen zu einem Absturz führte. (Iae17b)
Version 1.6.5
3. April 2024
androidx.compose.foundation:foundation-*:1.6.5
wurde veröffentlicht. Version 1.6.5 enthält diese Commits.
Fehlerkorrekturen
- Schwer zu reproduzierenden Fehlern in Zeile/Spalte (b/300280216 und b/297974033)
Version 1.6.4
20. März 2024
androidx.compose.foundation:foundation-*:1.6.4
wurde veröffentlicht. Version 1.6.4 enthält diese Commits.
Fehlerkorrekturen
- Eine Auswahlgeste für langes Drücken und anschließendes Ziehen, die im ersten Frame des Drag aus den Layoutgrenzen des Textes herausbewegt, stürzt nicht mehr ab. (Icdf90, b/325307463)
Version 1.6.3
6. März 2024
androidx.compose.foundation:foundation-*:1.6.3
wurde veröffentlicht. Version 1.6.3 enthält diese Commits.
Version 1.6.2
21. Februar 2024
androidx.compose.foundation:foundation-*:1.6.2
wurde veröffentlicht. Version 1.6.2 enthält diese Commits.
Fehlerkorrekturen
- Fehler beim Zurücksetzen von „
AnimateContentSize
“ beheben. (I07051) - Ein Problem wurde behoben, bei dem
intrinsicHeight
Text unter bestimmten Umständen zu viel im Cache gespeichert wurde. (3cd398, b/217910352)
Version 1.6.1
7. Februar 2024
androidx.compose.foundation:foundation-*:1.6.1
wurde veröffentlicht. Version 1.6.1 enthält diese Commits.
Fehlerkorrekturen
- Die gestaffelte Rastermessung beim Scrollen über das Limit wurde korrigiert. (bffc39)
- Prüfung auf Layout mit großen Abmessungen hinzufügen. (e74af5)
- Die Position von 0-Elementen am Anfang des gestaffelten Rasters korrigieren. (785f94)
- Rufe den onRelease-Callback in der gleichen Reihenfolge wie onforgotten auf. (31ce3b)
Version 1.6.0
24. Januar 2024
androidx.compose.foundation:foundation-*:1.6.0
wurde veröffentlicht. Version 1.6.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.5.0
- Neuer Modifikator
Modifier.anchoredDraggable
, der die Möglichkeit freischaltet, zwischen vordefinierten Ankersätzen zu ziehen und zu animieren. Dieser Modifikator sollModifier.swipeable
ersetzen. In der Migrationsanleitung erfahren Sie, wie Sie es verwenden und vonModifier.swipeable
migrieren können. - Es wurde eine Drag-and-drop-Funktion zwischen Apps und Komponenten hinzugefügt. Weitere Informationen finden Sie unter
DragAndDropTarget
,Modifier.dragAndDropSource
und andere APIs Modifier.draggable2D
ist der neue Modifikator, der eine einfache Unterstützung für das Ziehen in 2D ermöglicht. Siehe Beispiel.AndroidExternalSurface
undAndroidEmbeddedExternalSurface
wurden hinzugefügt, um das Hinzufügen von oberflächengesteuerten Komponenten im Editor zu vereinfachen- Verschiedene API-Änderungen und ‐Verbesserungen in
Pager
undsnapFlingBehaviour
- Verschiedene Fokus-, Text- und Insets-APIs wurden zu stabilen APIs hochgestuft.
Version 1.6.0-rc01
10. Januar 2024
androidx.compose.foundation:foundation-*:1.6.0-rc01
wurde veröffentlicht. Version 1.6.0-rc01 enthält diese Commits.
API-Änderungen
- Der Erweiterungskonstruktor
DragAndDropTarget()
wurde entfernt. Erstellen Sie mitobject: DragAndDropTarget {}
eine neue Instanz. (I32318)
Version 1.6.0-beta03
13. Dezember 2023
androidx.compose.foundation:foundation-*:1.6.0-beta03
wurde veröffentlicht. Version 1.6.0-beta03 enthält diese Commits.
Fehlerkorrekturen
- Absturz behoben, der sich auf sehr großen Text ausgewirkt hat, der mit unbegrenzten Einschränkungen gemessen wurde. (I1a7df, b/312294386)
PlatformImeOptions
ist jetzt eine konkrete Klasse anstelle einer Schnittstelle. (If40a4)
Version 1.6.0-beta02
29. November 2023
androidx.compose.foundation:foundation-*:1.6.0-beta02
wurde veröffentlicht. Version 1.6.0-beta02 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem wurde behoben, bei dem
canScroll
nach dem Ändern des Layouts nicht aktualisiert wurde. (I60a86) - Fehlerkorrektur für
Modifier.animateItemPlacement()
undLookaheadScope
nach kleinem Scrollen. (I3a2b7)
Version 1.6.0-beta01
15. November 2023
androidx.compose.foundation:foundation-*:1.6.0-beta01
wurde veröffentlicht. Version 1.6.0-beta01 enthält diese Commits.
API-Änderungen
- Der
DragAndDropTarget
-Modifikator übernimmt jetzt explizit die empfangendeDragAndDropTarget
und hat eine Lambda-Funktion, um eine Drag-and-drop-Sitzung zu aktivieren. Es gibt jetzt zwei Factory-Funktionen für eineDragAndDropModifierNode
. einen für den Empfang von Übertragungen und einen für die Datenübertragung (I69481) maximumFlingVelocity
wurde so aktualisiert, dass es als Gleitkommazahl dargestellt wird. Die Dokumentation wurde aktualisiert, um klarere Angaben zur EinheitmaximumFlingVelocity
zu machen. (I8adc7)onDragAndDropStart
inDragAndDropModifierNode
Factory wurde inacceptDragAndDropTransfer
umbenannt.acceptsDragAndDropTransfer
wurde demdragAndDropTarget
Modifier
hinzugefügt, um es per Drag-and-drop zu akzeptieren. Diese Lambda-Funktion gibt einDragAndDropTarget
, wenn Sie an einer Drag-and-drop-Sitzung interessiert sind. Andere Lambdas für die Verarbeitung von Drag-Events wurden dadurch ersetzt.Eine
DragAndDropTarget
-Factory-Funktion wurde hinzugefügt, um Daten aus Drag-and-drop-Sitzungen zu empfangen (Iebf3a).Wenn Sie
startDragImmediately
inAnchoredDraggable
freigeben, können Sie steuern, wie Ziehgesten erkannt werden. Es ist sinnvoll, diesen Wert festzulegen, wenn das Widget zu einem Zielanker animiert. Siehe Beispiel. (Ie6d13, b/285139987)Foundation QuickInfo APIs sind jetzt
@ExperimentalFoundationApi
(I30b0b)Der Typ "
DragAndDropModifierNode.drag
" fürDragAndDropInfo
wurde entfernt und akzeptiert jetzt Parameter für die Lambda-Funktion "transferData
", die Dekorationsgröße und die Lambda-Funktion "Ziehen"DrawScope
DragAndDropTarget
bietet Methoden für bestimmte Drag-and-drop-Ereignisse und keine einzelne abstrakte Methode.onDragAndDropEvent
in der Factory-Funktion für eineDragAndDropModifierNode
wurde inonDragAndDropStart
umbenannt, um besser zu kommunizieren, dass die angegebeneDragAndDropTarget
nur für eine bestimmte Drag-and-drop-Sitzung gültig istDragAndDropEventType
wurde entfernt (I645b1).PlatformTextInputModifierNode.runTextInputSession
wurde inestablishTextInputSession
umbenannt. (I03cd0)OriginalText
durchTextSubstitution
ersetzen. (Ifa5a8)PlatformTextInputModifierNode.textInputSession
wurde inrunTextInputSession
umbenannt. (Ie9c6b)Die untergeordneten Elemente von
SubcomposeLayout
(sowie darauf basierende Layouts wieLazyColumn
), die zur späteren Wiederverwendung beibehalten werden, gelten als deaktiviert. Zum Testen solcher Knoten wurde eine neueassertIsDeactivated()
-Test-API eingeführt. Die übrigen Test-APIs filtern deaktivierte Knoten standardmäßig heraus. (I2ef84, b/187188981)Der Parameter
clippingEnabled
vonModifier.magnifier
wurde inclip
umbenannt.Für den
magnifierCenter
-Parameter vonModifier.magnifier
können Nullwerte zulässig (Nullwerte) verwendet werden. Das Standardverhalten bleibt dabei unverändert. (I6aa66)Material
SwipeToReveal
APIs (für Karten und Chips) basieren jetzt auf einer Slot-basierten API (wie von Compose empfohlen) anstelle von datenklassenbasierten Instanzen, um diese Slots zu erstellen. Dies ist eine funktionsgefährdende Änderung. In der Demo und im Beispielcode finden Sie Beispiele zur Verwendung der neuen API. (Ia8943)
Fehlerkorrekturen
- Implementiere Gleichheits- und Hashcode für
PageSize.Fixed
. (Ie3ede, b/300134276) - Es wurde ein Fehler behoben, durch den das
BasicText
-Layout nicht verkleinert wurde, wenn sichminWidth
änderte, undminWidth
geringer als die anfängliche MessungseinschränkungenmaxWidth
(Idb19c) war. - Renderer-Unterstützung für „Erledigen“-Gradient in
ArcLine
wurde hinzugefügt. (I4d5bb) - Binär-Kompatibilitätsproblem bei der Änderung von Window Inset beheben (Iee695)
- Entferne die Materialkernschicht für den Material3-Chip/die Schaltfläche, da die Mikro-Benchmarks auch ohne sie eine bessere Leistung zeigen. (I55555)
Version 1.6.0-alpha08
18. Oktober 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha08
wurde veröffentlicht. Version 1.6.0-alpha08 enthält diese Commits.
Neue Funktionen
Modifier.draggable2D
ist der neue Modifikator, der eine einfache Unterstützung für das Ziehen in 2D ermöglicht. Beispiel (Id95f5, b/214412658)
API-Änderungen
- Bei
Modifier.dragAndDrawSource
wurde die Lambda-FunktiononDrawDragShadow
indrawDragDecoration
umbenannt und beiDragAndDropInfo
wurde der Größenparameter indragDecorationSize
umbenannt. (Id0e30, b/303904810) - Der Parameter
decorationBox
vonBasicTextField2
wurde indecorator
umbenannt. Der Typ wird ebenfalls in eine gleichwertige unterhaltsameTextFieldDecorator
-Oberfläche geändert. (I23c1c)
Fehlerkorrekturen
- Verbesserte Dokumentation zu
BasicTextField
bezüglichonValueChange
-Anforderungen. (I90fc9, b/160257648)
Version 1.6.0-alpha07
4. Oktober 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha07
wurde veröffentlicht. Version 1.6.0-alpha07 enthält diese Commits.
API-Änderungen
- Einführung von
PlatformTextInputMethodTestOverride
zum Schreiben von Tests für benutzerdefinierte Texteditoren. (ID159b) GraphicsSurface
wurde inAndroidExternalSurface
umbenannt (I11680)- Temporäres Flag
DisableNonLinearFontScalingInCompose
zum Deaktivieren der nicht linearen Schriftskalierung hinzugefügt. Legen SieDisableNonLinearFontScalingInCompose = true
in Ihren Tests fest, wenn Sie Zeit zum Bereinigen benötigen. Dieses Flag wird in Compose 1.6.0-beta01 entfernt. (IC9486) - Die Sammlungen
ColorList
undColorSet
wurden hinzugefügt, bei denen Zuweisungen vermieden werden. (I744bd) - Durch diese Änderung wird
shortSnapVelocityThreshold
entfernt, das in ein Implementierungsdetail der Implementierung vonSnapLayoutInfoProvider
umgewandelt wurde. (I65f6d) - Fügt den
dragAndDropSource
-Modifikator zum Starten von Drag-and-drop-Sitzungen unddragAndDropTarget
für den Empfang von Drag-and-drop-Sitzungen hinzu (Ib7828, b/286038936). SnapPositionInLayout
-Dokumentation und Positionsmethode aktualisieren. Stellen Sie die Positionsmethode inSnapPositionInLayout
für Abstände im Inhalt vor. (Id7938, b/300116110)UndoState
wurde zuTextFieldState
hinzugefügt, mit der vom Nutzer vorgenommene Änderungen rückgängig gemacht/wiederholt werden können. (ICC024)
Fehlerkorrekturen
- Problem behoben, bei dem
basicMarquee
nach der Geschwindigkeitsänderung nicht animiert wurde. (Id2e77, b/297974036)
Version 1.6.0-alpha06
20. September 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha06
wurde veröffentlicht. Version 1.6.0-alpha06 enthält diese Commits.
Neue Funktionen
- Neue zusammensetzbare Wrapper für
SurfaceView
,TextureView: GraphicsSurface()
undEmbeddedGraphicsSurface()
. Die API ist experimentell und unterliegt Änderungen und Änderungen. (I9ddb2) Modifier.magnifier()
ist jetzt eine stabile API. Dazu gehört auch, dassMagnifierStyle
zugunsten von Inline-Parametern im Modifikator selbst entfernt wird. (I83bec, b/298381260, b/262367109, b/261438887)
API-Änderungen
updateCurrentPage
undupdateTargetPage
wurden inScrollScope
eingeführt. Dies sind die letzten Elemente, die erforderlich sind, um das animierte Scrollen durchPagerState.scroll
anzupassen. (I9cad5, b/267744105, b/243786897)- Kompaktheitsgrad von
SnapFlingBehavior
entfernen. Alle Implementierungen vonSnapLayoutInfoProvider
haben bereits eine Möglichkeit, auf die Dichte zuzugreifen. Möglicherweise wird der Empfängerbereich entfernt, was zu einer weniger komplexen Implementierung vonSnapFlingBehavior
undSnapLayoutInfoProviders
führt. (I153c3) - Weitere Modifikatoren, die als stabil gekennzeichnet sind. (I56af1, b/298046462)
SnapStepSize
wurde ausSnapLayoutInfoProvider
entfernt. Die Berechnung sollte unter Verwendung der Layoutinformationen erfolgen und über die Methode oder das Andocken von Offsets bereitgestellt werden. (If320c)
Änderungen im Verhalten
- In „Compose“ wird jetzt eine nicht lineare Schriftskalierung verwendet, um die Lesbarkeit und Barrierefreiheit zu verbessern. Wenn Schriftgröße > auf 100% eingestellt, kleiner Text wird normalerweise vergrößert, aber schon großer Text vergrößert sich nur geringfügig. Außerdem werden die im SP definierten Zeilenhöhen automatisch so angepasst, dass sie proportional zur geplanten Höhe von 100% bleiben. Weitere Informationen finden Sie unter Best Practices für die Schriftskalierung. (I11518)
Fehlerkorrekturen
- Die Verwendung von
rememberSaveable
für Kurzinfos wurde entfernt. (Icc131, b/299500338)
Version 1.6.0-alpha05
6. September 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha05
wurde veröffentlicht. Version 1.6.0-alpha05 enthält diese Commits.
API-Änderungen
- Füge Überlastungen für
BasicSecureTextField
hinzu, die einen unveränderlichen Wert akzeptieren, und einen Callback, um diesen Wert zu ändern, wie bei der aktuellenBasicTextField
API. (Ia4882) - Fügen Sie
Modifier.preferKeepClear()
hinzu, um bei API 33 und höher als zusammensetzbar zu kennzeichnen, dass keine unverankerten Fenster zulässig sind. (Ib51d5, b/297260115) - Die Bewegungsgeschwindigkeiten in Komponenten der Datenansicht wie
ScrollView
undRecyclerView
sind aufViewConfiguration.ScaledMaximumFlingVelocity
begrenzt. „Compose“ enthält jetzt eine eigene Version vonmaximumFlingVelocity
, die jetzt fürDraggable
gilt. (Ibf974) - Die verworfenen
Pager
- undPagerState
-Überlastungen wurden entfernt. (IEa07e) BasicTooltipBox
wurdecompose.foundation
hinzugefügt undPlainTooltipBox
undRichTooltipBox
aktualisiert, umTooltipBox
mit neuen ZusammensetzbarenPlainTooltip
undRichTooltip
zu verwenden. (I79e1d)
Version 1.6.0-alpha04
23. August 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha04
wurde veröffentlicht. Version 1.6.0-alpha04 enthält diese Commits.
API-Änderungen
ReusableComposition
-Schnittstelle zur Verwaltung des Lebenszyklus und der Wiederverwendung von Unterzusammensetzungen hinzugefügt. (I812d1, b/252846775)Modifier.focusGroup
wurde zu stabilen APIs hochgestuft. (I7ffa3)- Füge Überlastungen für
BasicTextField2
hinzu, die einen unveränderlichen Wert akzeptieren, und einen Callback, um diesen Wert zu ändern, wie bei der aktuellenBasicTextField
API. (I3f2b8) GridItemSpan::currentLineSpan
ist jetzt eine stabile API. (ICC29c)- Canvas, der
contentDescription
akzeptiert, ist jetzt eine stabile API. (Ib3d29) viewportSize
wurde inScrollState
eingeführt. Damit lässt sich die Größe vonviewPort
der Komponente ermitteln, die nach dem MessenScrollState
verwendet. (I8b85a, b/283102682)- Es wurde ein Problem behoben, durch das der Vorabruf in Pager nicht mit dem Verhalten in Views übereinstimmte. (I93352, b/289088847)
Modifier.consumeWindowInsets(PaddingValues)
ist jetzt stabil.- Die
Deprecated Modifier.consumedWindowInsets
API wurde entfernt. Verwende stattdessenModifier.consumeWindowInsets
. (Id72bb)
- Die
Version 1.6.0-alpha03
9. August 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha03
wurde veröffentlicht. Version 1.6.0-alpha03 enthält diese Commits.
API-Änderungen
- Die Überlastung von
LazyLayout
wurde hinzugefügt und akzeptiert als LambdaLazyLayoutItemProvider
statt eines einfachen Objekts wie zuvor. Die vorherige Überlastung wurde verworfen. (I42a5a) - Unterstützung für die Konfiguration von
privateImeOptions
hinzugefügt (Idb772)
Fehlerkorrekturen
- Textfelder, die die Tastatur anzeigen und bearbeitbar sind, wenn
readOnly
auf „true“ gesetzt ist, wurden korrigiert. Außerdem wurde behoben, dass die Tastatur nicht angezeigt wurde, wennreadOnly
im Fokus von "true" zu "false" geändert wurde. (I34a19, b/246909589)
Version 1.6.0-alpha02
26. Juli 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha02
wurde veröffentlicht. Version 1.6.0-alpha02 enthält diese Commits.
API-Änderungen
- Einführung von
PagerLayoutInfo
mit Informationen, die nach einer Messung inPager
erhoben wurden. Außerdem wurdePageInfo
eingeführt, die Informationen zu einer einzelnen gemessenen Seite inPager
. (Iad003, b/283098900) - Zusätzliche Anmerkungen zur Angabe zulässiger Eingaben für zusammensetzbare Funktionen (I51109)
SemanticsNodeInteraction.requestFocus
wurde hinzugefügt, um den Fokus bei Tests bequemer und auffindbarer zu machen. (Ie8722)- Komplett überarbeitete
PlatformTextInput*
API. (I6c93a, b/274661182, b/267235947, b/277380808) SoftwareKeyboardController
undLocalSoftwareKeyboardController
sind nicht mehr experimentell.LocalSoftwareKeyboardController
ist jetzt auch ein richtigerCompositionLocal
. (I4c364)Modifier.transformable
gibt jetzt imcanPan
-Parameter ein Schwenk-Delta an, um festzulegen, in welche Richtung das Verschieben erfolgen soll. (I692aa, b/266829800)- Aktualisiert den Modifikator
consumeWindowInsets
, um die BasisklasseAbstractComposeView
zu erweitern (Iacd74, b/269479941)
Version 1.6.0-alpha01
21. Juni 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha01
wurde veröffentlicht. Version 1.6.0-alpha01 enthält diese Commits.
Neue Funktionen
- Einführung einer neuen
AnchoredDraggable
API in der Foundation Damit können Komponenten erstellt werden, die zwischen einzelnen Zuständen gezogen werden können, z. B. modale Ansichten am unteren Rand. Diese API ersetzt dieSwipeable
API von Material. (I4a2ed)
API-Änderungen
InputConnection#requestCursorUpdates
unterstützen (I0c69b)scrollAnimationSpec
wurde eingeführt, um Spezifikationen für benutzerdefinierte Animationen zuzulassen. „BringIntoViewCalculator
“ wurde auf „BringIntoViewScroller
“ aktualisiert. (Idb741)- Füge den Wurfables, die beim Laden von Bitmap-Assets mit einer Beschreibung des Asset-Pfads, der nicht geladen werden konnte, den Typ
ResourceResolutionException
hinzu. (I19f44, b/230166331, b/278424788) - Semantikeigenschaften und Aktionen zur Unterstützung der Textübersetzung wurden hinzugefügt. (I4a6bc)
- Es wurde eine
BringIntoViewCalculator
API eingeführt, mit der angepasst werden kann, wie Komponenten wieScrollable
aufbringIntoView
-Anfragen reagieren. Die Überlastung von scrollable wurde so geändert, dass eine Instanz vonBringIntoViewCalculator
optional akzeptiert wird. (Iaf5af)
Fehlerkorrekturen
- Es wurde eine Lint-Prüfung hinzugefügt, die warnt, wenn Sie eine
MutableInteractionSource
in der Zusammensetzung erstellen, ohne sie zu speichern, ähnlich wie bei der Lint-Prüfung zum Erstellen eines veränderlichen Zustands /Animatable
. (i5daae) - Die Auswahl per Maus wird jetzt unterstützt. Die berührungsbasierte Auswahl wird um Wort für Wort erweitert und um Zeichen verkleinert. (IC0c6c, b/180639271)
- Es wurde eine
FocusTargetModifierNode
-Oberfläche hinzugefügt, die zum Erstellen einer benutzerdefiniertenFocusTarget
verwendet werden kann. (I9790e)
Version 1.5
Version 1.5.4
18. Oktober 2023
androidx.compose.foundation:foundation-*:1.5.4
wurde veröffentlicht. Version 1.5.4 enthält diese Commits.
Version 1.5.3
4. Oktober 2023
androidx.compose.foundation:foundation-*:1.5.3
wurde veröffentlicht. An dieser Version wurden keine Änderungen vorgenommen.
Version 1.5.2
27. September 2023
androidx.compose.foundation:foundation-*:1.5.2
wurde veröffentlicht. Version 1.5.2 enthält diese Commits.
Fehlerkorrekturen
- Es wurde ein Fehler im Text behoben, der unter bestimmten Umständen zu Abstürzen führte, wenn die Semantik ungültig wurde.
Version 1.5.1
6. September 2023
androidx.compose.foundation:foundation-*:1.5.1
wurde veröffentlicht. Version 1.5.1 enthält diese Commits.
Fehlerkorrekturen
- Textfelder, die die Tastatur anzeigen und bearbeitbar sind, wenn
readOnly
auf „true“ gesetzt ist, wurden korrigiert. Außerdem wurde behoben, dass die Tastatur nicht angezeigt wurde, wennreadOnly
im Fokus von "true" zu "false" geändert wurde. (I34a19, b/246909589)
Version 1.5.0
9. August 2023
androidx.compose.foundation:foundation-*:1.5.0
wurde veröffentlicht. Version 1.5.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.4.0
- Viele grundlegende Modifikatoren, darunter
Modifier.clickable
,Modifier.draggable
,Modifier.scrollable
und Layoutmodifikatoren, wurden zurModifier.Node
API migriert, um den Aufwand für die erste Zusammensetzung zu reduzieren. - Die Pagers-Stabilität wurde verbessert. Viele Fehler wurden behoben.
- Die
pageCount
-Parameter befinden sich jetzt inPagerState
statt im Pager selbst
Version 1.5.0-rc01
26. Juli 2023
androidx.compose.foundation:foundation-*:1.5.0-rc01
wurde veröffentlicht. Version 1.5.0-rc01 enthält diese Commits.
Fehlerkorrekturen
Es ist eine optionale Prüfung verfügbar, um zu empfehlen,
mutableStateOf()
-Aufrufe zu den entsprechenden speziellen Typen für Primitive zu migrieren. Die Lint-ID lautetAutoboxingStateCreation
. Bisher war diese Prüfung standardmäßig für alle Projekte aktiviert. Wenn Sie diese Warnung im Android Studio-Editor und in den Lint-Ausgaben Ihres Projekts sehen möchten, ändern Sie den Schweregrad von „Informativ“ zu „Warnung“ (oder höher). Deklarieren Sie dazuwarning "AutoboxingStateCreation"
in derbuild.gradle
- oderbuild.gradle.kts
-Konfiguration Ihres Moduls (I34f7e):android { lint { warning "AutoboxingStateCreation" } ... }
Version 1.5.0-beta03
28. Juni 2023
androidx.compose.foundation:foundation-*:1.5.0-beta03
wurde veröffentlicht. Version 1.5.0-beta03 enthält diese Commits.
Version 1.5.0-beta02
7. Juni 2023
androidx.compose.foundation:foundation-*:1.5.0-beta02
wurde veröffentlicht. Version 1.5.0-beta02 enthält diese Commits.
Version 1.5.0-beta01
24. Mai 2023
androidx.compose.foundation:foundation-*:1.5.0-beta01
wurde veröffentlicht. Version 1.5.0-beta01 enthält diese Commits.
API-Änderungen
- Implementiere
PlatformDataProvider
, um die Herzfrequenz und die täglichen Schritte anzugeben. Die SchnittstelleSensorGateway
wurde aus der öffentlichen API entfernt. (I55b84)
Fehlerkorrekturen
- Zuweisungen bei Lazy List/Grids usw. reduzieren. Messungen (Iaf9e2)
- Reduzierte Zuweisungen beim Anwenden von Snapshots (I65c09)
- Zuweisungen aus Federanimationen entfernt (Ie9431)
- Zuweisung von
TextLayout
entfernt (I0fd11) - Mehrere Zuweisungen bei der Zeiger-Geschwindigkeitsverfolgung wurden entfernt (I26bae).
Version 1.5.0-alpha04
10. Mai 2023
androidx.compose.foundation:foundation:1.5.0-alpha04
und androidx.compose.foundation:foundation-layout:1.5.0-alpha04
wurden veröffentlicht. Version 1.5.0-alpha04 enthält diese Commits.
API-Änderungen
- Der optimierte
TextStyle.merge(...)
mit vollständiger Parameterliste wurde hinzugefügt. (Iad234, b/246961787) - Stell eine
SnapLayoutInfoProvider
vor, die mitLazyGridState
verwendet werden kann. (I92134, b/269237141, b/260914964) - Die experimentelle Funktion „
Modifier.animateItemPlacement()
“ wurde für den Bereich „Verzögerte gestaffelte Rasterelemente“ hinzugefügt. Sie können ihn auf die Elemente anwenden, um die Animationen für die automatische Positionsänderung oder -neuanordnung zu erreichen. (I4b62d, b/257034719) GridCells.FixedSize
auf stabile Version hochstufen.FixedSize
definiert eineLazyGrid
, bei der jede Zelle die exakte Größe entlang der Querachse hat. Der verbleibende Platz ist dabei durch die Querachsenanordnung verteilt. (I8542f)- Einführung des Empfängerbereichs
PagerScope
für Pager und einer Dienstfunktion für die Berechnung eines bestimmten Seitenversatzes. (If2577) - Stell das
snapPositionalThreshold
-Element vor, wenn du ein Andockverhalten erstellst. Verwenden Sie diesen Parameter, um einen Positionsschwellenwert für das kurze Andocken in Pager anzugeben. (If8f7f) - „
SnapLayoutInfoProvider.calculateSnappingOffsetBounds
“ wurde durch „calculateSnappingOffset
“ ersetzt. Bei dieser neuen Methode fordern wir einfach den nächsten Offset zum Andocken an. Die Berechnung der Grenzen sollte auf Implementierungsebene durchgeführt werden, da diese je nachdem, wie ein Andocken ausgeführt werden muss, variieren kann. (I923a4) LazyStaggeredGrid
APIs wurden auf die stabile Version hochgestuft. (I633a5)pageCount
ausHorizontal/VerticalPager
entfernen. Diese sollte bei der Erstellung des Bundesstaats angegeben werden.PagerState
undrememberPagerState
wurden aktualisiert, um diepageCount
zu akzeptieren. (Ieb52d, b/266965072)pageCount
ausHorizontal/VerticalPager
entfernen. Diese sollte bei der Erstellung des Bundesstaats angegeben werden.PagerState
undrememberPagerState
wurden aktualisiert, um diepageCount
zu akzeptieren. (Ifa3cb, b/266965072)- Stelle
shortSnapVelocityThreshold
in PagersSnapFlingBehavior
vor. (I7379e, b/275579012) - Fügt
FlowRowScope
undFlowColumnScope
hinzu. (I54fe2)
Fehlerkorrekturen
- Aufrufe zum Abrufen der Semantik für Text, wenn
minWidth
undminHeight
nicht mehr abstürzen. (Ibd072) - Ein Problem wurde behoben, bei dem die Tastatur für Textfelder in Dialogfeldern, die nicht mit der zusammensetzbaren Funktion
Dialog
erstellt wurden, nicht angezeigt wurde. (I82551, b/262140644)
Version 1.5.0-alpha03
19. April 2023
androidx.compose.foundation:foundation:1.5.0-alpha03
und androidx.compose.foundation:foundation-layout:1.5.0-alpha03
wurden veröffentlicht. Version 1.5.0-alpha03 enthält diese Commits.
In dieser Version wird der neue Text-Rendering-Stack für Compose aktiviert. Der neue Stapel ist leistungsoptimiert und Sie sollten keine sichtbaren Änderungen sehen.
Wenn du Änderungen im gerenderten Text feststellst, kannst du zur Fehlerbehebung NewTextRendering1_5 = false
festlegen, um den Verhaltensunterschied zu bestätigen. Mit dieser Einstellung wird eine Neuzusammensetzung erzwungen. Bitte melden Sie alle Verhaltensunterschiede als Fehler.
Das Debug-Flag wird vor der Betaversion 1.5 entfernt.(Iada23, b/246960758)
API-Änderungen
FlowColumn/FlowRow
inline erstellen. (Idab37)
Version 1.5.0-alpha02
5. April 2023
androidx.compose.foundation:foundation:1.5.0-alpha02
und androidx.compose.foundation:foundation-layout:1.5.0-alpha02
wurden veröffentlicht. Version 1.5.0-alpha02 enthält diese Commits.
API-Änderungen
- Zusätzliche Unterstützung für Zellen mit fester Größe in
LazyGrid
und die Anordnung der Zellen in Querachsen-Anordnung. (I83ed9, b/235121277, b/267942510) - In
LazyStaggeredGrid
werden jetzt Fahrspuren mit fester Größe und die Anordnung von Fahrspuren in Querachsen unterstützt. (I7d519) UrlAnnotation
-Werte inAnnotatedString
Sek. können jetzt über Bedienungshilfen wieTalkBack
geöffnet werden. (If4d82, b/253292081)- Die Semantikaktion
InsertTextAtCursor
für Textfelder wurde hinzugefügt. (I11ed5) - Bei textbezogenen Testaktionen (z.B.
performTextInput
) wird der Fokus jetzt direkt über die semantische Aktion angefordert, anstatt auf das Feld zu klicken. (I6ed05) - Unterstützung für den Abstand/die Anordnung von Querachsen mithilfe von
verticalArrangement
inFlowRow
undhorizontalArrangement
inFlowColumn
. Außerdem entfernen wir dieverticalAlignment
und diehorizontalAlignment
auf oberster Ebene inFlowRow/FlowColumn
. Entwickler können stattdessenModifier.align
verwenden. Dadurch wird Verwechslungen zwischen den NamenskonventionenverticalAlignment
undverticalArrangement
vermieden. (I87b60, b/268365538)
Version 1.5.0-alpha01
22. März 2023
androidx.compose.foundation:foundation:1.5.0-alpha01
und androidx.compose.foundation:foundation-layout:1.5.0-alpha01
wurden veröffentlicht. Version 1.5.0-alpha01 enthält diese Commits.
API-Änderungen
- Text und
BasicText
wurden refaktoriert, um das neue Modifikatorsystem zu verwenden. Das führt in vielen Fällen zu erheblichen Leistungsverbesserungen. Es sollten keine Änderungen sichtbar sein. (If1d17, b/246961435) - Die Semantikaktion
PerformImeAction
zum Aufrufen der IME-Aktion auf Texteditorknoten wurde hinzugefügt. (Ic606f, b/269633506)
Fehlerkorrekturen
- Interna von
Modifier.hoverable
wurden aktualisiert. Derhoverable
-Modifikator wird nur dann im Inspector angezeigt, wenn er aktiviert ist. (I82103)
Version 1.4
Version 1.4.3
3. Mai 2023
androidx.compose.foundation:foundation:1.4.3
und androidx.compose.foundation:foundation-layout:1.4.3
werden ohne Änderungen veröffentlicht (nur ein Versionssprung).
Version 1.4.2
19. April 2023
androidx.compose.foundation:foundation:1.4.2
und androidx.compose.foundation:foundation-layout:1.4.2
wurden veröffentlicht. Version 1.4.2 enthält diese Commits.
Version 1.4.1
5. April 2023
androidx.compose.foundation:foundation:1.4.1
und androidx.compose.foundation:foundation-layout:1.4.1
wurden veröffentlicht. Version 1.4.1 enthält diese Commits.
Version 1.4.0
22. März 2023
androidx.compose.foundation:foundation:1.4.0
und androidx.compose.foundation:foundation-layout:1.4.0
wurden veröffentlicht. Version 1.4.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.3.0
- Emoji-kompatible Integration wurde für
Text
undTextField
sowie für den unteren Absatz (Absatz) hinzugefügt. Wenn „EmojiCompat“ konfiguriert ist, ist es standardmäßig aktiviert. EmojiCompat
kann mithilfe vonPlatformParagraphStyle
für einen bestimmten Text konfiguriert werden.LazyStaggeredGrid
(I28252) wurde vollständig unterstützt.- Experimentelle
onHover
werden zuClickableText
(I6938f) hinzugefügt - Einführung neuer experimenteller Überlastungen für die
runComposeUiTest
- undcreate*ComposeRule
-Funktionen, dieCoroutineContext
-Parameter akzeptieren. Der Kontext wird für die Testzusammensetzung und alleLaunchedEffect
- undrememberCoroutineScope()
-Aufrufe in der Zusammensetzung verwendet. (I10614, b/265177763) FlowRow
undFlowColumn
sind jetzt als@ExperimentalFoundationApi
verfügbar. Sie ermöglichen ein flexibleres zeilen- und spaltenbasiertes Layout von Komponenten, die zu einer neuen Zeile führen, wenn nicht genügend Platz auf der Hauptachse vorhanden ist. (I3a7b2)Modifier.basicMarquee()
ist als experimentelle Funktion für die Anzeige von Inhalten mit einem Laufschriftbild-Effekt verfügbar. (I2df44, b/139321650)
Version 1.4.0-rc01
8. März 2023
androidx.compose.foundation:foundation:1.4.0-rc01
und androidx.compose.foundation:foundation-layout:1.4.0-rc01
wurden veröffentlicht. Version 1.4.0-rc01 enthält diese Commits.
API-Änderungen
- Einführung einer neuen Low-Level-
PlatformTextInputAdapter
-API zum Erstellen benutzerdefinierter Texteingabeimplementierungen, die direkt mit Plattform-APIs kommunizieren. (I58df4) LazyStaggeredGrid
wird jetzt für das umgekehrte Layout unterstützt. (I3ef4a)
Fehlerkorrekturen
- Mit der Semantikaktion
SetText
vonBasicTextField
wird der Textpuffer jetzt mit demselben Codepfad wie IME-Updates und die Testfunktionen (z.B.performTextReplacement
) aktualisiert. - Für Texttestfunktionen
performTextClearance
,performTextReplacement
undperformTextSelection
wird jetztSemanticsActions
verwendet. (I0807d, b/269633168, b/269624358)
Version 1.4.0-beta02
22. Februar 2023
androidx.compose.foundation:foundation:1.4.0-beta02
und androidx.compose.foundation:foundation-layout:1.4.0-beta02
wurden veröffentlicht. Version 1.4.0-beta02 enthält diese Commits.
API-Änderungen
- Es wurde ein neuer
Modifier.Node.onReset()
-Callback hinzugefügt, mit dem du einen lokalen Status zurücksetzen kannst, um den Fall, dassLayout
wiederverwendet wird, korrekt zu verarbeiten (z. B. als Element vonLazyColumn
). DasFocusTargetModifierNode
-Objekt wurde korrigiert, sodass der Fokus nun korrekt zurückgesetzt wurde. (I65495, b/265201972) - Der
BlendMode
-Parameter wurde den MethodenDrawScope.drawText
,Paragraph.paint
undMultiParagraph.paint
hinzugefügt, um beim Zeichnen von Text auf Canvas verschiedene Mischalgorithmen zu unterstützen. (I57508) - Die
modifierElementOf()
API wurde entfernt. Bitte verlängern Sie es stattdessen direkt vonModifierNodeElement
. (Ie6d21)
Fehlerkorrekturen
- Durch das Anpassen von Auswahlziehpunkten kann kein Teilzeichen mehr ausgewählt werden. (Idedd1)
- Absturzfehler bei Strg + Rücktaste bei leerem
TextField
(I0427f, b/244185537) behoben
Version 1.4.0-beta01
8. Februar 2023
androidx.compose.foundation:foundation:1.4.0-beta01
und androidx.compose.foundation:foundation-layout:1.4.0-beta01
wurden veröffentlicht. Version 1.4.0-beta01 enthält diese Commits.
Neue Funktionen
- Seit Version 1.3 wurde für
Text
undTextField
sowie für den unteren Absatz eine Emoji-kompatible Integration hinzugefügt. Wenn „EmojiCompat“ konfiguriert ist, ist es standardmäßig aktiviert. EmojiCompat
kann mithilfe vonPlatformParagraphStyle
für einen bestimmten Text konfiguriert werden.
API-Änderungen
- Es wurde eine allgemeine Implementierung der
PinnableContainer
API hinzugefügt, die in allenLazyLayouts
verwendet wird, um Elemente aufzubewahren, die die Zusammensetzung beenden, aber noch aktiv sein müssen. (If45a4) PinnableContainer.PinnedHandle.unpin()
wurde inrelease()
(I4667a) umbenannt
Externer Beitrag
mainAxisItemSpacing
-Property zuLazyListLayoutInfo
,LazyGridLayoutInfo
undLazyStaggeredGridItemInfo
(I52fad) hinzugefügt
Version 1.4.0-alpha05
25. Januar 2023
androidx.compose.foundation:foundation:1.4.0-alpha05
und androidx.compose.foundation:foundation-layout:1.4.0-alpha05
wurden veröffentlicht. Version 1.4.0-alpha05 enthält diese Commits.
Neue Funktionen
LazyStaggeredGrid
(I28252) wurde vollständig unterstützt.- Experimentelle
onHover
wird zuClickableText
hinzugefügt (I6938f) - Einführung neuer experimenteller Überlastungen für die
runComposeUiTest
- undcreate*ComposeRule
-Funktionen, dieCoroutineContext
-Parameter akzeptieren. Der Kontext wird für die Testzusammensetzung und alleLaunchedEffect
- undrememberCoroutineScope()
-Aufrufe in der Zusammensetzung verwendet. (I10614, b/265177763)
API-Änderungen
- Führt die Pre-/Post-APIs von
OverscrollEffect
zu einem kombinierten Decorator zusammenapplyToScroll
- undapplyToFling
-Funktionen. In den aktualisierten Beispielen in der Dokumentation finden Sie Beispiele zur Implementierung eines Overscroll-Effekts mit der neuen API-Form. (I8a9c4, b/255554340) - Mehr Typen/Null-Zulässigkeit von Inline-/eingestellten/verborgenen Funktionen (I24f91)
- Die APIs
LineBreak
undHyphens
inTextStyle
wurden auf die stabile Version umgestellt. (IC1e1d)
Fehlerkorrekturen
- Der Cursor in Textfeldern blinkt jetzt auch dann weiter, wenn Animationen deaktiviert sind. (I95e70, b/265177763)
Modifier.basicMarquee
wird jetzt auch dann animiert, wenn sie in den Systemeinstellungen deaktiviert sind. (I23389, b/262298306, b/265177763)
Externer Beitrag
notifyFocusedRect
-Methoden inTextInputSession
undTextInputService
werden nicht mehr verworfen. (I23a04, b/262648050)
Version 1.4.0-alpha04
11. Januar 2023
androidx.compose.foundation:foundation:1.4.0-alpha04
und androidx.compose.foundation:foundation-layout:1.4.0-alpha04
wurden veröffentlicht. Version 1.4.0-alpha04 enthält diese Commits.
Neue Funktionen
FlowRow
undFlowColumn
sind jetzt als@ExperimentalFoundationApi
verfügbar. Sie ermöglichen ein flexibleres zeilen- und spaltenbasiertes Layout von Komponenten, die zu einer neuen Zeile führen, wenn nicht genügend Platz auf der Hauptachse vorhanden ist. (I3a7b2)Modifier.basicMarquee()
ist als experimentelle Funktion für die Anzeige von Inhalten mit einem Laufschriftbild-Effekt verfügbar. (I2df44, b/139321650)
API-Änderungen
FocusRequesterModifier
FocusRequesterNode
- Der
AndroidFont
-Konstruktor mitvariationSettings
ist jetzt eine stabile API und kann zum Erstellen neuer Arten von Schriftdeskriptoren verwendet werden. (I5adcc, b/261565807) - Es wurde die
PinnableContainer
API eingeführt, die von Lazy Listen über eine lokale Komposition übertragen wird, mit der aktuelles Element angepinnt werden kann. Das bedeutet, dass das Element nicht entsorgt wird, wenn es aus der Ansicht weggescrollt wird. Beispielsweise wird mitModifier.focusable()
das aktuell fokussierte Element mit diesem Mechanismus angepinnt. (Ib8881, b/259274257, b/195049010) - Die Reaktion von Scrollables auf
bringIntoViewRequesters
und fokussierbare Elemente wurde umgeschrieben, um die Komplexität dieser Vorgänge besser zu modellieren und mehr Grenzfälle zu bewältigen. (I2e5fe, b/241591211, b/192043120, b/237190748, b/230756508, b/239451114) - Höhere Null-Zulässigkeit für Rückgaben von nicht mehr unterstützten Funktionen (Ibf7b0)
- Die experimentelle Funktion
TextMotion
wurde zuTextStyle
hinzugefügt, um für Text entwederStatic(default)
oder Animiert zu definieren. Verwenden SieTextMotion.Animated
, wenn der Text durch Animation skaliert, übersetzt oder gedreht werden soll. (I24dd7) TextFieldFocusModifier
hinzufügen, um das Verhalten der Fokusnavigation für die Android-Plattform zu korrigieren (I00303)- Das Argument
maxSize: IntSize
indrawText
wurde durchsize: Size
ersetzt, um es in andereDrawScope
-Funktionen einzufügen.size
ist standardmäßig aufSize.Unspecified
gesetzt. Das sollte das vorherige Standardverhalten nicht ändern. (Icd27d)
Fehlerkorrekturen
- Für ein natürlicheres Gefühl wurden in
SnapFlingBehaviour
Anpassungen an der Physik des Schnappschusses vorgenommen.
Bekanntes Problem
- Beim Aktualisieren von
androidx.compose.foundation:1.4.0-alpha03
aufandroidx.compose.foundation:1.4.0-alpha04
kann einjava.lang.NoSuchFieldError
-Fehler auftreten. Das Problem wurde an dieser Stelle gemeldet. Eine Korrektur wurde gesendet, die mit dem nächsten Update für das Schreiben von Änderungen verfügbar ist. Um das Problem zu umgehen, aktualisieren Sie Ihreandroidx.compose.material
- undandroidx.compose.material3
-Bibliotheken auf die neueste Version(1.1.0-alpha04) oder führen Sie ein Downgrade vonandroidx.compose.foundation
auf 1.4.0-alpha03 durch.
Version 1.4.0-alpha03
7. Dezember 2022
androidx.compose.foundation:foundation:1.4.0-alpha03
und androidx.compose.foundation:foundation-layout:1.4.0-alpha03
wurden veröffentlicht. Version 1.4.0-alpha03 enthält diese Commits.
API-Änderungen
- Bei UI-Tests mit einer Schreibregel werden Fortsetzungen, die während
withFrameNanos
-Callbacks fortgesetzt werden, erst abgesendet, nachdem alle Frame-Callbacks ausgeführt wurden. Dies entspricht dem Verhalten des Editors bei normaler Ausführung. Tests, die auf dem alten Verhalten basieren, können jedoch fehlschlagen. Dies sollte nur Code betreffen, derwithFrameNanos
oderwithFrameMillis
direkt aufruft und bei dem die Logik außerhalb des Callbacks an die Funktionen übergeben wird, die möglicherweise innerhalb der Callbacks verschoben werden müssen. Beispiele finden Sie in den Änderungen an den Animationstests in dieser Änderungsliste. - Ein optionaler
onPerformTraversals: (Long) -> Unit
-Parameter wurde demTestMonotonicFrameClock
-Konstruktor und der Factory-Funktion hinzugefügt, um Code nachwithFrameNanos
-Callbacks auszuführen, aber bevor die Aufrufer fortgesetzt werden Koroutinen. (Idb413, b/254115946, b/222093277, b/255802670) - Stell die Bedienungshilfen für Seiten vor:
PageUp
,PageDown
,PageLeft
,PageRight
. Beachten Sie, dass diese erst ab API 29 verfügbar sind. (Ida4ab) - Stell
HorizontalPager
undVerticalPager
vor, mit denen zusammensetzbare Funktionen auf Pager-Formulierungen dargestellt werden können.PagerState
wurde eingeführt, um die Pager zu steuern und Informationen zum aktuellen Status des Pagers abzufragen.PageSize
wurde eingeführt, eine Methode zur Steuerung der Größe einer Pager-Seite. Damit kann ein Karussell wie Pager erstellt werden. Einführung vonPagerSnapDistance
, eine Möglichkeit, um zu steuern, wie das Andocken auf das Sprungverhalten von Pager funktioniert. (I01120) - Eine Überlastung wurde in
SnapFlingBehavior.performFling
eingeführt, um besser zu verstehen, wo sich der Flieger niederlassen wird. (I569f6) OverscrollEffect#isEnabled
wurde entfernt. Anstatt sich dieses Flag merken und festlegen zu müssen, lösen Sie einfach keine Ereignisse für den Overscroll-Effekt aus, wenn Sie nicht möchten, dass Overscroll angezeigt wird (z. B. wennScrollableState#canScrollForward/backward
beide den Wert „false“ zurückgeben). (I1a4b0, b/255554340, b/255557085)ScrollableState#canScrollForward
undScrollableState#canScrollBackward
wurden hinzugefügt, um abzufragen, ob eineScrollableState
in beide Richtungen scrollen kann (ob die Mindest- oder Höchstgrenze des Bereichs erreicht ist). Der Standardwert ist „true“, um die Abwärtskompatibilität mit vorhandenen Implementierungen vonScrollableState
zu gewährleisten. Damit können Nutzer darauf hinweisen, dass noch Platz zum Scrollen ist. Außerdem könnte so vermieden werden, dass Deltas zuScrollableStates
gesendet werden, die keinen Platz zum Scrollen in eine bestimmte Richtung haben, um unnötigen Aufwand zu reduzieren. (Idf1a0, b/255557085)- Es wurde eine Modifier-API hinzugefügt, um Scroll-Informationen von Ancestors abzufragen. (I2ba9d, b/203141462)
- Wird in
Clickable
verwendet, um Interaktionen beim Drücken korrekt zu verzögern, wenn Gesten zu Scroll-Ereignissen werden können. - Das Problem, dass
Clickables
bei Verwendung innerhalb vonScrollable ViewGroup
die Ripples nicht korrekt verzögerte, wurde behoben. - Leisten und Tabellen wurden aktualisiert, um das Drücken korrekt zu verzögern, falls Gesten zu Scroll-Ereignissen werden können.
- Aktualisieren Sie die
snapStepSize
-Benennung, damit sie mit anderen Methoden inSnapLayoutInfoProvider
konsistent ist. (Ife67c) EmojiCompat
zuCompose
hinzugefügt (Ibf6f9, b/139326806)consumedWindowInsets()
wurde inconsumeWindowInsets()
undwithConsumedWindowInsets()
inonConsumedWindowInsetsChanged()
umbenannt und die Modifikatoren wurden veröffentlicht. (Ie44e1)
Fehlerkorrekturen
- Der Absturz mit
Modifier.animateItemPlacement()
und Lazy-Rastern wurde behoben. Dieser Fehler ist aufgetreten, wenn die Anzahl der neuen Elemente geringer war als die vorherige. (I0bcac, b/253195989)
Version 1.4.0-alpha02
9. November 2022
androidx.compose.foundation:foundation:1.4.0-alpha02
und androidx.compose.foundation:foundation-layout:1.4.0-alpha02
wurden veröffentlicht. Version 1.4.0-alpha02 enthält diese Commits.
API-Änderungen
awaitFirstDown
undwaitForUpOrCancellation
akzeptieren jetztPointerEventPass
für mehr Flexibilität. (I7579a, b/212091796)beyondBoundCount
API von Lazy* APIs wiederherstellen (I12197)- Einführung von Parametern in Lazy APIs, um Elemente außerhalb des Darstellungsbereichs zu erstellen und zu platzieren (I69e89, b/172029355)
- Der Parameter
minLines
wurde zuBasicText
undBasicTextField
hinzugefügt. Damit kann die Mindesthöhe dieser zusammensetzbaren Funktionen in Bezug auf Anzahl der Linien (I24294, b/122476634)
Version 1.4.0-alpha01
24. Oktober 2022
androidx.compose.foundation:foundation:1.4.0-alpha01
und androidx.compose.foundation:foundation-layout:1.4.0-alpha01
wurden veröffentlicht. Version 1.4.0-alpha01 enthält diese Commits.
API-Änderungen
- Die neue Methode
awaitEachGesture()
für Bewegungsdetektoren wurde hinzugefügt. Sie funktioniert ähnlich wieforEachGesture()
, aber die Loop-over-Gesten erfolgen vollständig innerhalb vonAwaitPointerEventScope
, sodass Ereignisse zwischen Iterationen nicht verloren gehen können. forEachGesture()
wurde zugunsten vonawaitEachGesture()
eingestellt, weil dadurch Ereignisse zwischen Gesten verloren gehen können. (Iffc3f, b/251260206)WindowInsets.imeAnimationSourc
e undWindowInsets.imeAnimationTarget
wurden hinzugefügt, um den Fortschritt der Animation zu bestimmen und zu wissen, wo sich der IME nach Abschluss der Animation befindet. (I356f1, b/217770337)
Version 1.3
Version 1.3.1
9. November 2022
androidx.compose.foundation:foundation:1.3.1
und androidx.compose.foundation:foundation-layout:1.3.1
wurden veröffentlicht. Version 1.3.1 enthält diese Commits.
Fehlerkorrekturen
- Leistungsprobleme in
BeyondBoundsLayout
beheben (aosp/2255266) ContentInViewModifier
liest Layoutkoordinaten nur, wenn sie angehängt sind (aosp/2241316).
Version 1.3.0
24. Oktober 2022
androidx.compose.foundation:foundation:1.3.0
und androidx.compose.foundation:foundation-layout:1.3.0
wurden veröffentlicht. Version 1.3.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.2.0
- Es wurden experimentelle Versionen von
LazyVerticalStaggeredGrid
undLazyHorizontalStaggeredGrid
eingeführt. SnapFlingBehavior
,rememberSnapFlingBehavior
und andere entsprechende APIs wurden als experimentell hinzugefügt.- In
Modifier.clickable
,Modifier.toggleable
undModifier.selectable
werden jetzt Wellen angezeigt, wenn du mit der Tastatur oder dem Steuerkreuz auf einer Fernbedienung klickst.
Version 1.3.0-rc01
5. Oktober 2022
androidx.compose.foundation:foundation:1.3.0-rc01
und androidx.compose.foundation:foundation-layout:1.3.0-rc01
wurden veröffentlicht. Version 1.3.0-rc01 enthält diese Commits.
API-Änderungen
- Einführung von
lowVelocityAnimationSpec
, das im Annäherungsschritt verwendet wird, wenn die Fluggeschwindigkeit nicht ausreichend ist, um abzuschwächen. (Iaeb27) - Neue experimentelle API-Bindestriche zur Unterstützung der automatischen Bindestrichsetzung in Text hinzugefügt (Iaa869)
Version 1.3.0-beta03
21. September 2022
androidx.compose.foundation:foundation:1.3.0-beta03
und androidx.compose.foundation:foundation-layout:1.3.0-beta03
wurden veröffentlicht. Version 1.3.0-beta03 enthält diese Commits.
API-Änderungen
- Optionen zum Anpassen des Zeilenumbruchs im Text hinzufügen. (I86907)
BringIntoViewResponder
s können jetzt bei der Verarbeitung die aktuellen Grenzen einer Anfrage abrufen. (If86a5, b/241591211)- Unterstützung für Abstände zwischen Elementen im experimentellen
Staggered Grid
(I10b82) - Einführung des Abstands nach Inhalten in die experimentelle
Staggered Grid
(I342ea) - Das Argument
size:IntSize
wurde in der MethodeTextMeasurer.measure
mitconstraints: Constraints
geändert, um Einschränkungen für die minimale Breite zu unterstützen. (I37530, b/242707525) Modifier.withConsumedWindowInsets()
wurde hinzugefügt, umWindowInsets
zur Verwendung außerhalb vonwindowInsetsPadding
zu nutzen.MutableWindowInsets
wurde hinzugefügt, um das Ändern vonWindowInsets
ohne Neuzusammensetzung zu ermöglichen. (I7fd28, b/237019262, b/243119659)
Version 1.3.0-beta02
7. September 2022
androidx.compose.foundation:foundation:1.3.0-beta02
und androidx.compose.foundation:foundation-layout:1.3.0-beta02
wurden veröffentlicht. Version 1.3.0-beta02 enthält diese Commits.
API-Änderungen
- Erste Version der experimentellen Version von
StaggeredGrid
(Ia48be) FocusDirection.In
undFocusDirection.Out
wurden inFocusDirection.Enter
undFocusDirection.Exit
umbenannt (Ia4262, b/183746982)- Eine
rememberSnapFlingBehavior
-Überlastung wurde eingeführt, mit der das Andocken inLazyLists
schnell aktiviert werden kann. (Ifb48a) - Die
snapFlingBehavior
-Factory wurde durch eine konkreteSnapFlingBehavior
-Klasse ersetzt.SnapLayoutInfoProvider
-Methoden wurden auf Dichte übertragen, um die Dp-<->-Px-Konvertierungen für die API-Nutzer zu vereinfachen. (I54a11) - Aktualisieren Sie
LazyLayoutMeasureScope.measure
, um eine Liste der platzierbaren Elemente zurückzugeben. Heben Sie dabei die gewünschte Unveränderlichkeit des zurückgegebenen Werts hervor. (I48b7c) - Einführung von
SnapLayoutInfoProvider
. Damit wird eineLazyListState
-Instanz vonSnapLayoutInfoProvider
erstellt, mit der ein SnapFlingBehavior
fürLazyLists
aktiviert werden kann. (I2dd10)
Fehlerkorrekturen
- Refaktoriert
AwaitPointerEventScope#awaitLongPressOrCancellation
, damit es anderen Await-Funktionen entspricht (I646e6)
Version 1.3.0-beta01
24. August 2022
androidx.compose.foundation:foundation:1.3.0-beta01
und androidx.compose.foundation:foundation-layout:1.3.0-beta01
wurden veröffentlicht. Version 1.3.0-beta01 enthält diese Commits.
API-Änderungen
pointerPosition
wurde ausOverscrollEffect
entfernt: Effekte, für die die Zeigerposition wichtig ist, können stattdessenModifier.pointerInput { }
in dereffectModifier
verwenden, um die aktuelle Zeigerposition abzurufen. (I9f606, b/241239306)AwaitPointerEventScope#awaitLongPressOrCancellation
als zusätzlicher Baustein für eine komplexere Bewegungserkennung sichtbar (I04374, b/181577176)lazyListSnapLayoutInfoProvider
wurde eingeführt, um das Andocken in Lazy-Listen zu ermöglichen. (I3ecdf)- Einführung von
SnapFlingBehavior
, einem Fling-Verhalten, das das Andocken von Listen ermöglicht. Geben Sie eine Instanz vonSnapLayoutInfoProvider
mit Informationen zum Andocklayout an. (Ie754c)
Version 1.3.0-alpha03
10. August 2022
androidx.compose.foundation:foundation:1.3.0-alpha03
und androidx.compose.foundation:foundation-layout:1.3.0-alpha03
wurden veröffentlicht. Version 1.3.0-alpha03 enthält diese Commits.
API-Änderungen
- Ressourcenschriftarten unterstützen jetzt das Festlegen von Einstellungen für Schriftvariationen (API 26 und höher). (I900dd, b/143703328)
- Unterstützung für variable Schriftarten in
DeviceFontFamilyNameFont
(Ic1279, b/143703328) - Die experimentelle Annotation wurde aus
PlatformTextStyle
undLineHeightStyle
entfernt. (I64bef) - Textfelder geben jetzt detailliertere Ausnahmen aus, wenn die von
VisualTransformation
bereitgestellteOffsetMapping
ungültige Indexe zurückgibt. (Ie73f9, b/229378536) - Führen Sie experimentelle APIs ein, um die Logik des Artikelanbieters für Lazy-Layouts zu teilen. (IC891c)
ScrollableDefaults.reverseDirection()
ist nicht mehr experimentell. (Iba646)SemanticsModifier.id
wurde eingestellt und die Semantik-ID wurde nachLayoutInfo.semanticsId
verschoben. (Iac808, b/203559524)checkScrollableContainerConstraints()
ist nicht mehr experimentell. (I2c290)Modifier.clipScrollableContainer()
ist nicht mehr experimentell. (Ia2b44)TextInputService.show|hideSoftwareKeyboard
einstellen. Verwende im App-Code stattdessenSoftwareKeyboardController
und im IME-VerwaltungscodeTextInputSession
. (I14e4c, b/183448615)
Version 1.3.0-alpha02
27. Juli 2022
androidx.compose.foundation:foundation:1.3.0-alpha02
und androidx.compose.foundation:foundation-layout:1.3.0-alpha02
wurden veröffentlicht. Version 1.3.0-alpha02 enthält diese Commits.
API-Änderungen
- Die Erweiterungsfunktion
drawText
wurde fürDrawScope
hinzugefügt, um eine Möglichkeit zu bieten, Text mit mehreren Stilen für zusammensetzbare Funktionen und Modifikatoren zu zeichnen, die auf einemDrawScope
wieCanvas
unddrawBehind
ausgeführt werden. (I16a62, b/190787898)
Fehlerkorrekturen
- „Softtastatur“ wird jetzt ausgeblendet, wenn ein Textfeld im Fokus deaktiviert ist. (I6e3e4, b/237308379)
- Beim Hinzufügen von
InputEventChange
-Ereignissen in Velocity Tracker werden jetzt Deltas anstelle von Positionen berücksichtigt. Dadurch wird garantiert, dass die Geschwindigkeit für alle Fälle korrekt berechnet wird, selbst wenn sich das Zielelement bewegt (Icea9d, b/216582726, b/223440806, b/227709803). - Wenn ein scrollbares Element ein untergeordnetes Element im Fokus hat, wird es jetzt korrekt gescrollt, damit das fokussierte untergeordnete Element beim Verringern der Größe sichtbar bleibt, auch wenn die Größe animiert ist. (I80867, b/230756508, b/220119990)
- Ein Absturz wurde behoben, bei dem
TextField
gelöscht und neu ausgefüllt wurde, während die Auswahl aktiv war. (I1235b, b/208655565, b/214253689)
Version 1.3.0-alpha01
29. Juni 2022
androidx.compose.foundation:foundation:1.3.0-alpha01
und androidx.compose.foundation:foundation-layout:1.3.0-alpha01
wurden veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.
API-Änderungen
- Einführung des Annotationstyps
UrlAnnotation
und der zugehörigen Methoden zur Unterstützung vonTalkBack
-Links inAnnotatedString
s. (I1c754, b/231495122)
Fehlerkorrekturen
BasicTextField
cursorBrush
kann jetzt ohne Neustart des Cursor-Timers animiert werden. (I812e6, b/236383522)
Version 1.2
Version 1.2.1
10. August 2022
androidx.compose.foundation:foundation:1.2.1
und androidx.compose.foundation:foundation-layout:1.2.1
wurden veröffentlicht. Version 1.2.1 enthält diese Commits.
Version 1.2.0
27. Juli 2022
androidx.compose.foundation:foundation:1.2.0
und androidx.compose.foundation:foundation-layout:1.2.0
wurden veröffentlicht. Version 1.2.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.1.0
LazyVerticalGrid
undLazyHorizontalGrid
sind jetzt stabil.- Sie können jetzt einen Inhaltstyp für Elemente in Lazy-Listen und -Rastern angeben. So können die Komponenten Elemente effizienter wiederverwenden.
- Verzögerte Listen und Raster haben jetzt den Parameter
userScrollEnabled
, mit dem das Scrollen über Nutzergesten deaktiviert werden kann. - Eine neue experimentelle API mit dem Namen
LazyLayout
wurde hinzugefügt. Es ist die API, die wir intern für Lazy Listen und Raster verwenden. - Die
OverscrollEffect
API wurde als experimentell eingeführt. Sie können benutzerdefinierte Overscroll-Effekte definieren und benutzerdefinierten scrollbaren Containern eine Standardplattform-1 hinzufügen. - Verschachtelte Interoperabilitäts-APIs für das Scrollen wurden eingeführt, um die Interoperabilität zwischen Ansichten und Scrolling-Akteuren zu ermöglichen.
- Das Scrollen mit Maus und Touchpad wurde allen scrollbaren Containern hinzugefügt.
Version 1.2.0-rc03
29. Juni 2022
androidx.compose.foundation:foundation:1.2.0-rc03
und androidx.compose.foundation:foundation-layout:1.2.0-rc03
wurden veröffentlicht. Version 1.2.0-rc03 enthält diese Commits.
- Keine Änderungen seit 1.2.0 bis rc02.
Version 1.2.0-rc02
22. Juni 2022
androidx.compose.foundation:foundation:1.2.0-rc02
und androidx.compose.foundation:foundation-layout:1.2.0-rc02
wurden veröffentlicht. Version 1.2.0-rc02 enthält diese Commits.
Version 1.2.0-rc01
15. Juni 2022
androidx.compose.foundation:foundation:1.2.0-rc01
und androidx.compose.foundation:foundation-layout:1.2.0-rc01
wurden veröffentlicht. Version 1.2.0-rc01 enthält diese Commits.
API-Änderungen
- Es wurde eine experimentelle
OverscrollEffect
eingeführt, um neben denModifier.scrollable
-Überladungen, die diese Overscroll-Effekte akzeptieren, benutzerdefinierte Overscroll-Effekte zu ermöglichen. - Die experimentelle
LocalOverScrollConfiguration
wurde vonfoundation.gesture
in das Foundation Package verschoben und inLocalOverscrollConfiguration
umbenannt (If19fb, b/204650733) - Schnittstellen in Erstellungsbibliotheken werden jetzt mit jdk8-Standardschnittstellenmethoden erstellt (I5bcf1).
- Es wurde eine experimentelle API
checkScrollableContainerConstraints()
eingeführt, mit der geprüft werden kann, ob scrollbare Container verschachtelt werden. Sie können sie verwenden, wenn Sie überLazyLayout
eigene scrollbare Lazy-Layouts erstellen. (Id6fab, b/233352497) - Das verworfene
LazyVerticalGrid
-Objekt wurde aus demandroidx.compose.foundation.lazy
-Paket entfernt. Die neue stabile API befindet sich inandroidx.compose.foundation.lazy.grid
(I73c76, b/225192009).
Version 1.2.0-beta03
1. Juni 2022
androidx.compose.foundation:foundation:1.2.0-beta03
und androidx.compose.foundation:foundation-layout:1.2.0-beta03
wurden veröffentlicht. Version 1.2.0-beta03 enthält diese Commits.
API-Änderungen
- Neue experimentelle
IntervalList
undMutableIntervalList
hinzugefügt. Damit können einige Werte in mehreren Intervallen dargestellt werden. Das ist nützlich, wenn Sie eine eigene DSL ähnlich der vonLazyColumn
verwenden möchten, bei der Listenelemente über mehrere Element-/Elementaufrufe definiert werden können. (I2d05e, b/228580728)
Fehlerkorrekturen
- Die Dokumentation für
WindowInsets.ime
wurde klarer formuliert, um zu verdeutlichen, dassime
-Einsätze ab API 23 gemeldet werden, aber ab API 23 nur animiert werden. (Ia7fc0, b/230756508) - Wenn Sie die Vorwärts-Löschtaste drücken, wenn sich der Cursor am Ende eines Textfelds befindet, stürzt dies nicht mehr ab.
- Für
DeleteSurroundingTextCommand
undDeleteSurroundingTextInCodePointsCommand
müssen ihre Konstruktorargumente jetzt nicht negativ sein. (Ica8e6, b/199919707)
Version 1.2.0-beta02
18. Mai 2022
androidx.compose.foundation:foundation:1.2.0-beta02
und androidx.compose.foundation:foundation-layout:1.2.0-beta02
wurden veröffentlicht. Version 1.2.0-beta02 enthält diese Commits.
- Eine herunterladbare Schriftauflösung, bei der die Layoutgröße von Text oder
TextField
nicht geändert wurde, konnte nicht neu gezeichnet werden, was zu einer veralteten Schriftart führt. Durch diese Fehlerkorrektur wird sichergestellt, dass das Textlayout immer das Neuzeichnen auslöst (b/229727404). (I1d49e, b/229727404)
Version 1.2.0-beta01
11. Mai 2022
androidx.compose.foundation:foundation:1.2.0-beta01
und androidx.compose.foundation:foundation-layout:1.2.0-beta01
wurden veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.
Neue Funktionen
- Dies ist die erste Betaversion von Version 1.2.
API-Änderungen
- Experimentelle
BeyondBoundsInterval
hinzugefügt, die verwendet werden können durch benutzerdefinierte Implementierungen vonLazyList
, wenn Elemente über die sichtbaren Grenzen hinaus angeordnet werden (Ifabfb, b/184670295) LineHeightBehavior
wird inLineHeightStyle
umbenannt.LineVerticalAlignment
wird inLineHeightStyle.Alignment
umbenannt.- „
LineHeightTrim
“ wird umbenannt in „LineHeightStyle.Trim
“ - Standardkonstruktorwerte aus
LineHeightStyle
werden entfernt (I582bf, b/181155707). - Es wurden Standardwerte für die optionalen Mitglieder der
LazyLayoutItemProvider
-Oberfläche hinzugefügt. (Iba8a0) - In der
LazyLayoutItemProvider
API gibt es jetzt eine einfachere zusammensetzbare Funktion, die den Index akzeptiert, statt in einer Factory, die die zusammensetzbare Lambda nach Index zurückgibt. (ID2196) - LazyLayoutItemsProvider wurde in LazyLayoutItemProvider (I0638c) umbenannt
LazyLayoutItemsProvider.itemsCount
wird initemCount
umbenannt (Id409c).- Pinsel wurde zu
TextStyle
undSpanStyle
hinzugefügt, um Text mit Farbverlauf zu zeichnen. (I53869, b/187839528) trimFirstLineTop
,trimLastLineBottom
Attribute von AusLineHeightBehavior
wurde eine einzelne Aufzählung geändert:LineHeightTrim
.LineHeightTrim
haben die Werte aus vier Zuständen, die durch zwei boolesche Werte definiert werden:FirstLineTop
,LastLineBottom
, Beide und keine (Ifc6a5, b/181155707)LineHeightBehavior
wurde zuTextStyle
hinzugefügt undParagraphStyle. LineHeightBehavior
steuert, ob die Zeilenhöhe am oberen und unteren Rand der letzten Zeile angewendet wird. Außerdem definiert er die Ausrichtung der Linie in dem durchTextStyle
(lineHeight
) vorgegebenen Feld.Es ist beispielsweise möglich, ein Verhalten zu erhalten, das dem CSS-Code ähnelt, definiert über
LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false)
.Konfigurationen mit
trimFirstLineTop
undtrimLastLineBottom
funktionieren ordnungsgemäß nur wennincludeFontPadding
„false“ ist. (I97332, b/181155707)Es wurde ein experimenteller
imeNestedScroll()
-Modifikator hinzugefügt, damit Entwickler den IME durch Scrollen steuern können. (I60759)
Fehlerkorrekturen
- Problem bei der Regression behoben, bei dem Textfelder die Tastatur nicht ausblenden, wenn sie im Fokus aus der Komposition entfernt wurden. (I7a410, b/230536793, b/225541817)
- Auslassungspunkte werden unterstützt, wenn die Höhe begrenzt ist und nicht für alle Textzeilen geeignet ist (Ie528c, b/168720622).
BringIntoViewRequester.bringIntoView
wird jetzt immer angehalten, bis die Anfrage abgeschlossen ist oder von einer neueren, sich nicht überschneidenden Anfrage unterbrochen wurde. Sich überschneidende Anfragen werden in die Warteschlange gestellt. (I43e7f, b/216790855)- Gleichzeitige
BringIntoViewRequester.bringIntoView
-Aufrufe für Rechtecke, die sich vollständig überlappen, berücksichtigen jetzt nur die Anfrage von Large Rectangle. (I34be7, b/216790855, b/184760918) includeFontPadding
ist standardmäßig aktiviert. Es ist möglich, dieincludeFontPadding
mit dem AttributTextStyle.platformTextStyle
zu deaktivieren. In naher Zukunft werden wir das Standardverhalten ändern. Bis dahin können wir jedoch Verbesserungen an der Zeilenhöhe (aosp/2058653) besser integrieren undTextField
-Clipping-Probleme beheben. (I01423, b/171394808)Modifier.bringIntoViewRequester
verwendetonGloballyPositioned
nicht mehr. (I630f5)
Externer Beitrag
MouseInjectionScope.scroll(delta = someDelta)
wird jetzt unter Android umgekehrt, wenn wir vertikal scrollen. Wenn „someDelta“ positiv ist, wird nach unten gescrollt. (Ifb697, b/224992993)
Version 1.2.0-alpha08
20. April 2022
androidx.compose.foundation:foundation:1.2.0-alpha08
und androidx.compose.foundation:foundation-layout:1.2.0-alpha08
wurden veröffentlicht. Version 1.2.0-alpha08 enthält diese Commits.
API-Änderungen
- Alle verfügbaren Schriftstärken für Systemschriftarten unter Android anzeigen, wenn
FontFamily.SansSerif
verwendet wird. In API 21 bis 28 werden dann intern Fallback-Schriftnamen wie „serif-medium“ verwendet. Dies ist eine Verhaltensänderung, da bisher nur die Gewichtungen 400 und 700 von API 21 bis 28 unterstützt wurden. (I380fe, b/156048036, b/226441992) - Absatz und MultiParagraph akzeptieren jetzt Einschränkungen-Parameter. Das Bestehen von
Constraints.maxHeight
ist derzeit ein Leerlauf, aber ermöglicht in Zukunft Berechnungen durchführen, z. B. Ellipsen anwenden. (I6afee, b/168720622) SubcomposeSlotReusePolicy.getSlotsToRetain()
akzeptiert jetzt eine benutzerdefinierte MutableSet-ähnliche Klasse, mit der keine neuen Elemente hinzugefügt werden können. (ICD314)- Der Teilverbrauch (nach unten ODER in der Position) wurde in
PointerInputChange
eingestellt. Sie könnenconsume()
verwenden, um die Änderung vollständig zu übernehmen. MitisConsumed
können Sie feststellen, ob die Änderung bereits von einer anderen Person übernommen wurde. PointerInputChange::copy()
erstellt jetzt immer eine oberflächliche Kopie. Das bedeutet, dass Kopien von „PointerInputChange
“ genutzt werden, sobald eines der Exemplare verarbeitet wurde. Wenn Sie eine ungebundenePointerInputChange
erstellen möchten, verwenden Sie stattdessen den Konstruktor. (Ie6be4, b/225669674)- Es wurde eine neue experimentelle
LazyLayout
API eingeführt. So können Sie Ihre eigenen Komponenten wieLazyColumn
vonLazyVerticalGrid
erstellen. Die API befindet sich noch in der Anfangsphase und kann in zukünftigen Versionen geändert werden. (Iba2bc, b/166591700) AndroidFont
verwendet jetzttypefaceLoader
als Konstruktorparameter. (I2c971)- „
WindowInsets
“-Companion zeigt jetzt die Sichtbarkeit (ob sie auf dem Bildschirm erscheinen, unabhängig davon, ob sie sich mit dem Fenster kreuzen) und deren Größe an, wenn sie auf dem Gerät verfügbar, aber derzeit nicht aktiv sind. (I65182, b/217770337)
Version 1.2.0-alpha07
6. April 2022
androidx.compose.foundation:foundation:1.2.0-alpha07
und androidx.compose.foundation:foundation-layout:1.2.0-alpha07
wurden veröffentlicht. Version 1.2.0-alpha07 enthält diese Commits.
API-Änderungen
- Es wurde eine
PinnableParent
API hinzugefügt, mit der untergeordnete Elemente von Lazy-Layouts verhindert werden können, dass die aktuell erstellten Elemente entsorgt werden (Ibbdd0, b/184670295). LazyListLayoutInfo
undLazyGridLayoutInfo
haben jetzt die FelderbeforeContentPadding
undafterContentPadding
(I3b628, b/200920410)KeyboardType.Decimal
wurde als Alternative zuKeyboard.Number
hinzugefügt, um speziell ein Dezimaltrennzeichen in IME zu verwenden. (Iec4c8, b/209835363)- Neuen Schriftartdeskriptor Font(DeviceFontFamilyName) hinzufügen zu optional nach vom System installierten Schriftarten während der Fallback-Ketten für Schriftarten suchen. (I30468, b/219754572)
PointerEventType.Scroll
undPointerEvent.scrollDelta
sind jetzt stabile APIs (I574c5, b/225669674).- Die hinzugefügte temporäre Kompatibilitätskonfiguration für
includeFontPadding
inTextStyle/ParagraphStyle. includeFontPadding
kann überTextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false))
geändert werden. Dies ist eine temporäre Konfigurationsoption, mit der die Migration aktiviert wird. Sie wird entfernt. (If47be, b/171394808) FontFamily.Resolver
wurde aktualisiert, um die systemweite Bedienungshilfe für fett formatierten Text zu integrieren (I6c1e7)- Mit der Erweiterungseigenschaft
consumeWindowInsets
vonComposeView
können Entwickler die Nutzung von Android-WindowInsets deaktivieren. Dadurch können separateComposeViews
in der Hierarchie jeweilsWindowInsets
anwenden, ohne sich gegenseitig zu beeinträchtigen. (I0ef08, b/220943142)
Version 1.2.0-alpha06
23. März 2022
androidx.compose.foundation:foundation:1.2.0-alpha06
und androidx.compose.foundation:foundation-layout:1.2.0-alpha06
wurden veröffentlicht. Version 1.2.0-alpha06 enthält diese Commits.
API-Änderungen
- Semantikaktion
RequestFocus
wurde hinzugefügt, um den Fokus auf das fokussierbare Ziel anzufordern. (I17b71) FocusOrder
wurde mitFocusProperties
zusammengeführt undfocusProperties()
verfügt jetzt über alle Funktionen vonfocusOrder()
.FocusOrder
undfocusOrder()
wurden verworfen.focusOrder()
, derfocusRequester
akzeptiert, sollte durch einenfocusRequester()
-Modifikator in Kombination mitfocusProperties()
ersetzt werden. Dadurch können die Modifikatoren stärker getrennt werden. (I601b7)WindowInsets.asPaddingValues(Density)
wurde hinzugefügt, damit Entwickler die Conversion auch ohne Zusammenstellung ausführen können. (I94c35)- Das Parsen von Vektor-Drawables wurde aktualisiert, um die automatische Spiegelung zu unterstützen und den Inhalt eines
VectorPainter
zu spiegeln, wenn das aktuelle Layout ist RTL. (I79cd9, b/185760237)
Fehlerkorrekturen
- Mit den Scroll-Modifikatoren (
Modifier.verticalScroll()
,Modifier.horizontalScroll()
undModifier.scrollable()
) wird jetzt gescrollt, damit die fokussierte zusammensetzbare Funktion sichtbar bleibt, wenn die Größe des Scrollbereichs geändert wird und die fokussierte zusammensetzbare Funktion zuvor sichtbar war. - Textfelder werden jetzt über der Tastatur angezeigt, wenn sie fokussiert sind und die Tastatur angezeigt wird, wenn sie sich in einem nicht Lazy Scrollable befinden und der Modus für die weiche Eingabe
ADJUST_RESIZE
ist. (I4a485, b/190539358, b/192043120, b/216842427)
Version 1.2.0-alpha05
9. März 2022
androidx.compose.foundation:foundation:1.2.0-alpha05
und androidx.compose.foundation:foundation-layout:1.2.0-alpha05
wurden veröffentlicht. Version 1.2.0-alpha05 enthält diese Commits.
API-Änderungen
LazyVerticalGrid
undLazyHorizontalGrid
sind jetzt stabil. (I307c0)LazyGridItemInfo.Unknown
wurde durch separateLazyGridItemInfo.UnknownRow
undLazyGridItemInfo.UnknownColumn
ersetzt (I56d51)LazyVerticalGrid
/LazyHorizontalGrid
und alle zugehörigen APIs wurden in das Unterpaket.grid
verschoben. Bitte aktualisieren Sie Ihre Importe vonandroidx.compose.foundation.lazy
aufandroidx.compose.foundation.lazy.grid
. (I2d446, b/219942574)- SMS:
includeFontPadding
ist jetzt standardmäßig deaktiviert. Die Clip-Probleme infolge vonincludeFontPadding=false
behoben Bei hohen Skripts sollten keine Begrenzungen vorgenommen werden. (I31c84, b/171394808) - Die Measured Interface zeigt jetzt die „parentData“-Property (I3313f) an
- Einführung der experimentellen Funktion
Modifier.onFocusedBoundsChanged
die Grenzen von fokussierbaren Elementen für Kinder beobachten. (I14283, b/220030968, b/190539358, b/192043120, b/216842427) - LazyHorizontalGrid wurde hinzugefügt. (I61ae7, b/191238807)
- Neue
LazyVerticalGrid
API zum Definieren von Achsengrößen hinzugefügt (I17723) - FocusGroup-Modifikator (I64bc0, b/213508274, b/184670295) hinzugefügt
Fehlerkorrekturen
WindowInsets.toString()
zeigt jetzt die richtigen Werte an. (I1585d)
Externer Beitrag
- Aktualisiert für die Verwendung der Kotlinx-Koroutinen 1.6.0 (I3366d)
Version 1.2.0-alpha04
23. Februar 2022
androidx.compose.foundation:foundation:1.2.0-alpha04
und androidx.compose.foundation:foundation-layout:1.2.0-alpha04
wurden veröffentlicht. Version 1.2.0-alpha04 enthält diese Commits.
API-Änderungen
BringIntoViewResponders
müssen nicht mehr manuell an die Eltern weiterleiten, und müssen stattdessen sofort das Rechteck zurückgeben, das von den übergeordneten Elementen sichtbar sind. (I8e66a)- Asynchrones Laden von Schriftarten in Texten unterstützen (I77057, b/214587005)
LazyVerticalGrid
unterstützt jetztline breaking
vor Elementen mit einer Spanne, die nicht in die aktuelle Linie passt. (I05c40, b/207462103)excludeFromSystemGestures
wurde insystemGesturesExclusion
umbenannt (I19526)LazyVerticalGrid
unterstützt jetzt umgekehrtesLayout. (I6d7d7, b/215572963, b/211753558)- Methode
WindowInsets.only()
hinzufügen, um Entwickler zuzulassen um nur Dimensionen aus WindowInsets einzubeziehen. (I14c94, b/217768486) ComposableTarget
,ComposableTargetMarker
undComposableOpenTarget
, mit dem in Berichten zur Kompilierungszeit angegeben wird, Eine zusammensetzbare Funktion wird als Targeting auf eine Anwendung bezeichnet, auf die sie nicht entwickelt wurden.In den meisten Fällen können die Anmerkungen aus dem Editor Compiler-Plug-in. Die direkte Verwendung dieser Annotationen selten . Zu den Fällen, die nicht abgeleitet werden können, gehören das Erstellen und abstrakte zusammensetzbare Funktionen (z. B. -Schnittstellenmethoden), Felder oder globale Variablen, zusammensetzbare Lambdas (lokale Variablen und Parameter werden abgeleitet), oder wenn Sie
ComposeNode
oder ähnliche zusammensetzbare Funktionen verwenden.Bei benutzerdefinierten Anwendungen sind die zusammensetzbaren Funktionen, die Für
ComposeNode
oderReusableComposeNode
muss Folgendes hinzugefügt werden:CompoableTarget
-Annotation für die Funktion und alle zusammensetzbaren Lambda-Parametertypen. Es wird jedoch empfohlen, um eine Anmerkung zu erstellen, die mitComposableTargetMarker
und dann die markierte Anmerkung werden verwendet. statt direktComposableTarget
. Eine zusammensetzbare Anmerkung mitComposableTargetMarker
gekennzeichnet ist, entsprichtComposbleTarget
durch den voll qualifizierten Namen des Attributs als Anwendungsparameter. Ein Beispiel für die Verwendung vonComposableTargetMarker
sieheanroidx.compose.ui.UiComposable
. (I38f11)
Fehlerkorrekturen
- Jetzt ist es zulässig, negative Scroll-Offsets an
LazyGridState.scrollToItem()
undLazyGridState.animateScrollToItem()
zu übergeben. (I025c6, b/211753558) - Asynchrones Laden von Schriftarten für TextField wird unterstützt. (Icc4bf, b/214587005)
Version 1.2.0-alpha03
9. Februar 2022
androidx.compose.foundation:foundation:1.2.0-alpha03
und androidx.compose.foundation:foundation-layout:1.2.0-alpha03
wurden veröffentlicht. Version 1.2.0-alpha03 enthält diese Commits.
API-Änderungen
notifyFocusedRect
-Methoden inTextInputSession
undTextInputService
wurden verworfen und werden nicht aufgerufen. Verwenden Sie StattdessenBringIntoViewRequester
. (Ia4302, b/192043120, b/216842427, b/178211874)- Animationen wurden für Elemente von Lazy Grids mit Modifier.animateItemPlacement() aktiviert. (Ib6621, b/211753218)
BringIntoViewRequester
leitet jetzt Anfragen an das Hosting weiter Android View (Ia7a51)FontFamilyResolver
ist jetzt verfügbar überLocalFontFamilyResolver.current
<ph type="x-smartling-placeholder">- </ph>
- Hinzugefügt:
createFontFamilyResolver(context)
und Zum Erstellen eines neuen ElementscreateFontFamilyResolver(context, coroutineScope)
FontFamily-Resolver außerhalb des Editors. - Absatz und MultiParagraph nehmen jetzt
FontFamily.Resolver
TextLayoutResult.layoutInput.fontFamilyResolver
enthält jetzt der für dieses Layout verwendete Resolver; eingestelltTextLayoutResult.layoutInput.resourceLoader
, da es nicht mehr verwendet wird. (Id5a45, b/174162090)
- Hinzugefügt:
AndroidFont
wurde hinzugefügt, eine neue Low-Level-API zum Bereitstellen neuer Typen. Ressourcendeskriptoren für Schriftarten unter Android. Das Laden von Schriftarten aus ein App-spezifisches Back-End, das optional vorinstallierte Schriftarten findet oder das Laden einer Schriftart aus einer Ressource, die nicht vom aktuellen Font Factorys.- Erweiterung der
Font.ResourceLoaded
API zur Unterstützung optionaler und asynchroner APIs Schriftart wird geladen. Anwendungsentwickler sollten diese API direkt verwenden. Unter „AndroidFont“ kannst du neue Schriftarten hinzufügen. Font.AndroidResourceLoader
-Erweiterungsfunktion ermöglicht Konstruktion einesFont.ResourceLoader
außerhalb der Komposition.loadingStrategy
-Parameter zu ressourcenbasierten Schriftarten hinzugefügt, um zuzulassen asynchrones Laden, wenn die Ressourcenschriftart auf eine herunterladbare Schriftarten-XML verweist (Ie5aea, b/174162090)
- Erweiterung der
- Der
Typeface(FontFamily)
-Konstruktor wurde verworfen. Dies war vorab geladen wurden. Dies kann bis zu 10 Sekunden dauern, Schriftarten herunterladen können. Wenn du Schriftarten herunterlädst, wird dieser Anruf möglicherweise für 10 gesperrt Sekunden. Verwende stattdessenFontFamilyResolver.preload
<ph type="x-smartling-placeholder">- </ph>
fontResource(FontFamily): Typeface
wurde verworfen. Dies war vorab geladen wurden. Dies kann bis zu 10 Sekunden dauern, Schriftarten herunterladen können. Verwenden Sie stattdessenFontFamilyResolver.preload
(If8e7c, b/174162090).
- Du kannst jetzt den Inhaltstyp für die Elemente von
LazyVerticalGrid
angeben. Für Artikel-/Artikelfunktionen inLazyGridScope
werden jetzt solche Parameter akzeptiert. Die Bereitstellung solcher Informationen hilft dabei, die Logik für die Zusammensetzung von Elementen effizienter zu nutzen und nur die Inhalte zwischen Elementen eines ähnlichen Typs wiederzuverwenden. (I7b355, b/215372836) LazyListLayoutInfo
undLazyGridLayoutInfo
haben jetzt neue Properties:viewportSize
,orientation
,reverseLayout
(Ifc8ed, b/200920410)- Sie können jetzt den Inhaltstyp für Elemente von LazyColumn/LazyRow angeben – Funktionen für Elemente/Elemente in LazyListScope akzeptieren jetzt solche Parameter. Die Bereitstellung solcher Informationen hilft dabei, die Logik für die Zusammensetzung von Elementen effizienter zu nutzen und nur die Inhalte zwischen Elementen eines ähnlichen Typs wiederzuverwenden. (I26506)
- Der
SubcomposeLayoutState
-Konstruktor, dermaxSlotsToRetainForReuse
akzeptiert, wurde verworfen. Stattdessen gibt es einen neuen Konstruktor, derSubcomposeSlotReusePolicy
akzeptiert – eine neue Benutzeroberfläche, die eine genauere Kontrolle darüber ermöglicht, welche Slots für die zukünftige Wiederverwendung beibehalten werden sollen. (I52c4d) - Fügt Modifikatoren für WindowInsets hinzu, beide für das Padding und die Größe anpassen. Dadurch können einige Inhalte auch auf den eingefügten Bereich und die primären Inhalte sollten sich außerhalb des eingefügten Bereichs befinden. Mit „windowInsetsPadding“ kann beispielsweise der Inhalt aufgefüllt werden. um Bereiche zu vermeiden, die vollständig oder teilweise abgedeckt sind. (Id0395, b/213942085)
Fehlerkorrekturen
- Textfelder werden jetzt oberhalb der Tastatur angezeigt,
und die Tastatur wird angezeigt, wenn der Modus für die weiche Eingabe
ADJUST_PAN
(I8eaeb, b/190539358, b/192043120) - Auf dem Computer wird die lokale Zusammensetzung für „
FontFamily.Resolver
“ verwendet <ph type="x-smartling-placeholder">- </ph>
FontLoader
wurde für Computer eingestellt- Neue
createFontFamilyResolver
-Factory auf dem Computer (I6bbbb, b/174162090)
- Der Eingabetyp „Softtastatur“ flackert beim Ändern nicht mehr. Textfelder hervorheben. (I1bf50, b/187746439)
- Bei Textfeldern ist kein zusätzliches Drücken der Schaltfläche „Zurück“ mehr erforderlich, wenn die Cursor-Ziehpunkt wird angezeigt. (Ideb4b, b/205726883)
- Die Funktion der Lupe bei der Textauswahl wurde optimiert für mit der Lupe übereinstimmen. (Idd918, b/206833278)
Version 1.2.0-alpha02
26. Januar 2022
androidx.compose.foundation:foundation:1.2.0-alpha02
und androidx.compose.foundation:foundation-layout:1.2.0-alpha02
wurden veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.
API-Änderungen
- Überlastende Methoden wurden um
NonRestartableComposable
ergänzt der vorhandenen Methoden ohne komplexe Logik. Dadurch wird die Anzahl der generierte Erinnerungsprüfungen (ist gleich) für alle Parameter, die in der inneren Funktion wiederholt, die aufgerufen wird. (I90490) excludeFromSystemGesture
Modifikatoren hinzugefügt für einfacher Zugriff auf dassetSystemGestureExclusionRects
von Android (I46f07)
Fehlerkorrekturen
- Die Funktion der Lupe bei der Textauswahl wurde optimiert für mit der Lupe übereinstimmen. (Idd918, b/206833278)
LazyColumn
,LazyRow
,Modifier.verticalScroll
und andere Container, dieModifier.scrollable
verwenden, unterstützen jetzt das Scrollen mit dem Mausrad. (I2b5e1, b/198214718)
Version 1.2.0-alpha01
12. Januar 2022
androidx.compose.foundation:foundation:1.2.0-alpha01
und androidx.compose.foundation:foundation-layout:1.2.0-alpha01
wurden veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.
API-Änderungen
- Der neue Parameter
userScrollEnabled
wurdeLazyColumn
,LazyRow
undLazyVerticalGrid
hinzugefügt, damit Nutzer das Scrollen über Touch-Gesten oder Aktionen für Bedienungshilfen vorübergehend oder dauerhaft deaktivieren können. Das programmatische Scrollen über die Methoden für den Status ist weiterhin zulässig. (I7eae9, b/201150093) - Dem Lupenmodifikator wurde der Callback
onSizeChanged
hinzugefügt. (I6879f) - Das Lupen-Widget wird jetzt beim Ziehen der Auswahl angezeigt
Aliasse in einem
SelectionContainer
. (I30b38, b/139320979)
Fehlerkorrekturen
- Das Problem mit dem Cursor-Ziehpunkt
TextField
wurde behoben, der beim Herausscrollen nicht ausgeblendet wird Ansicht. (I14552, b/208883748)
Aktualisierung der Abhängigkeiten
- Jetzt abhängig von Kotlin-
1.6.10
.
Version 1.1
Version 1.1.1
23. Februar 2022
androidx.compose.foundation:foundation:1.1.1
und androidx.compose.foundation:foundation-layout:1.1.1
wurden veröffentlicht. Version 1.1.1 enthält diese Commits.
Fehlerkorrekturen
- Problem mit
NullPointerException
unterandroidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
beheben (aosp/1947059, b/206677462) - Absturz behoben, der durch Inhalte in der Zwischenablage beim Lesen von die Zwischenablage auf Android-Geräten. (I06020, b/197769306)
- RTL-Fehler in
LazyVerticalGrid
behoben (aosp/1931080, b/207510535)
Version 1.1.0
9. Februar 2022
androidx.compose.foundation:foundation:1.1.0
und androidx.compose.foundation:foundation-layout:1.1.0
wurden veröffentlicht. Version 1.1.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.0.0
- Stabile Unterstützung für den Overscroll-Effekt von Android 12
- Verbesserungen bei der Größe von Berührungszielbereichen
- In Bezug auf Compose 1.0 wird der Layoutbereich von Material-Komponenten so erweitert, dass sie den Richtlinien für Bedienungshilfen von Material für die Größe des Berührungszielbereichs entsprechen. Das Berührungsziel der Schaltfläche wird beispielsweise auf eine Mindestgröße von 48 x 48 dp erweitert, auch wenn Sie die Größe der Schaltfläche entsprechend verringern. Dadurch wird das Kompositionsmaterial auf das gleiche Verhalten der Material Design-Komponenten abgestimmt, was ein einheitliches Verhalten ermöglicht, wenn du „View“ und „Compose“ mischst. Durch diese Änderung wird außerdem sichergestellt, dass beim Erstellen der Benutzeroberfläche mit „Material erstellen“-Komponenten die Mindestanforderungen für die Barrierefreiheit auf Berührungszielbereichen erfüllt sind.
- Stabile Unterstützung für Navigation Rail
- Umstellung einer Reihe zuvor experimenteller APIs auf stabile Version
- Support für neuere Versionen von Kotlin
Version 1.1.0-rc03
26. Januar 2022
androidx.compose.foundation:foundation:1.1.0-rc03
und androidx.compose.foundation:foundation-layout:1.1.0-rc03
wurden veröffentlicht. Version 1.1.0-rc03 enthält diese Commits.
Fehlerkorrekturen
- Aktualisiert, um Compose Material 1.1.0-rc03 zu unterstützen
Version 1.1.0-rc01
15. Dezember 2021
androidx.compose.foundation:foundation:1.1.0-rc01
und androidx.compose.foundation:foundation-layout:1.1.0-rc01
wurden veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.
Fehlerkorrekturen
- Jetzt ist es zulässig, negative Scroll-Offsets an
LazyListState.scrollToItem()
undLazyListState.animateScrollToItem()
zu übergeben. (Iceb90, b/184252837) - Es wurde ein Fehler behoben, der zu fehlenden Scroll-Aktionen für Bedienungshilfen führte (I7cbfb)
Version 1.1.0-beta04
1. Dezember 2021
androidx.compose.foundation:foundation:1.1.0-beta04
und androidx.compose.foundation:foundation-layout:1.1.0-beta04
wurden veröffentlicht. Version 1.1.0-beta04 enthält diese Commits.
Neue Funktionen
- Aktualisiert, um mit Kotlin-
1.6.0
kompatibel zu sein
API-Änderungen
- Die Null-Zulässigkeit in
androidx.core.view
(I7078a, b/204917439) wurde bereinigt. - Es wurden experimentelle APIs hinzugefügt, die es ermöglichen, PointerInputchange insgesamt zu verbrauchen oder zu prüfen, ob sie verwendet wurde oder nicht. (I2e59d)
- Lupen-Widget beim Ziehen des Cursors oder Auswahlpunkte in Textfeldern. (I5391e, b/203781358)
Fehlerkorrekturen
- Ein Problem wurde behoben, durch das sich die Text-Ziehpunkte nicht bewegen, wenn sich die Sichtbarkeit des IME ändert. (I25f2e)
Version 1.1.0-beta03
17. November 2021
androidx.compose.foundation:foundation:1.1.0-beta03
und androidx.compose.foundation:foundation-layout:1.1.0-beta03
wurden veröffentlicht. Version 1.1.0-beta03 enthält diese Commits.
API-Änderungen
- LazyVerticalGrid unterstützt jetzt horizontale Spans. (I7e2fa, b/176758183)
Eine experimentelle Funktion zum Animieren der Position von Elementen in Lazy Listen wurde hinzugefügt. In LazyItemScope ist ein neuer Modifikator namens
Modifier.animateItemPlacement()
verfügbar. Verwendungsbeispiel:var list by remember { mutableStateOf(listOf("A", "B", "C")) } LazyColumn { item { Button(onClick = { list = list.shuffled() }) { Text("Shuffle") } } items(list, key = { it }) { Text("Item $it", Modifier.animateItemPlacement()) } }
- Wenn Sie über
LazyListScope.item
oderLazyListScope.items
einen Schlüssel angeben, aktiviert dieser Modifikator Animationen zur Neuanordnung der Elemente. Neben der Neuanordnung von Elementen werden auch alle anderen Positionsänderungen, die durch Ereignisse wie Anordnungen oder Ausrichtungsänderungen hervorgerufen werden, animiert. (I59e7b, b/150812265)
- Wenn Sie über
Version 1.1.0-beta02
3. November 2021
androidx.compose.foundation:foundation:1.1.0-beta02
und androidx.compose.foundation:foundation-layout:1.1.0-beta02
wurden 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. Bei einem Ausfall werden sie jetzt nicht mehr immer verzögert. (Ibefe0, b/203141462) - Es wurde eine experimentelle BringIntoView API hinzugefügt, mit der Sie eine Anfrage an Eltern senden können, damit diese scrollen, um ein Element sichtbar zu machen (Ib918d, b/195353459).
Externer Beitrag
Modifier.pointerHoverIcon
hinzugefügt (I95f01)
Version 1.1.0-beta01
27. Oktober 2021
androidx.compose.foundation:foundation:1.1.0-beta01
und androidx.compose.foundation:foundation-layout:1.1.0-beta01
wurden veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.
Fehlerkorrekturen
- Es wurde eine experimentelle BringIntoView API hinzugefügt, mit der Sie eine Anfrage an Eltern senden können, damit diese scrollen, um ein Element sichtbar zu machen (Ib918d, b/195353459).
Version 1.1.0-alpha06
13. Oktober 2021
androidx.compose.foundation:foundation:1.1.0-alpha06
und androidx.compose.foundation:foundation-layout:1.1.0-alpha06
wurden veröffentlicht. Version 1.1.0-alpha06 enthält diese Commits.
API-Änderungen
- Eine Überlastung ohne Kinder für das Layout wurde mit verbesserter Effizienz hinzugefügt (Ib0d9a).
SemanticsNodeInteraction.performSemanticsAction
ist jetzt wieder verfügbar DieSemanticsNodeInteraction
, auf der die Funktion aufgerufen wurde. (I9e5db)performScrollToNode(matcher: SemanticsMatcher)
hinzugefügt, die scrollbarer Container zu dem Inhalt, der mit dem angegebenen Matcher. (Ic1cb8)
Version 1.1.0-alpha05
29. September 2021
androidx.compose.foundation:foundation:1.1.0-alpha05
und androidx.compose.foundation:foundation-layout:1.1.0-alpha05
wurden veröffentlicht. Version 1.1.0-alpha05 enthält diese Commits.
API-Änderungen
- Es wurden experimentelle historische Hinweise zu PointerEventChange hinzugefügt. (Ic1fd8, b/197553056, b/199921305)
Fehlerkorrekturen
- Die Unterstützung von Bedienungshilfen für scrollbare Elemente wurde korrigiert (sowohl faszinierend als auch nicht lazy) beim Scrollen (I6cdb0)
Version 1.1.0-alpha04
15. September 2021
androidx.compose.foundation:foundation:1.1.0-alpha04
und androidx.compose.foundation:foundation-layout:1.1.0-alpha04
wurden veröffentlicht. Version 1.1.0-alpha04 enthält diese Commits.
API-Änderungen
performGesture
undGestureScope
wurden eingestellt, die Folgendes enthalten: wurde durchperformTouchInput
undTouchInjectionScope
ersetzt. (Ia5f3f, b/190493367)touchBoundsInRoot
zuSemanticsNode
hinzugefügt, die die Mindestgröße des Berührungszielbereichs enthält, damit Entwickelnde können Sie sicherstellen, dass Berührungszielbereiche den Mindestanforderungen für die Barrierefreiheit entsprechen. (I2e14b, b/197751214)
Fehlerkorrekturen
- Auf Geräten mit Android 12 wird das Overscroll-Format unterstützt. (Iccf3c, b/171682480)
Version 1.1.0-alpha03
1. September 2021
androidx.compose.foundation:foundation:1.1.0-alpha03
und androidx.compose.foundation:foundation-layout:1.1.0-alpha03
wurden veröffentlicht. Version 1.1.0-alpha03 enthält diese Commits.
Neue Funktionen
- Die Funktion „Compose“ (
1.1.0-alpha03
) wurde so aktualisiert, dass sie von „1.5.30
“ in Kotlin abhängig ist. (I74545)
API-Änderungen
- Ein Glow-Effekt für Scrollen wurde hinzugefügt. Die neue experimentelle OverScrollConfiguration API wurde hinzugefügt, um die Konfiguration des visuellen Overscroll-Effekts zu ermöglichen. Geben Sie null an, um den Overscroll-Effekt zu deaktivieren. (I0c304, b/171682480)
- AwaitPointerEventScope enthält jetzt withTimeout() und withTimeoutOrNull() (I507f0, b/179239764, b/182397793)
- Es wurde eine Testmethode zum Abrufen der abgeschnittenen Grenzen hinzugefügt. (I6b28e)
- Der ViewConfiguration wurde die Mindestgröße des Berührungszielbereichs hinzugefügt. für die Semantik und die Zeigereingabe, um Barrierefreiheit sicherzustellen. (Ie861c)
Version 1.1.0-alpha02
18. August 2021
androidx.compose.foundation:foundation:1.1.0-alpha02
und androidx.compose.foundation:foundation-layout:1.1.0-alpha02
wurden veröffentlicht. Version 1.1.0-alpha02 enthält diese Commits.
API-Änderungen
- DpSize-Versionen für
Modifier.size
undrequiredSize
hinzugefügt (I3fc7e, b/194219828)
Version 1.1.0-alpha01
4. August 2021
androidx.compose.foundation:foundation:1.1.0-alpha01
und androidx.compose.foundation:foundation-layout:1.1.0-alpha01
wurden veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.
API-Änderungen
DrawScope#drawImage
-Methode aktualisiert, die verbraucht Quell- und Ziel-Rects um eine optionale FilterQuality-Ressource zu verarbeiten, . Dies ist nützlich für Pixel die verpixelt sein sollten, wenn sie für pixelbasierte Grafiken vertikal skaliert werden. Aktualisiertes BitmapPainter und zusammensetzbares Bild um auch einen optionalen FilterQuality- Parameter (Ie4fb0, b/180311607)- TextField löscht jetzt die Auswahl, wenn die Schaltfläche „Zurück“ gedrückt wird, was dem Verhalten von Android EditText entspricht. (I3ca16, b/174173645)
- Cursor-Ziehpunkt hinzufügen. (I07a82, b/173016579)
Fehlerkorrekturen
- Das Scrollen über Semantikaktionen für Lazy Listen und Komponenten für reguläres Scrollen ist jetzt animiert (Id9066, b/190742024).
Externer Beitrag
LazyVerticalGrid
akzeptiert jetzt Parameter für die horizontale und vertikale Anordnung. (If9c92)
Version 1.0
Version 1.0.5
3. November 2021
androidx.compose.foundation:foundation:1.0.5
und androidx.compose.foundation:foundation-layout:1.0.5
wurden veröffentlicht. Version 1.0.5 enthält diese Commits.
Fehlerkorrekturen
- Ein Absturz-Tracking der abgeleiteten StatusOf-Instanzen wurde behoben. (aosp/1792247)
Version 1.0.4
13. Oktober 2021
androidx.compose.foundation:foundation:1.0.4
und androidx.compose.foundation:foundation-layout:1.0.4
wurden veröffentlicht. Version 1.0.4 enthält diese Commits.
Aktualisierung der Abhängigkeiten
- Aktualisiert und abhängig von Kotlin
1.5.31
Version 1.0.3
29. September 2021
androidx.compose.foundation:foundation:1.0.3
und androidx.compose.foundation:foundation-layout:1.0.3
wurden veröffentlicht. Version 1.0.3 enthält diese Commits.
Aktualisierung der Abhängigkeiten
- Aktualisiert und abhängig von Kotlin
1.5.30
Version 1.0.2
1. September 2021
androidx.compose.foundation:foundation:1.0.2
und androidx.compose.foundation:foundation-layout:1.0.2
wurden veröffentlicht. Version 1.0.2 enthält diese Commits.
Aktualisiert, um die Compose-Version 1.0.2
zu unterstützen. „Compose 1.0.2
“ ist weiterhin mit Kotlin 1.5.21
kompatibel.
Version 1.0.1
4. August 2021
androidx.compose.foundation:foundation:1.0.1
und androidx.compose.foundation:foundation-layout:1.0.1
wurden veröffentlicht. Version 1.0.1 enthält diese Commits.
Aktualisierung der Abhängigkeiten
- Aktualisiert und abhängig von Kotlin-
1.5.21
.
Version 1.0.0
28. Juli 2021
androidx.compose.foundation:foundation:1.0.0
und androidx.compose.foundation:foundation-layout:1.0.0
wurden veröffentlicht. Version 1.0.0 enthält diese Commits.
Hauptfunktionen von Version 1.0.0
Dies ist die erste stabile Version von Compose. Weitere Informationen finden Sie im offiziellen Blog „Compose Release“.
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)"
Erhöhen Sie in der Datei
build.gradle
vorübergehend Ihre minSdkVersion auf 24 oder höher, um das Problem zu beheben. Dieses Problem wird in der nächsten Version von Android Studio Bumblebee und AGP7.1
behoben. (b/194289155)
Version 1.0.0-rc02
14. Juli 2021
androidx.compose.foundation:foundation:1.0.0-rc02
und androidx.compose.foundation:foundation-layout:1.0.0-rc02
wurden veröffentlicht. Version 1.0.0-rc02 enthält diese Commits.
- Rahmendarstellung für allgemeine Formen aktualisiert, um Probleme mit Pfaden zu beheben mit festen Abmessungen definiert. (aosp/1748871, b/191817116)
Version 1.0.0-rc01
1. Juli 2021
androidx.compose.foundation:foundation:1.0.0-rc01
und androidx.compose.foundation:foundation-layout:1.0.0-rc01
wurden veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.
API-Änderungen
- Canvas unterstützt jetzt einen contentDescription-Parameter für Barrierefreiheit. (Ib547c)
Fehlerkorrekturen
- Bei deaktivierten Schaltflächen, Karten, Kästchen und
Modifier.clickable(enabled=false)
wird verhindert, dass Klicks an die übergeordnete Organisation weitergeleitet werden. (IC2c3b, b/183908811)
Version 1.0.0-beta09
16. Juni 2021
androidx.compose.foundation:foundation:1.0.0-beta09
und androidx.compose.foundation:foundation-layout:1.0.0-beta09
wurden veröffentlicht. Version 1.0.0-beta09 enthält diese Commits.
API-Änderungen
ManualFrameClock
wurde entfernt. Wenn Sie Animationen steuern müssen, Verwende stattdessencomposeTestRule.mainClock
. (I3c3e8, b/189951065)- enum Role und LiveRegionMode in Inline-Klassen ändern mit privatem Konstruktor (Id1890)
- KeyboardCapitalization wird in eine Inline-Klasse konvertiert. (Id5a1c)
- TextOverflow wurde in eine Inline-Klasse geändert. (I433af)
Fehlerkorrekturen
- Wenn Sie jetzt eindeutige Schlüssel für LazyColumn/Row-Elemente angeben, wird die Scrollposition basierend auf dem Schlüssel beibehalten. Wenn Sie also Elemente vor dem aktuell sichtbaren Element hinzufügen oder entfernen, wird das Element mit dem jeweiligen Schlüssel als erstes sichtbares Element beibehalten. (Id263f, b/184257857)
- Die Schlüsselkonstanten sind vorerst @ExperimentalComposeUiApi. Wird verarbeitet private Konstanten vor der Stabilisierung deklarieren. (Ia5d48)
- IdlingStrategy wurde zu AndroidComposeTestRule hinzugefügt, die
beim Testen von Frameworks, um einen alternativen Mechanismus zu installieren,
oder Ruhe finden. Verwenden Sie
AndroidComposeTestRule.setIdlingStrategyFactory()
vor dem Test Ihre eigene Strategie zu entwickeln. (I608fa)
Regeln für Profil hinzugefügt
In diesem Release werden den folgenden Erstellungsmodulen (I14ed6) Profilregeln hinzugefügt:
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometrie
- 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 der Textdatei
baseline-prof.txt
imsrc/main
oder einem entsprechenden Verzeichnis angegeben. In der Datei ist eine Regel pro Zeile angegeben, wobei eine Regel in diesem Fall ein Muster für den Abgleich mit Methoden oder Klassen in der Bibliothek ist. Die Syntax für diese Regeln ist eine Obermenge des visuell lesbaren ART-Profilformats, das bei Verwendung vonadb shell profman --dump-classes-and-methods ...
verwendet wird. Für die Ausrichtung auf Methoden oder Klassen gibt es zwei Arten dieser Regeln.Eine Methodenregel hat das folgende Muster:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Und eine Klassenregel hat das folgende Muster:
<CLASS_DESCRIPTOR>
Hier steht
<FLAGS>
für mindestens eines der ZeichenH
,S
undP
, um anzugeben, ob diese Methode als „Hot“, „Startup“ oder „Post Startup“ gekennzeichnet werden soll.<CLASS_DESCRIPTOR>
ist der Deskriptor für die Klasse, zu der die Zielmethode gehört. Die Klasseandroidx.compose.runtime.SlotTable
hätte beispielsweise den DeskriptorLandroidx/compose/runtime/SlotTable;
.<METHOD_SIGNATURE>
ist die Signatur der Methode und enthält den Namen sowie die Parametertypen und 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 umfasst.
Wozu dienen die Regeln?
Eine Methode mit dem Flag
H
gibt an, dass diese Methode "heiß" ist. und sollten im Voraus kompiliert werden.Eine Methode mit dem Flag
S
gibt an, dass es sich um eine Methode handelt, die beim Start aufgerufen und im Voraus kompiliert werden sollte, um die Kosten für die Kompilierung und die Interpretation der Methode beim Start zu vermeiden.Eine Methode mit dem Flag
P
gibt an, dass es sich um eine Methode handelt, die nach dem Start aufgerufen wird.Eine in dieser Datei vorhandene Klasse gibt an, dass sie beim Start verwendet wird und im Heap zugewiesen werden sollte, um Kosten für das Laden der Klasse zu vermeiden.
So funktioniert's
- Bibliotheken können diese Regeln definieren, die in AAR-Artefakte gepackt werden. Wenn dann eine Anwendung erstellt wird, die diese Artefakte enthält, werden diese Regeln zusammengeführt und die zusammengeführten Regeln zum Erstellen eines kompakten binären ART-Profils verwendet, das speziell für die Anwendung gilt. ART kann dieses Profil dann nutzen, wenn die App auf Geräten installiert wird, um im Voraus eine bestimmte Teilmenge der App zu kompilieren und so die Leistung der App zu verbessern, insbesondere bei der ersten Ausführung. Dies hat keine Auswirkungen auf Debug-fähige Anwendungen.
Version 1.0.0-beta08
2. Juni 2021
androidx.compose.foundation:foundation:1.0.0-beta08
und androidx.compose.foundation:foundation-layout:1.0.0-beta08
wurden veröffentlicht. Version 1.0.0-beta08 enthält diese Commits.
API-Änderungen
- „NestedScrollSource“-Enum wird durch eine Inline-Klasse ersetzt. (Ie321b, b/187055290)
- Überarbeitete enum-Verwendungen auf Inline-Klassen, um dies zu vermeiden mit ausführlichen Wenn-Aussagen, werden neue enum-Werte hinzugefügt. (I2b5eb)
- Fügt ein Timeout für Tipp-/Ein-/Aus-Schaltflächen hinzu, um zu verhindern, dass beim Scrollen/Ziehen eine Welle angezeigt wird (Ia2704, b/168524931).
- Die Properties „ContentDescription“ und „Text“ sind nicht mehr verfügbar als einzelne Werte, aber als Listen. So können Sie sie wie gewohnt zusammenführen. von Verkettungen. Bietet auch bessere Test-APIs zur Nutzung dieser Änderungen (Ica6bf, b/184825850)
Modifier.focusModifier()
wurde verworfen und durchModifier.focusTarget()
(I6c860) ersetzt- Die KeyboardType-Enum wird durch eine Inline-Klasse ersetzt. (I73045, b/187055290)
FocusState
-Enum durchFocusState
-Schnittstelle ersetzt (Iccc1a, b/187055290)- ImeAction-Enum wird durch eine Inline-Klasse ersetzt. (I18be5, b/187055290)
AnnotatedString.withAnnotation
-Funktionen sind jetzt ExperimentalTextApi statt ExperimentalComposeApi. (I0cd0a) <ph type="x-smartling-placeholder">- </ph>
- TextUnit-Konstruktor mit TextUnitType ist jetzt ExperimentalTextApi anstelle von ExperimentalComposeApi.
- PaddingValues ist jetzt
@Stable
statt@Immutable
(I88c50).
Fehlerkorrekturen
- Abstürze durch langes Drücken auf den leeren Bereich in nicht leeren Texten wurden behoben. (I33ab5, b/187437299)
- Symbolleiste nach „SelectAll“ anzeigen (I495d9, b/185919613)
- Es wurde ein Fehler behoben, durch den scrollbare Container ihre untergeordneten Elemente an der Querachse beschneiden. Es war leicht reproduzierbar, wenn Sie eine LazyRow mit Kartenelementen haben. wird der Schatten nicht abgeschnitten. (Icb635, b/186318448)
- Bei Verwendung von „Modifier.combinedClickable“ (I2298c, b/186223077) blieben die Wellen und andere Hinweise bei einem langen Klick manchmal hängen. Dieses Problem wurde behoben.
- Die Positionsänderung wird jetzt von
detectDragGesures
,detectVerticalGestures
unddetectHorizontalGestures
automatisch übernommen, sodass man change.consumePositionChange in den onDrag-Callbacks nicht aufrufen muss (I42fc4, b/185096350, b/187320697). Modifier.onGloballyPositioned()
wurde geändert, um die Koordinaten dieses Modifikators in der Modifikatorkette anzugeben, und nicht die Layoutkoordinaten, nachdem alle Modifikatoren angewendet wurden. Das bedeutet, dass sich jetzt die Reihenfolge der Modifikatoren darauf auswirkt, welche Koordinaten im Bericht angezeigt werden. (Ieb67d, b/177926591)
Version 1.0.0-beta07
18. Mai 2021
androidx.compose.foundation:foundation:1.0.0-beta07
und androidx.compose.foundation:foundation-layout:1.0.0-beta07
wurden veröffentlicht. Version 1.0.0-beta07 enthält diese Commits.
API-Änderungen
- Die Logik für den Vorabruf des nächsten sichtbaren Elements wird für LazyColumn/Row eingeführt (I8a4bc, b/184940225).
- Ziehpunkt für Clip-Auswahl hinzugefügt (Iff80d, b/183408447)
Fehlerkorrekturen
- In LazyColumn/Row bleiben jetzt bis zu zwei zuvor sichtbare Elemente aktiv (nicht entsorgt), auch wenn sie bereits herausgescrollt werden. Dadurch kann die Komponente die aktiven Unterzusammensetzungen wiederverwenden, wenn ein neues Element erstellt werden muss, was das Scrollen verbessert. (IE5555)
- Entferne „colorBackground“. (I38660)
- Auswahlhintergrund mit DrawScope zeichnen. (I73c61, b/186674472)
- Eine Beta06-Regression, die sich auf die Zeile/Spalte unter Verwendung von LeerzeichendBy-Anordnungen auf nach Layout gewichtete untergeordnete Elemente auswirkte, wurde behoben. (Ifaf8c, b/187326588)
Version 1.0.0-beta06
5. Mai 2021
androidx.compose.foundation:foundation:1.0.0-beta06
und androidx.compose.foundation:foundation-layout:1.0.0-beta06
wurden veröffentlicht. Version 1.0.0-beta06 enthält diese Commits.
API-Änderungen
- Konflikt mit Navigationsbewegung lösen (I1145e)
- Die Bedienungshilfen „CollectionInfo“ und „CollectionItemInfo“ wurden hinzugefügt, mit denen eine Sammlung und ihre Elemente für Bedienungshilfen markiert werden können (Id54ef, b/180479017).
- „
SemanticsActions.ScrollToIndex
“ wurde hinzugefügt, um durch eine Liste zu scrollen mit indexierten Elementen mit einem bestimmten IndexSemanticsProperties.IndexForKey
, um den Index eines Elements in einer Liste abzurufen mit Schlüsselelementen. Beide Aktionen werden von LazyList implementiert.SemanticsNodeInteraction.performScrollToIndex
hinzugefügt, die zum angegebenen Index scrollt undSemanticsNodeInteraction.performScrollToKey
, mit dem in einer Liste zum das Element mit dem angegebenen Schlüssel enthält. (I4fe63, b/178483889, b/161584524)
- Speicherunterstützung für AnnotatedString unter TextFieldValue.Saver. addTtsAnnotation hinzugefügt und mit Annotation-Dienstprogrammfunktionen AnnotatedString.Builder (I8cbdc, b/178446304)
PaddingValues(horizontal, vertical)
(I05571, b/181336792) wurden Standardwerte für0.dp
hinzugefügt.
Fehlerkorrekturen
- Zeile & Aufgrund von untergeordneten Spalten mit
weight(fill = false)
füllen die übergeordneten Spalten nicht mehr den gesamten verfügbaren Bereich der Hauptachse aus. (Ied94d, b/186012444, b/184355105)
Version 1.0.0-beta05
21. April 2021
androidx.compose.foundation:foundation:1.0.0-beta05
und androidx.compose.foundation:foundation-layout:1.0.0-beta05
wurden veröffentlicht. Version 1.0.0-beta05 enthält diese Commits.
API-Änderungen
- Die Oberfläche von FlingBehavior ist jetzt als @Stable gekennzeichnet. Alle Implementierungen müssen der
@Stable
-Vereinbarung entsprechen. (I93354, b/184830577)
Fehlerkorrekturen
- Korrigiert:
ACTION_SCROLL_FORWARD
,ACTION_SCROLL_BACKWARD
,accessibilityActionScrollLeft
,accessibilityActionScrollUp
,accessibilityActionScrollRight
undaccessibilityActionScrollDown
Scrollaktionen für Bedienungshilfen. Anstatt bis zum Ende der Seite zu scrollen, scrollbar ist, scrollt er jetzt um einen Bildschirm in die angegebene Richtung. (Ieccb0) - Die AndroidManifest-Dateien aus ui-test-manifest und ui-tooling-data sind jetzt mit Android 12 kompatibel (I6f9de, b/184718994).
Version 1.0.0-beta04
7. April 2021
androidx.compose.foundation:foundation:1.0.0-beta04
und androidx.compose.foundation:foundation-layout:1.0.0-beta04
wurden veröffentlicht. Version 1.0.0-beta04 enthält diese Commits.
API-Änderungen
- „hideSoftwareKeyboard“ umbenennen und „SoftwareKeyboard anzeigen“ aktivieren
SoftwareKeyboardController auf
hide()
bzw.show()
.- Stellen Sie die vollständige CompositionLocal-Oberfläche für LocalSoftwareKeyboardController. Damit kann es festgelegt werden (insbesondere nützlich in Tests) (I579a6)
TextOverflow.Visible
wurde eingeführt. (Ic8f89)- Öffentliche Instanzen von
RowScope
,ColumnScope
,BoxScope
undBoxWithConstraintsScope
wurden entfernt. (I4e83e, b/181869067)
Fehlerkorrekturen
- Das Problem, dass Elemente von
LazyColumn
/LazyRow
, die sich an den Kanten befanden, nach schnellem Wischen falsch positioniert wurden (Ie4d13, b/183877420) wurde behoben. Vor dieser Änderung waren lokale zusammensetzbare Funktionen aufgrund ihrer Parameter überspringbar. Nach dieser Änderung werden keine lokalen zusammensetzbaren Funktionen mehr übersprungen. Diese Änderung erfolgt, da lokale Funktionen häufig Parameter aus dem übergeordneten Element erfassen und dass das Überspringen eine häufige Ursache für Fehler ist.
Betrachten Sie das folgende Beispiel zusammenzufassen:
@Composable fun Counter(count: Int, onCountChange: (Int) -> Unit) { @Composable fun ShowCount() { Text("Count: $count") } ShowCount() Button(onClick={ onCountChange(count + 1) }) { Text("Increment") } }
Vor dieser Änderung wurde die Funktion
ShowCount
immer übersprungen, auch nachdem der Parametercount
aktualisiert wurde. Diese Änderungen haben wir jedoch nicht vorgenommen (I5648a)
Version 1.0.0-beta03
24. März 2021
androidx.compose.foundation:foundation:1.0.0-beta03
und androidx.compose.foundation:foundation-layout:1.0.0-beta03
wurden veröffentlicht. Version 1.0.0-beta03 enthält diese Commits.
API-Änderungen
DefaultMonotonicFrameClock
wurde verworfen. AnrufenwithFrameNanos
oderRecomposer.runRecomposeAndApplyChanges
ohneMonotonicFrameClock
wirft jetztIllegalStateException
. (I4eb0d)
Fehlerkorrekturen
FlingBehavior.performFling()
wird jetzt auch dann aufgerufen, wenn die Geschwindigkeit 0 ist (I0b6e5, b/181237123).
Version 1.0.0-beta02
10. März 2021
androidx.compose.foundation:foundation:1.0.0-beta02
und androidx.compose.foundation:foundation-layout:1.0.0-beta02
wurden veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.
API-Änderungen
- In der LazyColumn-Messlogik wurden mehrere kleine Optimierungen hinzugefügt (Ic6889).
- Neue lokale Komposition (
LocalSoftwareKeyboardController
) hinzugefügt API zum Ersetzen der vorherigen SoftwareKeyboardController-Schnittstelle auf Textfeld ein. (I5951e, b/168778053) - Neue lokale Komposition (
LocalSoftwareKeyboardController
) hinzugefügt API zum Ersetzen der vorherigen SoftwareKeyboardController-Schnittstelle auf Textfeld ein. (I84472, b/168778053)
Fehlerkorrekturen
- Einschränkungen für die öffentliche Nutzung experimenteller APIs erzwingen (I6aa29, b/174531520)
Version 1.0.0-beta01
24. Februar 2021
androidx.compose.foundation:foundation:1.0.0-beta01
und androidx.compose.foundation:foundation-layout:1.0.0-beta01
wurden veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.
Dies ist die erste Version der Betaversion von Compose 1.0.0.
API-Änderungen
- Der onStart-Callback wurde
detectDragGestures
hinzugefügt (I67269, b/179995594). - Modifikatoren zur Größenanpassung für intrinsische Elemente sind nicht mehr experimentell. (I15744)
- dp-Assertions entfernt (I798d2)
- Der SoftwareKeyboardController-Callback wurde aus dem gesamten Text entfernt. werden demnächst durch eine neue API ersetzt. (Iae869, b/168778053)
- MeasureBlocks wurde in MeasurePolicy umbenannt, eine unterhaltsame Oberfläche. Die Layout-APIs wurden für die Verwendung von MeasurePolicy aktualisiert oder vereinfacht. (Icab48, b/167662468, b/156751158)
- „
InteractionState
“ wurde durch „[Mutable]InteractionSource
“ ersetzt <ph type="x-smartling-placeholder">- </ph>
- Schnittstellen sind für das Ausgeben und Erfassen von Interaktionsereignissen verantwortlich.
- Anstatt
interactionState = remember { InteractionState() }
an Komponenten wieButton
undModifier.clickable()
zu übergeben, verwenden SieinteractionSource = remember { MutableInteractionSource() }
. - Anstelle von
Interaction.Pressed in interactionState
sollten Sie stattdessen die Erweiterungsfunktionen für InteractionSource verwenden, z. B. InteractionSource.collectIsPressedAsState(). - Für komplexe Anwendungsfälle können Sie InteractionSource.interactions verwenden, um den Interaktionsstrom zu beobachten. Weitere Informationen finden Sie in der InteractionSource-Dokumentation und den Beispielen.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- Die eingestellten LayoutCoordinates-Methoden wurden entfernt. Verwenden Sie anstelle der Eigenschaft für positionInParent und boundsInParent (I580ed, b/169874631, b/175142755) die Funktion
- Neue TextInputSession für Eingabesitzungen aus Low-Level-Textkomponenten wie CoreTextField erstellt. (I8817f, b/177662148)
- „Placeable“ zeigt jetzt „measureSize“ an. Sie stellt die Größe dar, mit der das untergeordnete Layout tatsächlich gemessen wurde. Bei dieser Größe werden die Messbeschränkungen möglicherweise nicht berücksichtigt. (Ib2729, b/172560206, b/172338608)
- „selectGroup“-Modifikator hinzufügen, mit dem eine Sammlung von Tabs oder Optionsfeldern aus Gründen der Barrierefreiheit markiert werden kann (Ie5c29)
LazyListState.animateScrollToItem hinzufügen
Mit dieser Methode wird geglättet zu einem bestimmten Element in der Liste. (I4bfd7)
ScrollableState.smoothScrollBy() wurde in animateScrollBy() umbenannt. LazyListState.snapToItemIndex() wurde in scrollToItem() umbenannt ScrollState.smoothScrollTo() wurde in animateScrollTo() umbenannt (I35ded).
"modifier.zoomable" wurde durch "Modifier.transformable" ersetzt. Die Funktionen „smooPanBy“ und „shotRotationBy“ wurden als Funktion hinzugefügt. (Ifc32b, b/175294473)
Die
defaultFactory
fürcompositionLocalOf
undstaticCompositionLocalOf
ist jetzt erforderlich anstelle von optional.Durch diese Änderung wird ein möglicher Typfehler für Nicht-Nullwerte entfernt Typen, für die keine Standard-Factory angegeben wurde. Vorher würde einen Nullverweis für einen Typ liefern, der keine Nullwerte zulässt.
Für Typen, für die Nullwerte zulässig sind, sollten Sie
{ null }
als Standard festlegen Factory.Wir raten davon ab, lokale Nutzer mit Typen zu verwenden, die keine Nullwerte zulassen können, es sei denn, kann ein sinnvoller Standardwert angegeben werden. Wenn kein sinnvoller Standardwert vorhanden ist, sollte das Lambda
defaultFactory
eine Ausnahme auslösen. Allerdings dass eine Ausnahme ausgelöst wird, eine implizite Abhängigkeit von ihrer Bereitstellung, die nicht erzwungen wird durch das Typsystem. (Ifbd2a)„
Indication#createIndication()
“ wurde in „Indication#rememberUpdatedIndication(InteractionState)
“ geändert und der ParameterInteractionState
wird aus „IndicationInstance#drawIndication()
“ entfernt. IndicationInstance sollte nur für das Zeichnen visueller Effekte zuständig sein und keine Animationen starten bzw. einen Status als Reaktion auf InteractionState-Änderungen schreiben. Diese Animationen und Zustandsschreibvorgänge sollten stattdessen innerhalb vonrememberUpdatedIndication()
ausgeführt werden. Derindication
-Parameter inModifier.indication
wurde ebenfalls in einen erforderlichen Parameter geändert. (IC1764, b/152525426)Bei Textaktionen wird der Fokus jetzt automatisch geprüft (I13777, b/179648629).
runBlockingWithManualClock
(I15cdc, b/179664814) entferntDie Scrollposition in Modifier.verticalScroll()/horizontalScroll() wird jetzt mit "Ints" dargestellt (I81298).
"smooScrollBy" und "scrollBy" Pakete geändert in
androidx.compose.foundation.gestures.*
(I3f7c1, b/175294473)FlingConfig wurde in FlingBehavior umbenannt. Sie ermöglicht jetzt die Anpassung von Stoppanimationen anstelle von vordefinierten Decays. (I02b86, b/175294473)
Größenmodifikatoren wurden umbenannt. „modifier.width/height/size“ wurde in requiredWidth/requiredHeight/requiredSize umbenannt. „Modifier.preferredWidth/preferredHeight/preferredSize“ wurde in „Breite/Höhe/Größe“ umbenannt. (I5b414)
„defaultMinSizeConstraints“ wurde in „defaultMinSize“ umbenannt. (I4aae)
Modifier.tapGestenFilter wurde entfernt. Verwende stattdessen
Modifier.pointerInput { detectTapGestures(...) }
. (I266ed, b/175294473)ein teilweiser Verbrauch wurde aus dem Zeiger-Eingabesystem entfernt. Die empfohlene Methode zur Koordination der teilweisen Nutzung ist Modifier.nestedScroll. (Ie9c9b)
„Ausrichtung“ wurde in das Foundation-Paket verschoben. VelocirtTracker wurde von ui.gesture zu ui.input.pointer verschoben. (Iff4a8, b/175294473)
AnimationClockObservable und Unterklassen wurden entfernt. AnimierteFloat-Anzeige wurde entfernt. (Icde52, b/177457083)
DrawerState.open() unddrawerState.close() sperren jetzt Funktionen. Mit „memoryCoroutineScope()“ können Sie den Umfang der Zusammensetzung abrufen, um sie aufzurufen (I16f60, b/175294473).
„Providers“ wurde in CompositionLocalProvider umbenannt
- Der Kompositionskonstruktor akzeptiert keinen Schlüsselparameter mehr und wurde eingestellt.
- currentCompositeKeyHash wurde in eine zusammensetzbare Top-Level-Eigenschaft anstelle einer zusammensetzbaren Top-Level-Funktion umgewandelt.
- CompositionData und CompositionGroup wurden in den Namespace „androidx.compose.runtime.tooling“ verschoben
- ComposableLambda wurde zu einer Schnittstelle anstelle einer konkreten Klasse gemacht und verfügt nicht mehr über Typparameter.
- ComposableLambdaN 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 „clearRoots“-Funktion der obersten Ebene von
@TestOnly
wurde entfernt. Es ist nicht mehr notwendig. - Die Funktionen „keySourceInfoOf“ und „resetSourceInfo“ wurden entfernt. Sie werden nicht mehr benötigt.
- Composer.collectKeySourceInformation wurde entfernt. Es ist nicht mehr notwendig.
- Die Methoden „isJoinedKey“, „joinKeyLeft“ und „joinKeyRight“ wurden entfernt. Sie werden nicht mehr benötigt.
- Verschiedene APIs der obersten Ebene wurden verschoben und in verschiedene Dateien neu organisiert. Aufgrund der Semantik der Dateiklassen von Kotlin wird die Kompatibilität der Binärdateien, aber nicht der Quelldateien beeinträchtigt. Daher sollte es für die meisten Nutzer kein Problem sein.
- (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 einen Zustand über
rememberDraggableState { delta -> }
erstellen, um das gleiche Verhalten wie zuvor zu erhalten (Ica70f, b/175294473).Die Modifikatoren requiredWidth(IntrinsicSize) und requiredHeight(IntrinsicSize) wurden für die erforderliche Größenanpassung zu intrinsischen Größen hinzugefügt. (I0a6b4)
Die verworfene
emptyContent()
wurde entfernt. Verwende stattdessen{}
. (Idb33f, b/179432510)Einige zuvor eingestellte APIs wurden gelöscht (Ice5da, b/178633932).
Fehlerkorrekturen
- Neue lokale „LocalSoftwareKeyboardController“-Komposition hinzugefügt API zum Ersetzen der vorherigen SoftwareKeyboardController-Schnittstelle auf Textfeld ein. (I658b6, b/168778053)
Version 1.0.0-alpha12
10. Februar 2021
androidx.compose.foundation:foundation:1.0.0-alpha12
und androidx.compose.foundation:foundation-layout:1.0.0-alpha12
wurden veröffentlicht. Version 1.0.0-alpha12 enthält diese Commits.
API-Änderungen
- Modifier.pointerInput erfordert nun das Speichern von Tasten, um anzuzeigen, wann die Koroutine zur Erkennung der Zeigereingabe für eine neue Abhängigkeiten. (I849cd)
- Test-Update: hasText() sucht im Textfeld sowohl nach Eingabe- als auch Label-/Hinweisen/Platzhaltern (Iab803)
- „PaddingValues.Absolute“ wurde hinzugefügt und kann in APIs verwendet werden, die PaddingValues akzeptieren. (Ia5f30)
- „onImeActionPerformed“ wurde eingestellt. Verwenden Sie stattdessen KeyboardActions (If0bbd, b/179071523)
- Um die Bezeichnungen mit ImageBitmap und ImageVector verwenden, ImagePainter wurde in BitmapPainter umbenannt. parallelem VectorPainter. (Iba381, b/174565889)
- Bessere Teilstring-Test-APIs mit Teilstring jetzt als Argument (Icbe78)
- Der Kontext der Koroutine
InfiniteAnimationPolicy
wurde eingeführt. -Element, das in unendlichen Animationen angewendet wird. Standardmäßig nein Richtlinie installiert ist, außer beim Ausführen von Tests mitComposeTestRule
. (I50ec4, b/151940543) - Animatable.snapTo und Animatable.stop sind jetzt Stoppfunktionen (If4288)
- ComponentActivity.setContent wurde verschoben nach androidx.activity.compose.setContent im androidx.activity:activity-compose-Modul. (Icf416)
- Die Methoden "Destrukturieren" und "copy()" wurden entfernt aus in denen sie selten verwendet wurden. (I26702, b/178659281)
Unterstützung für benutzerdefinierte Schlüssel für LazyColumn/LazyRow wurde hinzugefügt. Auf diese Weise können wir die Reihenfolge der Artikel intelligenter handhaben. Das heißt, der Zustand, den Sie in den Blöcken {} gespeichert haben, wird zusammen mit dem Element verschoben, wenn Sie Elemente neu anordnen oder das Element aus der Mitte entfernen.
LazyColumn { items(users, key = { user -> user.id }) { ... } }
Änderung von Indication#createInstance zu @Composable und Änderung von LocalIndication, sodass sie einen Indication-Wert und nicht () enthält -> Anzeige. (I5eeea, b/157150564)
„
Constraints.enforce
“ wurde durch „Constraints.constrain
“ ersetzt. (I8b8ea)„loadFontResource“ wurde eingestellt. Verwenden Sie stattdessen „fontResource“. „imageResource“, „loadImageResource“, „vectorResource“ und „loadVectorResource“ wurden eingestellt. Verwenden Sie stattdessen PainterResource. (I6b809)
Aus Leistungsgründen nimmt die ScrollAxisRange-Semantik jetzt Lambdas geben Gleitkommazahlen anstelle von direkten Gleitkommawerten zurück. (If4a35, b/178657186)
Es wurde eine EditableText-Semantik hinzugefügt, um bearbeitbaren Eingabetext des Textfelds für Barrierefreiheit zu markieren, und entsprechende Testmethoden zur Prüfung der Semantik (I8e07a).
Modifier.clickable bietet jetzt keine Unterstützung für doppelte und lange Klicks. Verwenden Sie Modifier.combinedClickable, um diese Funktionalität zu erreichen. (Iafad1)
toIntPx() wurde inroundToPx() umbenannt. (I9b7e4, b/173502290)
IntBounds wurde in IntRect umbenannt und die API wurde verbessert. (I1f6ff)
„Modifier.dragGestenFilter“ wurde eingestellt. Verwende stattdessen
Modifier.pointerInput { detectDragGestures (...)}
. Alternativ können Sie „Modifier.draggable“ für das Ziehen um eine Achse verwenden (I0ba93, b/175294473).Ambients wurden umbenannt, um sie an den Inaktivmodus anzupassen -> CompositionLocal- umbenennt. Ambients hießen früher AmbientFoo, CompositionLocals heißt jetzt LocalFoo. (I2d55d)
Auswahl wurde auf Fundament verschoben. (I7892b)
Ähnlich wie zuvor entfernte die zusammensetzbare Funktion
state { 0 }
und jetzt die Verwendung wieremember { mutableStateOf(0) }
, entfernen wir die zusammensetzbare FunktionsavedInstanceState { 0 }
. Sie sollten stattdessenrememberSaveable { mutableStateOf(0) }
verwenden. Die Speicherung und Wiederherstellung erfolgen automatisch, wenn der im MutableState verwendete Typ im Bundle gespeichert werden kann. Wenn Sie jetzt ein benutzerdefiniertes Saver-Objekt übergeben haben, müssen Sie eine neue Überladung von „memorySaveable“ mit dem ParameterstateSaver
verwenden. Die Nutzung sieht so aus:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004)Passwortsemantik für Bedienungshilfen hinzugefügt (I231ce)
"ProgressBarRangeInfo.Indeterminate" wurde hinzugefügt, um indeterminate Fortschrittsbalken für Bedienungshilfen zu kennzeichnen (I6fe05).
Die Wiedergabedauer in der Animation ist jetzt auf Nanosekunden eingestellt (If776a)
@ComposableContract wurde zugunsten von drei weiteren Annotationen eingestellt.
@ComposableContract(restartable = false)
ist jetzt@NonRestartableComposable
@ComposableContract(readonly = true)
ist jetzt@ReadOnlyComposable
@ComposableContract(preventCapture = true)
ist jetzt@DisallowComposableCalls
@ComposableContract(tracked = true)
wurde entfernt. (I60a9d)Die Dienstprogramme
emptyContent()
und(@Composable () -> Unit).orEmpty()
wurden eingestellt, da sie sich nicht mehr positiv auf die Leistung auswirken (I0484d)Recomposeren können jetzt geschlossen werden. Geschlossene Rekomponisten Setze die Neuzusammensetzung fort, bis die untergeordneten Koroutinen der Komposition abgeschlossen sind. Recomposer.shutDown wurde umbenannt, um den Vorgang abzubrechen und einen Kontrast mit dem Schließen zu bilden. (Ib6d76)
Mit LazyVerticalGrid verbundene APIs sind als experimentell gekennzeichnet (Ia53e3, b/178519862).
memorySavedInstanceState() wurde in „memorySaveable()“ umbenannt und in das Paket „androidx.compose.runtime.saveable“ verschoben. (I1366e, b/177338004)
RestorableStateHolder wurde in SaveableStateHolder umbenannt und in das Paket „androidx.compose.runtime.saveable“ verschoben. Die innere Methode RestorableStateProvider wurde in SaveableStateProvider umbenannt. Der generische Typ wurde entfernt, sodass Sie „Any“ als Schlüssel übergeben können. Eine experimentelle Anmerkung ist nicht mehr erforderlich. (I0902e, b/174598702)
Saver, listSaver(), mapSaver(), autoSaver wurde von androidx.compose.runtime.savedinstancestate nach androidx.compose.runtime.saveable (I77fe6) verschoben
Das Artefakt „androidx:compose:runtime:runtime-saved-instance-state“ wurde in „androidx:compose:runtime:runtime-saveable“ (I6dcac) umbenannt
Viele veraltete APIs im ui-Paket werden gelöscht. (I2f2dc)
Das Artefakt „Compose:runtime-Dispatch“ wurde verworfen. MonotonicFrameClock befindet sich jetzt unter Du findest den AndroidUiDispatcher unter „Compose:ui“. (Ib5c36)
Die Parameter für RounderCornerShape, CutCornerShape und CornerBasedShape wurden von links/rechts 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 die automatische Spiegelung nicht erwünscht ist. (I61040, b/152756983)
canDrag wurde aus Modifier.scrollable entfernt. (Id66e7, b/175294473)
Die API, auf die das Compiler-Plug-in ausgerichtet ist wurde refaktoriert, sodass nun eine Schnittstelle anstelle einer konkrete Klasse. Außerdem werden auf der Oberfläche Typparameter.
Dies ist eine interne Änderung, die sich nicht auf die Quelle auswirken sollte Codekompatibilität, ist aber eine funktionsgefährdende Änderung des Binärprogramms. (I3b922, b/169406779)
Modifier.scaleTouchFilter wurde entfernt. Verwenden Sie stattdessen Modifier.zoomable. Alternativ können Sie
Modifier.pointerInput { detectMultitouchGestures { ... }}
(Id5da1, b/175294473) verwenden.Die Funktion „ananibleValue/Float“ wird jetzt nicht mehr unterstützt. Bitte verwenden Sie Animierbar. (I71345, b/177457083)
- CoreText und CoreTextField wurden aus der öffentlichen API entfernt
- Veraltete Auswahlcontainer-Überlastung (I99c19) entfernt
Entfernen von eingestellten Scrollfunktionen ohne Sperrung Wir bleiben bei den Änderungen vom letzten Release: dem Scrollen ohne Unterbrechung werden jetzt vollständig entfernt. Konvertieren Sie die App in die Sperrung Funktionen mit denselben Namen. Ein Koroutineumfang kann abgerufen werden über erinnernCoroutineScope() an. (I3d39c, b/178169563)
androidx.compose.foundation.layout.ConstraintLayout wurde zugunsten von androidx.constraintlayout.compose.ConstraintLayout verworfen. Sie müssen eine Abhängigkeit von
androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01
hinzufügen. (I87adc)„touchGestenFilter“, „doubleTapUnlockGesteFilter“, „longPress potenziellenFilter“ und „PressIndicaitonTouchFilter“ werden nicht mehr unterstützt. Verwenden Sie stattdessen Modifier.clickable oder Modifier.pointerInput mit der Funktion detectTapGestens. (I6baf9, b/175294473)
Recomposer.current()
wurde entfernt. [Zusammenfassung]ComposeView jetzt werden nur langsam erstellte, fensterbezogene Recomposers verwendet, die vom ViewTreeLifecycleOwner für das Fenster. Neuzusammensetzung und mitFrameNanos-basierten Animationsmarkierungen werden während des Host-Lebenszyklus wurde beendet. (I38e11)Recomposer.runningRecomposers bietet jetzt einen globalen StateFlow von schreibgeschützten RecomposerInfo zur Beobachtung des aktuellen Kompositionsstatus in zu verstehen. Ziehen Sie diese API Recomposer.current() vor, das jetzt heißt. eingestellt. (If8ebe)
Version 1.0.0-alpha11
28. Januar 2021
androidx.compose.foundation:foundation:1.0.0-alpha11
und androidx.compose.foundation:foundation-layout:1.0.0-alpha11
wurden veröffentlicht. Version 1.0.0-alpha11 enthält diese Commits.
API-Änderungen
ScrollBy ohne Sperrung einstellen, ScrollTo entfernen
Wir empfehlen jetzt die Verwendung von Unterbrechungsfunktionen, um das Scrollen und das Warten zu steuern. bis das Scrollen abgeschlossen ist. Die Funktion wird eingestellt und/oder Versionen dieser Funktionen im Rahmen dieser Umstellung nicht gesperrt werden. (Ie9ced)
SmoothScrollBy nicht mehr sperren Wir empfehlen jetzt die Verwendung von Unterbrechungsfunktionen, um das Scrollen und das Warten zu steuern. bis das Scrollen abgeschlossen ist. Versionen ohne Sperrung werden eingestellt dieser Funktionen als Teil dieses Übergangs. (I12880)
Der Parameter für die Inhaltsbeschreibung wurde dem Bild und dem Symbol hinzugefügt. Sie wird verwendet, um die Bedienungshilfen zu beschreiben (I2ac4c).
BasicTextField hat einen neuen Parameter namens "decorationBox" erhalten. Sie können dem Textfeld Gestaltungselemente wie Symbole, Platzhalter, Beschriftungen und Ähnliches hinzufügen und den Trefferzielbereich davon vergrößern. (I16996)
canDrag-Parameter wurde aus Modifier.draggable (Ic4bec, b/175294473) entfernt.
AnimierteFloat.fling, das FlingConfig annimmt, wurde entfernt. Bitte verwenden Sie die Funktion „Sperren“. Animatable.animateDecay. (I4659b, b/177457083)
data class
wurde aus den folgenden Klassen entfernt:- InlineTextContent
- Gebietsschemaliste
- (I605c7)
Anklickbar, ein- und auswählbar können jetzt außerhalb der Komposition erstellt werden (I0a130, b/172938345, b/175294473).
„ScrollableColumn/Zeile“ wurde eingestellt. Die Verwendung von ScrollableColumn ist im Vergleich zu LazyColumn bei großen scrollbaren Inhalten weniger effizient, da wir mit LazyColumn nur sichtbare Elemente zusammensetzen/messen/zeichnen können. Um zu verhindern, dass Nutzer ineffizient arbeiten, haben wir die Funktionen „ScrollableColumn“ und „ScrollableRow“ eingestellt und stattdessen die Nutzung von LazyColumn und LazyRow hochgestuft. Nutzer können dennoch entscheiden, dass sie kein Lazy-Verhalten benötigen, und die Modifikatoren direkt wie folgt verwenden: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
Neue
items(count: Int)
-Factory-Methode für den Bereich von LazyColumn/LazyRow/LazyVerticalGrid.items(items: List)
unditemsIndexed(items: List)
sind jetzt Erweiterungsfunktionen, die bei Verwendung manuell importiert werden müssen. Neue Erweiterungs-Überladungen für Arrays: „items:items: Array“ und itemsIndexed(Array) (I803fc, b/175562574)Das eingestellte AbsoluteArrangement wurde entfernt. (Iffa96, b/177641870)
Der Parameter propagMinConstraints wurde zu Box hinzugefügt, um anzugeben, ob die eingehenden Mindesteinschränkungen an den Boxinhalt übergeben werden sollen oder nicht. Der Standardwert ist „false“. (I0125b, b/152613457)
Fehlerkorrekturen
- onCommit, onDispose und onActive wurden zugunsten der SideEffect und DisposableEffect APIs eingestellt (If760e)
- WithConstraints wurde als BoxWithConstraints überarbeitet und zu "foundation.layout" verschoben. (I9420b, b/173387208)
Änderungen an den werkseitigen Funktionen für Schriftart/Schriftartfamilie/Schriftart
- Factory-Funktionen hinzugefügt, die mit einem Großbuchstaben beginnen
- Eingestellte vorherige Factory-Funktionen mit Kleinbuchstaben erste Buchstaben
- Neue Factory-Funktionen geben FontFamily statt abgeleitete Klassen
- Konstruktoren der Unterklassen ausgeblendet, damit sie nur über Factory-Funktionen erstellt werden.
- Font.asFontFamily wurde in Font.toFontFamily umbenannt.
- (I42aa7)
Einführung von
ComposeContentTestRule
, dieComposeTestRule
und definiertsetContent
, das entfernt wurde ausComposeTestRule
. Factory-MethodecreateEmptyComposeRule()
hinzugefügt das eineComposeTestRule
zurückgibt und keine Aktivität für von dir. Verwende diese Option, wenn du deine Aktivität während des Tests starten möchtest, z.B. mitActivityScenario.launch
(I9d782, b/174472899)"animateAsState" ist jetzt "animateFooAsState", wobei Foo für den Wert Typ der animierten Variablen. z.B. Gleitkommazahl, Dp, Offset usw. (Ie7e25)
Die Dichte ist jetzt der Empfängerbereich für Arrangement-Schnittstellen. (I18aad)
TextFieldValue akzeptiert AnnotatedString. Dies ist jedoch und die Textbearbeitung mit mehreren Stilen ist implementiert.
initial
wurde aus den Konstruktorparametern „EditingBuffer“ entfernt. (I326d5)
invalid und summaryReference() wurden zugunsten von currentRecomposeScope bzw. memoryCompositionReference verworfen. (I583a8)
AnnotatedString wurde geändert, um von kotlin.CharSequence zu erweitern. Daher sind length und subSequence jetzt Instanzfunktionen und Erweiterungsfunktionen entfernt. (Iaf429)
„Dauer“ und „Verfügbarkeit“ werden durch „Lange Millisekunden“ ersetzt. Mit diesem Schritt wird die Abhängigkeit der Zeigereingabe von diesen Klassen. (Ia33b2, b/175142755, b/177420019)
SaveObserver ersetzt CompositionLifecycleObserver und CompositionLifecycleObserver wurde verworfen.
RememberObserver
ist ein Ersatz fürCompositionLifecycleObserver
mit modifizierter Semantik und umbenannten Methoden. Der Wechsel zur neuen API kann mechanisch erfolgen. für Objekte, an die man sich nur einmal erinnert. Das heißt, die empfohlene Vorgehensweise. Wurde jedoch eine Referenz die in einer Komposition mehrfach gespeichert wurden,onRemembered
wird aufgerufen für jede Referenz, bei deronEnter
nur einmal aufgerufen wird.onEnter
mehrfach aufgerufen, wenn das Objekt in Unterzusammensetzungen verwendet wurde, wieWithConstraints
undScaffold
, sodass die SingleonEnter
-Anrufgarantie unzuverlässig und wurde entfernt fürRememberObserver
.RememberObserver
fügtonAbandoned
hinzu. Dies wird aufgerufen, wenn die DieRememberObserver
-Instanz wird von der übergebenen Callback-Funktion zurückgegeben. aufremember
gesetzt, wurde aber im Kompositionsstatus nicht gespeichert und wird daher niemalsonRemembered
aufgerufen. Dies kann tritt auf, wenn die Komposition durch eine Ausnahme beendet wird, bevor sie abgeschlossen ist, oder wird die Komposition verworfen, da der Bundesstaat eine Komposition für nicht mehr aktuell oder anderweitig nicht mehr gültig ist erforderlich. Wenn die Instanz vonRememberObserver
nach dem einzelnen Empfehlung oben: Tracking einer externen RessourceonForgotten
undonAbandoned
zeigen jeweils an, Ressource nicht mehr benötigt. Wenn das Objekt die Tracking-Funktion aktiviert, gestartet oder Ressourcen zugewiesen inonRemembered
,onAbandoned
kann ignoriert werden, da es nicht aufgerufen wird, wennonRemembered
aufgerufen. (I02c36)TransformedText.transformedText wurde in TransformedText.text umbenannt
- TransformedText ist keine Datenklasse mehr (Ie672a).
Die folgenden Klassen sind keine Datenklassen mehr:
- AnnotatedString
- Absatzstil
- Span-Stil
- TextStyle
- Schriftstärke
- Textdekoration
- TextGeometricTransform
- Textindex
- TextLayoutErgebnis
- TextLayoutInput (Iaff99)
Die experimentellen monotonicFrameAnimationClockOf-Methoden wurden entfernt (Ib753f, b/170708374).
Die globalen Koordinatenmethoden wurden eingestellt und neuen fensterbasierten Koordinaten. (Iee284)
Verwende ImeAction.None anstelle von ImeAction.NoAction.
- Verwende „ImeAction.Default“ anstelle von „ImeAction.Unspecific“ (Ie1bcc).
FocusRequester.createRefs ist jetzt als experimentell gekennzeichnet, da sich dies noch ändern kann. (I2d898, b/177000821)
SemanticsPropertyReceiver.hidden wurde in „invisibleToUser“ umbenannt und als „@ExperimentalComposeUiApi“ gekennzeichnet. AccessibilityRangeInfo wurde in ProgressBarRangeInfo umbenannt. stateDescriptionRange wurde in progressBarRangeInfo umbenannt. AccessibilityScrollState wurde in ScrollAxisRange umbenannt. horizontalAccessibilityScrollState wurde in horizontalScrollAxisRange umbenannt. verticalAccessibilityScrollState wurde in verticalScrollAxisRange umbenannt. (ID3148)
VisualTransformation wurde zu einer funktionalen Schnittstelle geändert (I3bba4)
TestCoroutineDispatcher beim Testen nutzen (I532b6)
PointerInputData entfernt und PointerInputChange geändert haben um alle Felder von PointerInputData zu erhalten. PointerInputEvent erstellt und PointerInputEventData intern verwendet werden, da sie in einer beliebigen öffentlichen API. (Ifff97, b/175142755)
TextInputService.onStateUpdated wurde in updateState (Id4853) umbenannt.
Entfernen Sie displaySize, da dies vermieden werden sollte. Normalerweise ist es Es ist besser, zumindest die Größe von onRoot() oder die Fenstergröße zu verwenden. (I62db4)
Version 1.0.0-alpha10
13. Januar 2021
androidx.compose.foundation:foundation:1.0.0-alpha10
und androidx.compose.foundation:foundation-layout:1.0.0-alpha10
wurden veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.
API-Änderungen
- ImeOptions und KeyboardOptions sind keine Datenklasse mehr (I3c898, b/168684531).
- Änderungen an der VisualTransformation API
<ph type="x-smartling-placeholder">
- </ph>
- „OffsetMap“ wurde in „OffsetMapping“ umbenannt
- „OffsetMapping.identityOffsetMap“ wurde in „OffsetMapping.Identity“ umbenannt.
- PasswordTransformation ist keine Data-Klasse mehr
- OffsetMapping wurde in eigene Datei verschoben
- (I0bdf3)
- Änderungen an der EditOperations API
<ph type="x-smartling-placeholder">
- </ph>
- EditOperation in EditCommand umbenannt
- Zusätzliches Befehlssuffix für EditOperation-konkrete Implementierungen
- EditCommands sind keine Datenklassen mehr
- Die Funktion „EditOperation.process“ wurde in „applyTo“ umbenannt.
- InputEventListener wurde in InputEventCallback umbenannt
- (I0a366)
- Die Geschwindigkeit wurde so geändert, dass sie Bestandteile und mathematische Geschäftsabläufe. (Ib0447)
- @ExperimentalTesting wurde in @ExperimentalTestApi umbenannt in entspricht ähnlichen Anmerkungen der experimentellen API (Ia4502, b/171464963).
- Zusätzliche experimentelle stickyHeader-Methode für LazyColumn/LazyRow (I0a81d)
- Ranamed Color.useOrElse() zu Color.takeOrElse() (Ifdcf5)
- Veralteter TestUiDispatcher. Verwenden Sie stattdessen Dispatchers.Main (Ic171f, b/175385255).
- Ein/Aus-Schaltfläche zur Grundlage Strings.kt hinzufügen (I4a5b7, b/172366489)
- NativeClass verschoben nach UI-Moduls intern verwendet. Aktualisierte Nutzung von „nativeClass“ in zu verwenden, „is MyClass“ . (I4f734)
- FlowRow und FlowColumn wurden eingestellt. Verwenden Sie stattdessen ein benutzerdefiniertes Layout. (I09027)
- Modifier.focus() und Modifier.focusRequester() wurden eingestellt. Verwenden Sie stattdessen Modifier.focusModifier() und Modifier.focusReference() . (I75a48, b/175160751, b/175160532, b/175077829)
- Das Tool „Selectable“.notifySelectableChange wurde eingeführt, um „Selectable“-Updates für „Selectable“ zu benachrichtigen. (I6ff30, b/173215242)
fun Dp.isFinite()
inval Dp.isFinite
geändert (I50e00)- „Constraints#expectedBy“ wurde in „isSatisfiedBy“ umbenannt. (I9cf5c)
- Hinzugefügt ist angegeben, isUnspezifisch, und useOrElse für Inline-Klassen mit einer Konstante "Nicht angegeben". (I93f7b, b/174310811)
Fehlerkorrekturen
- Neue koroutinebasierte API
Animatable
, die die gegenseitige Exklusivität sicherstellt zwischen seinen Animationen. Neue DecayAnimationSpec zur Unterstützung mehrdimensionaler Abklinganimationen (I820f2, b/168014930) - Unterstützung für deaktivierte und schreibgeschützte Textfelder hinzugefügt (I35279, b/171040474, b/166478534)
animate()
wird jetzt durchanimateAsState()
ersetzt. wodurchState<T>
anstelle vonT
zurückgegeben wird. Dies ermöglicht eine bessere da der Umfang der Entwertung eingegrenzt werden kann, bis der Wert "State" gelesen wird. (Ib179e)- Semantics Role API und Role als Parameter hinzufügen klickbar, auswählbar und ein-/ausschaltbarer SemanticsModifier. Geändert Modifier.progressSemantics, damit der Slider sie auch verwenden kann. (I216cd)
- Auf das native "keyEvent" kann jetzt über "keyEvent.nativeKeyEvent" (I87c57, b/173086397) zugegriffen werden.
Version 1.0.0-alpha09
16. Dezember 2020
androidx.compose.foundation:foundation:1.0.0-alpha09
und androidx.compose.foundation:foundation-layout:1.0.0-alpha09
wurden veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.
API-Änderungen
Scrollbare Oberfläche hinzufügen
Dadurch können ScrollState und LazyListState als gemeinsame -Typ, sodass benutzerdefiniertes Scrollen für beide Typen implementiert werden kann.
Damit wird auch „smooScrollBy“ zu einer Erweiterungsfunktion in Scrollable verschoben, und diese Funktion nutzen. (I2153b)
LazyVerticalGrid wurde hinzugefügt. (I17267, b/162213211)
LazyColumnFor, LazyRowFor, LazyColumnForIndexed und LazyRowForIndexed werden eingestellt. Stattdessen LazyColumn und LazyRow verwenden (I5b48c)
Umbenennung von Eingabe-APIs zum Aussetzen von Zeiger. HandlePointerInputScope to AwaitPointerEventScope and handlePointerInput() zu "awaitPointerEventScope()". (Idf0a1, b/175142755)
LazyListState.layoutInfo wurde hinzugefügt, um die Liste der Größen und Offsets der derzeit sichtbaren Elemente anzuzeigen (If8678, b/170472532).
Anmerkung ExperimentalPointerInput entfernt (Ia7a24)
InteractionState-Unterstützung für Textfelder wurde hinzugefügt. (I61d91)
Fügen Sie den Parameter „ReverseLayout“ für die Spalte „LazyColumn/Row“ hinzu. wenn
true
Elemente von unten nach oben bestehen undLazyListState.firstVisibleItemIndex == 0
bedeutet, dass sich das erste Element unten befindet. (I552ae, b/166589935)Der Parameter verticalArrangement wurde für LazyColumn hinzugefügt. Der Parameter horizontalArrangement wurde für LazyRow hinzugefügt. Mithilfe der Anordnung können wir einen Abstand zwischen den Artikeln einfügen und die Anordnung der Artikel festlegen, wenn nicht genügend davon für die gesamte Mindestgröße vorhanden sind. (Icf79a, b/170394300)
detectMultitouchTouchs-Gesten verwenden jetzt einen Callback mit kombinierten schwenken, zoomen und drehen. (Ie6e1c)
ContentDrawScope wurde in UI-Grafiken verschoben DrawScope-Modul. (Iee043, b/173832789)
Fehlerkorrekturen
- Lambdas in Offset-Modifikatoren geben jetzt IntOffset statt Float zurück. (Ic9ee5, b/174137212, b/174146755)
SlotTable, SlotReader und SlotWriter aus der öffentlichen API. Diese wurden markiert als InternalComposeAPI. Jetzt sind sie intern zum Verfassen-Modul.
CompositionData und CompositionGroup wurden als Ersatz für die UI-Tooling-API zum Extrahieren Informationen zur Zusammensetzung. Diese sind öffentlich, sind für die Verwendung außerhalb der UI-Tooling API gedacht, da sie die von der UI-Tooling API interpretierten Rohdaten (I31a9c)
ShaderBrush wurde auf eine Shader-Instanz langsam erstellen, Größeninformationen der Zeichnung verfügbar ist. Dies ist nützlich, um Gradienten zu definieren, die vollständige Zeichnungsgrenzen einer zusammensetzbaren Funktion einnehmen während der Erstellung, ohne benutzerdefinierte DrawModifier-Implementierungen implementieren.
Eingestellte APIs für Gradientenfunktionskonstruktoren zugunsten der Fabrikmethoden 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).
Die Autofill API ist jetzt eine experimentelle API und erfordert eine Zustimmung (I0a1ec).
Destruktive Deklarationen zum Erstellen von FocusRequester-Instanzen hinzufügen (I35d84, b/174817008)
„accessibilityLabel“ wurde in „contentDescription“ umbenannt. accessValue wurde in stateDescription umbenannt. (I250f2)
Mehrere neue Funktionen in SelectionRegistrar wurden eingeführt und in „onPositionChange“ in „notificationPositionChange“ umbenannt. (Ifbaf7)
AndroidOwner intern gemacht (Ibcad0, b/170296980)
Neue Funktion infiniteRepeatable zum Erstellen einer InfiniteRepeatableSpec (I668e5)
Die Benutzeroberfläche von
Applier
wurde vereinfacht dass Bäume von unten nach oben statt von oben nach unten gebaut werden.Die Methode
insert()
wurde ininsertTopDown()
umbenannt.Die neue Methode
insertBottomUp()
wurde hinzugefügt.Ein Anwender fügt entweder Knoten in den Baum ein, den er bearbeitet. mit
insertTopDown()
oderinsertBottomUp()
, je nachdem, und eine bessere Leistung.Einige Bäume, z. B.
LayoutNode
undView
, sind viel größer ist die Erstellung von Bottom-up-Ansatz effizienter als von Top-down. Vor dieser Änderung für die Bottom-up-Implementierung erforderlich war, in jeden Anwendungsanbieter kopiert werden, wobei ein Bottom-up-Ansatz erforderlich ist für eine optimale Leistung. Mit dieser Änderung hat einApplier
überschreibtinsertBottomUp()
, um eine Baumstruktur für Bottom-up-insertTopDown()
, um den Baum oben nach unten zu bauen. (Icbdc2)PainterResource API hinzugefügt zur Verarbeitung von intransparent geladenen Painter-Objekten aus Raster-Asset-Formaten (z. B. PNGs) oder VectorDrawables. Die Nutzenden haben nicht mehr um den Asset-Typ im Voraus zu ermitteln, Diese Methode kann aufgerufen werden, um ein Painter-Objekt abzurufen. zur Verwendung in zusammensetzbaren Bild- oder Painter-Modifikatoren. (I2c703, b/173818471)
Factory-Funktion „buildAnnotatedString“ in der angegebenen Reihenfolge hinzugefügt um einen AnnotatedString zu erstellen. Verworfener annotatedString Builder-Funktion. (Idfe0b)
Version 1.0.0-alpha08
2. Dezember 2020
androidx.compose.foundation:foundation:1.0.0-alpha08
und androidx.compose.foundation:foundation-layout:1.0.0-alpha08
wurden veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.
API-Änderungen
- Der Parameter
maxLines
wurde aus demCoreTextField
entfernt. Wenn Sie die Höhe des Textfelds durch die Anzahl der Zeilen einschränken möchten, verwenden Sie stattdessenBasicTextField
. (IEC002) - Die
await*TouchSlop()
-Methoden wurden geändert zu nicht erkannten Zeiger nach unten und*OrCancellation
. Auch die Notwendigkeit fürorientationLock
-Parameter. (Ie96e1) - Es wurde eine Lint-Prüfung für die Benennung und Position von zusammensetzbaren Lambda-Parametern hinzugefügt, um die Konsistenz mit den Richtlinien für das Schreiben zu prüfen.
Außerdem wurden einige APIs gemäß der Lint-Prüfung und der Anleitung mit
children
als Namen für das nachgestellte Lambda zucontent
migriert. (Iec48e) foundation:foundation-text
APIs wurden nachfoundation:foundation
verschoben. Die Paketstruktur ist gleich geblieben (Id3eb2).- Neuer Multi-Touch-Gestenerkennung, einschließlich Hilfsfunktionen zum Erkennen von Drehung, Zoomen und Schwenken. (IC459d)
- Neuer Standpunkt-Zeiger für Ziehbewegungserkennung Eingabe-API, einschließlich Ausrichtungssperre. (Icef25)
- VectorAsset wurde in ImageVector umbenannt. VectorAsset wurde in Builder verschoben und umbenannt in eine innere ImageVector-Klasse gemäß API Council-Richtlinien Typalias von VectorAssetBuilder wurde hinzugefügt zu Link zu ImageVector.Builder für kompatible. (Icfdc8)
- Umbenennung von ImageAsset und Ähnliche Methoden für ImageBitmap. (Ia2d99)
- Fundamentsemantikeigenschaften wurden in die Benutzeroberfläche verschoben (I6f05c)
Fügen Sie koroutinebasierte Scroll-APIs hinzu:
Fügt LazyListState.snapToItem und LazyListState.smoothScrollBy sowie eine untergeordnete Ebene hinzu APIs zur Steuerung des Scrollens Diese APIs bieten eine Schnittstelle zum Anhalten zum Steuern des Scrollens. das erst nach Abschluss des Scrollens wartet, bevor es zurückkehrt. (Beispielsweise 5642)
Ein singeLine-Parameter wurde zu BasicTextField, TextField und OutlinedTextField hinzugefügt. Setzen Sie diesen Parameter auf „true“, um das Textfeld zu einer einzigen horizontal scrollbaren Zeile zu machen. (I57004, b/168187755)
Bewegungserkennung für Tipp, Doppeltippen, langes Drücken und Drücken der Anzeige wurde mit dem neuen Haltepunkt hinzugefügt. Eingabe. Außerdem wurden einige Dienstprogramme hinzugefügt, damit Entwickelnde eigene Gestendetektoren entwickeln können. (I00807)
Für „Modifier.focusable“ wurde ein zusätzliches Fundament benötigt. Hiermit können Sie einer Komponente fokussierbares Verhalten mit korrekter Semantik und Barrierefreiheit hinzufügen. (I41eb9, b/152525426, b/162865824)
Zuvor verworfene APIs wurden entfernt: Border wurde entfernt. Verwenden Sie stattdessen BorderStroke. "Modifier.drawBorder" wurde entfernt. Verwenden Sie stattdessen "Modifier.bound". Modifier.gravity wurde entfernt. Verwenden Sie stattdessen Modifier.align. Der Stapel wurde entfernt. Verwenden Sie stattdessen Box (I32c2b, b/172470874).
AbsoluteArrangement wurde in Arrangement.Absolute umbenannt. (If26f2)
Fehlerkorrekturen
- DrawModifier-APIs wurden aus der androidx.compose.ui-Paket in den androidx.compose.ui.draw verfügbar. Erstellung der Datei DrawModifierdeprecation.kt in Typaliass/Hilfsmethoden zur Unterstützung bei die Migration von der eingestellten zur aktuellen Version APIs (Id6044, b/173834241)
- „Modifier.drawLayer“ wurde in „Modifier.graphicsLayer“ umbenannt. Ähnliche Klassen für GraphicsLayer wurden ebenfalls gemäß den Feedback vom API Council (I0bd29, b/173834241)
<T>
wurde aus der SubcomposeLayout-Deklaration entfernt. Sie können sie jetzt verwenden, ohne einen Typ anzugeben. (Ib60c8)- Dank der Verfügbarkeit von PointerInputData Positionsfelder können nicht null sein. (ID468a)
- MaterialTheme legt jetzt die richtigen Farben für Auswahlziehpunkte und den Auswahlhintergrund fest. Nicht-Material-Apps können manuell „AmbientTextSelectionColors“ verwenden, um die für die Auswahl verwendeten Farben anzupassen. (I1e6f4, b/139320372, b/139320907)
- Der Ausrichtungsparameter von Box wurde in contentAlignment umbenannt. (I2c957)
- Die „offsetPx“-Modifikatoren wurden in „offset“ umbenannt. Sie verwenden jetzt Lambda-Parameter anstelle von Status. (IC3021, b/173594846)
- WindowManager.isWindowFocused wurde hinzugefügt, um zu überprüfen, ob das Host-Fenster im Fokus ist, sowie einen WindowFocusObserver, der einen onWindowFocusChanged-Callback bereitstellt. (I53b2a, b/170932874)
- Der Parameter "resetInput" wurde zu TextInputService#onStateUpdated hinzugefügt (I3e8f5, b/172239032, b/171860947).
- Aktualisierte TextFieldValue API
<ph type="x-smartling-placeholder">
- </ph>
- TextFieldValue.composition ist schreibgeschützt.
- Entfernte Ausnahme wegen ungültiger Auswahlbereich (I4a675, b/172239032)
- Die eingestellten Ambients mit dem Suffix
Ambient
wurden gemäß den anderen Richtlinien für Ambients und Compose API durch neue Properties mit dem Präfix „Inaktiv“ ersetzt. (I33440) - Android-Schriftart-Wrapper hinzugefügt. Sie können ein Android-Gerät
Schriftart über die Funktion
typeface
, z.B.typeface(Typeface.DEFAULT)
.typefaceFromFontFamily()
auch intypeface()
(I52ab7) umbenannt - Lint-Prüfung wurde hinzugefügt, um zu prüfen, ob Modifier Factorys intern
androidx.compose.ui.composed {}
verwenden, statt als@Composable
gekennzeichnet zu werden. (I3c4bc) - Es wurde eine Lint-Prüfung hinzugefügt, um zu prüfen, ob die Modifikator-Factory-Funktionen als Erweiterungen in Modifier definiert sind, damit sie fließend miteinander verkettet werden können. (I07981)
- Das Semantik-Argument „mergeAllDescendants“ wurde in umbenannt FusionNachfolger. (Ib6250)
- Die Zeitsteuerung in Tests (TestAnimationClock und ihre Nutzung) ist jetzt experimentell (I6ef86, b/171378521)
- Entfernen Sie das alte UI-Test-Modul und die zugehörigen Stubs (I3a7cb).
- „TextUnit.Inherit“ wurde in „TextUnit.Unspecific“ umbenannt. (Ifce19)
- Die Benutzeroberfläche für die Ausrichtung wurde aktualisiert und funktionsfähig gemacht. (I46a07, b/172311734)
- Modul
foundation:foundation-text
wurde mitfoundation:foundation
zusammengeführt (Idac0f) - „place(Offset)“ und „placeRelative(Offset)“ verwerfen. Verwenden Sie stattdessen Überlastungen mit Ganzzahl-Offsets (I4c5e7).
id
wurde fürLayoutIdParentData
inlayoutId
umbenannt.Measurable.id
wurde inMeasurable.layoutId
umbenannt. (Iadbcb, b/172449643)
Version 1.0.0-alpha07
11. November 2020
androidx.compose.foundation:foundation:1.0.0-alpha07
, androidx.compose.foundation:foundation-layout:1.0.0-alpha07
und androidx.compose.foundation:foundation-text:1.0.0-alpha07
wurden veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.
API-Änderungen
- Ähnlich wie bei
Modifier.fillMaxSize[Width|Height]
unterstützen wir jetzt Brüche inModifier.fillParentMaxSize[Width|Height]
im Bereich vonLazyColumn/Row
(I797e2, b/166586426). KeyboardOptions.toImeOptions
wurde aus der öffentlichen API entfernt. (Ic2e45)- Die Grundlagen AmbientTextStyle, ProvideTextStyle und AmbientContentColor wurden eingestellt. Verwenden Sie stattdessen die neuen Versionen, die in der Material-Bibliothek verfügbar sind. Für nicht-Material-Anwendungen sollten Sie stattdessen Ihr eigenes Designsystem erstellen, das spezifische Design-Ambiente enthält, die in Ihren eigenen Komponenten verwendet werden können. (I74acc, b/172067770)
- Foundation.Text wurde eingestellt und durch material.Text ersetzt. Eine einfache, uneindeutige Text-API, die keine Werte aus einem Design verwendet, finden Sie unter androidx.compose.foundation.BasicText. (If64cb)
- MaxLines zu Textfeldern hinzugefügt (Ib2a5b)
- Textfelder aktualisieren, um KeyboardOptions zu akzeptieren (Ida7f3)
- Es wurden KeyboardOptions zur Verwendung in Textfeldern hinzugefügt (I9ca32).
- BasicText wurde als vom Design nicht bewertetes API für Text hinzugefügt, parallel zu BasicTextField. (I28268)
- Die Annotation „ExperimentalLazyDsl“ wurde entfernt. LazyColumn/LazyRow kann jetzt ohne Hinzufügen von @OptIn verwendet werden (Idab7a, b/166584730).
- „BaseTextField“ wurde eingestellt. Verwenden Sie stattdessen BasicTextField. (I896eb)
- BasicTextField wurde als Ersatz für CoreTextField und BaseTextField (Id4cea) hinzugefügt.
- Eingestellte LazyColumnItems/LazyRowItems entfernen (I1d8a8)
- Die nicht mehr unterstützten Zusammensetzungen für die Größenanpassung an intrinsische Messungen wurden entfernt. (I18537, b/171811496)
- „relativePaddingFrom“ wurde in „PaddingFrom“ umbenannt. Der Modifikator „PaddingFromBaseline“ wurde hinzugefügt, um die Abstände zwischen Layoutgrenzen und Text-Baselines einfacher festlegen zu können. (I0440a, b/170633813)
- Der Parameter „matchHeightConstraintsFirst“ wurde dem Seitenverhältnis-Modifikator hinzugefügt, mit dem der Modifikator für Größen-/Höhenbeschränkungen angegeben werden kann, bevor Sie die entsprechenden Breiten ausprobieren. (Ie7c43, b/155290593)
- Die eingestellten „DpConstraints“ wurden entfernt. (I87884, b/171702471)
Fehlerkorrekturen
- Einführung von ScaleFactor
Inline-Klasse zur Darstellung des Maßstabs
für die horizontale und vertikale
unabhängig voneinander unabhängige Achsen sind,
um uneinheitliche Skalierungsanwendungsfälle zu unterstützen.
- Die Methode computeScaleFactor wurde zu hinzugefügt. Inhaltsskala
- Durchzuführende ContentScale.FillBounds hinzugefügt ungleichmäßige Skalierung zur Dehnung der Quelle die das Ziel vollständig einnehmen.
- Operatormethoden zur Berechnung hinzugefügt ScaleFactor-Parameter mit Größenparametern ein.
- (Ic96a6, b/172291582)
- ErfassungToBitmap wurde zu SnapshotToImage verschoben. (I86385)
- Kennzeichnet CoreText als @InternalTextApi. Verwenden Sie stattdessen BasicText. (I6aaeb)
- KeyboardOptions umbenennen in ImeOptions (I82f36)
- KeyboardType und ImeAction wurden in KeyboardOptions verschoben (I910ce).
- CoreTextField wurde als @InternalTextApi gekennzeichnet. Stattdessen BasicTextField verwenden (Ie2469)
- Die Annotation ExperimentalSubcomposeLayoutApi wurde entfernt. SubcomposeLayout kann jetzt ohne Hinzufügen von @OptIn (I708ad) verwendet werden.
- Modul ui-test-junit4 (Ib91f8) einführen
- Symbol-API wurde aktualisiert, um Farbe.Nicht angegeben zu erfassen. als mögliche Färbungsfarbe, die das angegebene ohne ColorFilter verwenden. Vorher versucht, die Färbung mit „Color.Nicht spezifiziert“ zu ignorieren. hat am Ende eine transparente Farbe, überhaupt nichts gerendert wurde. (I049e2, b/171624632)
- MeasureResult wurde aus MeasureScope verschoben. (Ibf96d, b/171184002)
- Mehrere Layoutsymbole wurden von androidx.compose.ui nach androidx.compose.layout.ui verschoben. (I0fa98, b/170475424)
- androidx.ui.test wurde nach androidx.compose.ui.test (I9ffdb) verschoben
- FirstBaseline und LastBaseline wurden in das Paket „androidx.compose.ui.layout“ (Ied2e7) verschoben.
- "SelectionContainer" wurde ohne den Callback hinzugefügt (Ibfadb).
- Tests für Auswahlgriffe hinzufügen Positionen in SelectionContainer. (Ie93db)
- Auto-Korrektur IME-Option für Tastatur hinzugefügt (I57b8d)
Version 1.0.0-alpha06
28. Oktober 2020
androidx.compose.foundation:foundation:1.0.0-alpha06
, androidx.compose.foundation:foundation-layout:1.0.0-alpha06
und androidx.compose.foundation:foundation-text:1.0.0-alpha06
wurden veröffentlicht. Version 1.0.0-alpha06 enthält diese Commits.
API-Änderungen
- „androidx.compose.foundation.Icon“ wurde nach „androidx.compose.material.Icon“ verschoben. Sie können auch die Bildkomponente / Modifier.paint() mit einem Painter verwenden, wenn Sie die Material-Bibliothek nicht nutzen möchten. (I9f622)
- InteraktionState wurde zu Modifier.scrollable, ScrollableColumn und LazyColumnFor hinzugefügt (I81566, b/169509805).
- „AlignByBaseline“ wurde zu „RowScope“ hinzugefügt und „alignWithSiblings“ wurde in „AlignBy“ umbenannt (I06503, b/170628732).
- Für Box wurde eine Inline-Funktion erstellt. (Ibce0c, b/155056091)
- CoreTextField wurde um maxLines erweitert (Ibee58, b/143687793).
- CoreTextField wurde um Softwrap ergänzt. (I21a4b)
Fehlerkorrekturen
- VectorPainter einstellen in Erinnerung zu einem besseren Vektor gibt an, dass die intern zusammensetzbare API verwendet „remember“. um Daten in verschiedenen Kompositionen. (Ifda43)
- Übergänge in ComposeTestRule aktivieren Option entfernen, um aktivieren Sie den blinkenden Cursor in ComposeTestRule. (If0de3)
- Einzeilige Tastaturoption für CoreTextField (I72e6d) hinzugefügt
- Radius API wurde umbenannt in Eckenradius für bessere Ausdrucksweise wie sie in Compose verwendet werden. Aktualisierte Dokumentation, um zu zeigen, dass negative Eckenradien an den auf null setzen. (I130c7, b/168762961)
- Zusätzliche Möglichkeit zur Angabe von Inspector-Informationen in einem zusammengesetzten Modifikator (Idee08, b/163494569)
- IME-Option für die Großschreibung der Tastatur wurde hinzugefügt (I8ac38)
- Position des Rtl-Ziehpunkts fixieren. (I6e1e0)
- Wichtige Änderung: Der Rückgabewert wurde aus PointerInputFilter.onPointerEvent(...) entfernt, da der einzige Wert, der in Zeigerereignissen geändert werden kann, Verbrauchsdaten sind. Anstatt Daten von PointerInputFilter.onPointerEvent(...) zurückzugeben, können Sie jetzt einfach die Verbrauchsdaten der übergebenen PointerEvents ändern. (I6acd0)
- Die Option „SelectAll“ wurde dem Auswahlmenü hinzugefügt (Ief02b).
Version 1.0.0-alpha05
14. Oktober 2020
androidx.compose.foundation:foundation:1.0.0-alpha05
, androidx.compose.foundation:foundation-layout:1.0.0-alpha05
und androidx.compose.foundation:foundation-text:1.0.0-alpha05
wurden veröffentlicht. Version 1.0.0-alpha05 enthält diese Commits.
API-Änderungen
- CoreTextField unterstützt jetzt Cursorfunktionen (Id23aa).
Die APIs „contentColor()“ und „currentTextStyle()“ werden verworfen und durch AmbientContentColor- und AmbientTextStyle-Ambients ersetzt. Du kannst auf den aktuellen Wert zugreifen, indem du
.current
wie bei jeder anderen Umgebungs-Property verwendest. Diese Änderung dient der Einheitlichkeit und um zu vermeiden, dass dasselbe Ziel auf mehreren Wegen erreicht werden kann. Außerdem werden einige Ambient-Eigenschaften umbenannt, um ihren Zweck wie folgt zu beschreiben:- ContentColorAmbient -> AmbientContentColor (Farbinhalt)
- TextStyleAmbient -> Ambient-Textstil
- IndicationAmbient -> Umgebungsanzeigen
- Betonung -> AmbientEmphasisLevel
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
Fehlerkorrekturen
- Im Rahmen der Standardisierung von Sentinel-Werten für Inline-Klassen, Benennen Sie Color.Unset in Color.Unspecific um aus Konsistenz mit anderen Inline-Klassen (I97611, b/169797763)
- Bedienungshilfen zum Kopieren/Einfügen/Ausschneiden hinzugefügt (I6db4f)
- TextOverflow.None wird eingeführt. Wenn overflow auf "None" gesetzt ist, kann Text den Überlauf nicht mehr verarbeiten, und er meldet seine tatsächliche Größe an LayoutNode. (I175c9, b/158830170)
- Aktualisierte Größe.Keine Angabe Float.NaN anstelle von Gleitkommazahl.POSITIVE_INFINITY. Painter-Implementierungen wurden auf auch auf „Size.Nicht angegeben“ prüfen als nicht endliche Größen. (I95a7e)
- Das Modul zum Erstellen von Paging und die Paging-Integration wurden hinzugefügt (Ib85da).
- LazyListScope so ändern, dass Werte mit Nullwerten empfangen werden können (I1765b)
- OnPositionedModifier wurde in OnGloballyPositionedModifier umbenannt und onPositioned() wird in onGloballyPositioned() umbenannt. (I587e8, b/169083903)
- Stichproben für LazyColumn/Row (Idc16d) hinzugefügt
- Fehler bei den Methoden „itemsIndexed“ und „itemIndexed“ behoben, um eine emptyList zuzulassen (I06647)
- DSL zum Angeben von Inspector-Informationen hinzufügen (Ic9a22)
- Langes Drücken in Text verschieben. (Iff2bc)
- Deaktivierung der Textauswahl und Demo (Ie7e97)
- Unterstützung der Konvertierung von AnnotatedString in SpannableString für bessere Zugänglichkeit. (Ief907)
PointerInputFilter.onPointerInput(...)
wurde entfernt. Stattdessen solltePointerInputFilter.onPointerEvent(...)
verwendet werden. (I6f04a)
Version 1.0.0-alpha04
1. Oktober 2020
androidx.compose.foundation:foundation:1.0.0-alpha04
, androidx.compose.foundation:foundation-layout:1.0.0-alpha04
und androidx.compose.foundation:foundation-text:1.0.0-alpha04
wurden veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.
API-Änderungen
- Stack wurde in Box umbenannt. Die zuvor vorhandene „Foundation.Box“ wird zugunsten des neuen Felds in „Compose.foundation.layout“ eingestellt. Das Verhalten des neuen Box besteht darin, untergeordnete Elemente übereinander zu stapeln, wenn sie mehrere untergeordnete Elemente hat. Dies unterscheidet sich vom vorherigen Box, das sich ähnlich wie eine Column verhielt. (I94893, b/167680279)
- Die Parameter „Box decoration“ wurden eingestellt. Wenn Sie Ihre Box mit Verzierungen/Padding versehen möchten, verwenden Sie stattdessen Modifikatoren (Modifier.background, Modifier.Border, Modifier.padding) (Ibae92, b/167680279).
- Fügen Sie eine neue LazyListState-Klasse hinzu. So können Sie die Scrollposition der Seite beobachten und steuern, LazyRow- und LazyColumn-Komponenten Instanzen können mit erinnernLazyListState() und übergeben an den state-Parameter der Komponente. Derzeit können das erste sichtbare Element und die Offsets die in dieser ersten Version beobachtet wurden. (Ic7cb7, b/159307669)
- Verzögerte Listenposition und Scroll-Offset werden jetzt gespeichert und in der Freizeitaktivitäten wiederhergestellt (Ie045f, b/166589058)
- Semantik für lange Klicks hinzufügen (I6281b, b/156468846)
- MutatorMutex-Dienstprogramm wurde hinzugefügt, um einen einzelnen Mutator von gemeinsamen Status im Zeitverlauf und Stornieren in Konflikt stehender Mutatoren nach Priorität (I3f975)
- Annotierte-Datei „rootAnimationClockFactory“, „transitsEnabled“, blinkingCursorEnabled und textInputServiceFactory mit @VisibleForTesting, machen Sie sie in eine interne API und verbergen Sie ihr kdoc (I554eb, b/168308412).
- Der Inline-Parameter wurde aus der Texteingabe mit String-Eingabe entfernt. Es wird nicht verwendet, da inlineContent mit AnnotatedString funktionieren muss. (Ief403)
- Die eingestellten benutzerdefinierten Arrangement APIs wurden entfernt. (Ic576d, b/168297922, b/168297923)
- Der Parameter
unbounded
wurde zu wrapContentSize-Modifikatoren hinzugefügt, wodurch das Layoutelement mit unbegrenzten maximalen Beschränkungen gemessen werden kann. (I77951, b/158559319) - Statische Importe von Inhalten von Layoutbereichen (z.B. alignWithSiblings in RowScope) wurden verhindert. Verwenden Sie stattdessen die explizite Bereichsalternative:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be, b/166760797)
Fehlerkorrekturen
- Aktualisierung vieler Grafik-APIs
<ph type="x-smartling-placeholder">
- </ph>
- Skalierung und Drehung wurden aktualisiert Transformations-APIs verwenden, um eine einzelne Offset-Parameter zur Darstellung des Drehpunkts -Koordinate anstelle einer separaten Gleitkommazahl für die x/y-Koordinaten in DrawScope und DrawTransform
- Rect.expandToInclude und Rect.join entfernt Methoden
- Radius-Dokumentation wurde aktualisiert, um „oval“ anzuzeigen neben dem Crosstrainer
- Eine Dokumentation zur Angabe der öffentlicher Konstruktor für den Inline-Radius sollte nicht direkt aufgerufen werden, Radiusobjekte sollten über ihre Funktionskonstruktoren
- Entfernung der RoundRect-APIs für die Abfrage von topRight, „bottomRight“, „bottomCenter“ usw.
- Eingestellte Rect.shift-Funktion zugunsten von Rect.translate
- RoundRect.grow und Rect.shrink APIs entfernt
- Umbenennung von RoundRect.outerRect in Rect.boundingRect
- RoundRect.middleRect/tallMiddleRect/wideMiddleRect entfernt und Rect.isStadium
- „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 so aktualisiert, dass Radius-Eigenschaften genutzt werden. statt einzelner Parameter für x-/y-Radiuswerte
- Größen-APIs, die davon ausgingen, dass es sich um ein Rectangle mit einer bestimmten Größe handelt, wurden entfernt. Ursprung bei 0,0
- Zerstörungs-API zu Radius hinzugefügt
- Migrierte verschiedene RoundRect-Erweiterungsfunktionen Properties stattdessen
- (I8f5c7, b/168762961)
- Leistungsoptimierungen für LazyColumnFor/LazyRowFor Scrollen, indem keine unnötigen Neuzusammensetzungen bei jedem Scrollen vorgenommen werden (I64f65, b/168293643, b/167972292, b/165028371)
- Ein Absturz in LazyColumnFor/LazyRowFor nach dem Scrollen und anschließendem Ändern von Elementen wurde behoben und das automatische Scrollen nach dem Entfernen des zuvor sichtbaren Elements implementiert, damit am Ende keine leeren Lücken mehr angezeigt werden (I220ab, b/161480164, b/167855468).
- Das Verschachteln von scrollbaren Containern wie ScrollableContainer und LazyColumnFor in dieselbe Richtung ist nicht mehr zulässig. Es wurde nie unterstützt und brach den Fliege und die Faulheit bei der Zusammenstellung der Elemente von LazyColumnFor (I6e101).
- Aktualisierung vieler Grafik-APIs
<ph type="x-smartling-placeholder">
- </ph>
- DrawScope APIs mit einem Bereich aktualisiert Transformationsmethoden, um anzuzeigen, Transformation nur innerhalb der und entfernt werden, nachdem der Callback aufgerufen wurde.
- Die ClipPath-Dokumentation wurde aktualisiert, sodass sie auf den Pfad verweist. statt mit abgerundetem Rechteck.
- Fester Abstand in der Dokumentation für den rechten Parameter in ClipPath
- DrawScope.drawCanvas wurde umbenannt indrawIntoCanvas und Größenparameter entfernt
- dx/dy-Parameter in inset-Methode umbenannt in horizontal und vertikal
- Zusätzliche eingefügte Überlastung, Wert in alle 4 Grenzen einfügen
- Die Dokumentation zur eingefügten Methode, die angibt, wird diese Einfügung auf alle vier Seiten angewendet.
- Dokumentation für die Rect-Klasse aktualisiert
- Kommentare zu Rect-Parametern wurden aktualisiert, damit sie mit kdoc übereinstimmen. Stil
- Rect.join und Rect.expandToInclude wurden entfernt.
- Überlastung für Rect.translate(offset) und Rect.shift
- (If086a, b/167737376)
- AccessibilityScrollState wird den Semantikeigenschaften hinzugefügt. (Ifeda9)
- Erstellen Sie TextRange inline, um das Erstellen von Objekten zu vermeiden. (Id034b)
- Absatzbeschränkungen wurden entfernt. Die Breite wird jetzt direkt an den Absatz übergeben. (Ica712)
Version 1.0.0-alpha03
16. September 2020
androidx.compose.foundation:foundation:1.0.0-alpha03
, androidx.compose.foundation:foundation-layout:1.0.0-alpha03
und androidx.compose.foundation:foundation-text:1.0.0-alpha03
wurden veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.
API-Änderungen
- „InnerPadding“ wurde in „PaddingValues“ umbenannt. (I195f1, b/167389171)
- Die Verwendung der Schwerkraft wurde konsequent zur Ausrichtung oder Ausrichtung in Layout-APIs umbenannt. (I2421a, b/164077038)
- Dem Stapel wurde ein Ausrichtungsparameter hinzugefügt, mit dem die Standardausrichtung für alle untergeordneten Stapel angegeben werden kann. (Ie80ca, b/164085265)
Fehlerkorrekturen
- DpConstraints und APIs, die es verwenden, wurden eingestellt. (I90cdb, b/167389835)
- Die Parameter
minWidth
undmaxWidth
vonwidthIn
wurden inmin
undmax
umbenannt. Gleiches gilt fürpreferredWidthIn
,heightIn
undpreferredHeightIn
. (I0e5e1, b/167389544) - onNode und andere globale Methoden zu ComposeTestRule hinzugefügt als die aktuellen globalen werden nicht mehr unterstützt. (Ieae36)
- Fixierte Größen- und Positionsberechnungen in GestureScope, verursacht unter anderem ungültige Wischgesten (Iaf358, b/166589947)
createAndroidComposeRule
undAndroidInputDispatcher
verschoben vonandroidx.ui.test.android
nachandroidx.ui.test
(Idef08, b/164060572)
Version 1.0.0-alpha02
2. September 2020
androidx.compose.foundation:foundation:1.0.0-alpha02
, androidx.compose.foundation:foundation-layout:1.0.0-alpha02
und androidx.compose.foundation:foundation-text:1.0.0-alpha02
wurden veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.
Fehlerkorrekturen
- TestUiDispatcher ist als experimentell gekennzeichnet (Iae99d, b/161247083).
ManualFrameClock.hasAwaiters
wurde hinzugefügt, um zu sehen, ob etwas ist das Warten auf einen Frame von dieser Uhr;runWithManualClock
als Ersatz fürrunBlocking
, wenn Tests ausgeführt werden, die eine manualFrameClock erfordernTestUiDispatcher.Main
, mit dem Sie einfach auf den UI-Dispatcher zugreifen können in Ihren Tests.Beispiel:
@Test fun myTest() = runWithManualClock { clock -> // set some compose content withContext(TestUiDispatcher.Main) { clock.advanceClock(1000L) } if (clock.hasAwaiters) { println("The clock has awaiters") } else { println("The clock has no more awaiters") } }
Version 1.0.0-alpha01
26. August 2020
androidx.compose.foundation:foundation:1.0.0-alpha01
, androidx.compose.foundation:foundation-layout:1.0.0-alpha01
und androidx.compose.foundation:foundation-text:1.0.0-alpha01
wurden veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.
Version 0.1.0-dev
Version 0.1.0-dev17
19. August 2020
androidx.compose.foundation:foundation:0.1.0-dev17
, androidx.compose.foundation:foundation-layout:0.1.0-dev17
und androidx.compose.foundation:foundation-text:0.1.0-dev17
wurden veröffentlicht. Version 0.1.0-dev17 enthält diese Commits.
API-Änderungen
- Für Zeilen und Spalten wurde der Abstand nach Anordnung hinzugefügt, um die Positionierung von untergeordneten Layoutelementen mit einem festen Abstand zu ermöglichen. Die ausgerichtete Anordnung wurde ebenfalls hinzugefügt, um zu ermöglichen, untergeordnete Layoutelemente nebeneinander zu positionieren und gemäß einer Ausrichtung in der Zeile/Spalte auszurichten. Die vorherigen Methoden Arrangement.Vertical#arrange und Arrangement.Horizontal#arrange wurden eingestellt und das Schreiben benutzerdefinierter Arrangements wird in Zukunft nicht mehr unterstützt. (I6733d, b/161985975)
- Der Offset ist jetzt eine Inline-Klasse (Iaec70).
- 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).
- VerticalScroller und HorizontalScroller wurden entfernt. Verwenden Sie stattdessen „ScrollableColumn/Row“. Modifier.drawBackground wurde entfernt. Modifier.background (I73b0d, b/163019183) verwenden
- Entfernen Sie die als eingestellten fillMax*-Modifikatoren aus LazyItemScope, da sie das korrekte Hinzufügen solcher Modifikatoren für Elemente erschweren, die keine direkten untergeordneten Elemente von LazyColumnFor sind (Ifa78d).
- Hinzufügen der LazyColumn/LazyRow-Implementierung als DSL (I93cc6)
- Einschränkungen sind jetzt Inline-Klasse (I88736)
- Es wurde die Möglichkeit hinzugefügt, die Größe eines Layouts mithilfe der Modifikatoren "fillMaxWidth", "fillMaxHeight" und "fillMaxSize" auf einen Bruchteil des verfügbaren Platzes anzupassen. (I945bb, b/161562591)
Fehlerkorrekturen
- Ein Modifikatorparameter wurde zu AuswahlContainer hinzugefügt (I4aada, b/161487952).
- „MergePolicy“-Lambda wurde zu SemanticsPropertyKey hinzugefügt. Dabei kann es sich um Wird zum Definieren einer benutzerdefinierten Richtlinie für die Semantik von „mergeAllDescendants“ verwendet Zusammenführen. Standardmäßig wird der übergeordnete Wert verwendet, falls bereits vorhanden ist, andernfalls den untergeordneten Wert. (Iaf6c4, b/161979921)
PlacementScope.placeAbsolute()
wurde inPlacementScope.place()
umbenannt und die vorherigePlacementScope.place()
wurde inPlacementScope.placeRelative()
umbenannt. Daher spiegelt die MethodePlacementScope.place()
die Position in Rechts-nach-links-Kontexten nicht mehr automatisch wider. Verwenden Sie stattdessenPlacementScope.placeRelative()
. (I873ac, b/162916675)- Die eingestellte Komponente „FilledTextField“ wurde entfernt. Verwende stattdessen „TextField“, um die Material Design-Implementierung des ausgefüllten Textfelds zu erhalten. (I5e889)
- Der Parameter backgroundColor wurde zu LinearProgressIndicator hinzugefügt und der interne Rahmen aus CircularProgressIndicator entfernt. Neue ProgressIndicatorConstants.DefaultProgressAnimationSpec wurde hinzugefügt, die bei der Animation des Fortschritts zwischen Werten als standardmäßige AnimationSpec verwendet werden kann (If38b5, b/161809914, b/161804677).
- Die zusammensetzbare Funktion
state { ... }
wurde zugunsten von explizite Aufrufe anremember { mutableStateOf(...) }
zur Verdeutlichung. Dadurch wird die API-Oberfläche insgesamt reduziert und die Anzahl der Konzepte für den Status wird reduziert. Verwaltung und entspricht dem Musterby mutableStateOf()
für die Klasse Property-Delegierung. (Ia5727) - RRect wurde in RoundRect umbenannt. um besser zum Erstellen von Benennungsmustern Ähnliche Funktionskonstruktoren erstellt RRect- und verworfene RRect-Funktion Konstruktoren (I5d325)
- onChildPositioned und OnChildPositionedModifier entfernt. Entwickler sollten „onPositioned“ und „OnPositionedModifier“ verwenden stattdessen im untergeordneten Layout. (I4522e, b/162109766)
- IntSize ist jetzt eine Inline-Klasse (I2bf42).
- Drücke lange auf den leeren Bereich, um ihn zu bearbeiten. (Ib1e5b)
- Blenden Sie die FloatingToolbar nach dem Tippen auf den Text aus. (If4525)
- FloatingToolbar beim Aktualisieren der Auswahl ausblenden. (I8444c)
- Heben Sie die Auswahl auf, wenn die Funktion unkenntlich gemacht wird. (I781a2)
Version 0.1.0-dev16
5. August 2020
androidx.compose.foundation:foundation:0.1.0-dev16
, androidx.compose.foundation:foundation-layout:0.1.0-dev16
und androidx.compose.foundation:foundation-text:0.1.0-dev16
wurden veröffentlicht. Version 0.1.0-dev16 enthält diese Commits.
API-Änderungen
- LazyItemScope wurde für den Parameter „itemContent“ von Lazy-Listen hinzugefügt. Sie bietet Modifikatoren zum Füllen der maximalen Größe des übergeordneten Elements. Dies löst den Anwendungsfall, in dem das Element den Darstellungsbereich ausfüllen soll und die reguläre Modifier.fillMaxSize()-Methode nicht funktioniert, da das Element mit Grenzen für unendlich gemessen wird. (Ibd3b2, b/162248854)
- Dialogfeld in Benutzeroberfläche verschieben (I47fa6)
- Zusätzliche LazyColumnForIndexed/LazyRowForIndexed - Versionen von LazyColumnFor/LazyRowFor, die sowohl einen Index als auch ein Element im itemCallback bereitstellen. Dies ist nützlich, wenn Sie zusätzlich zu einem aktuellen Element einen aktuellen Index kennen müssen. (I65ff3)
- „Modifier.deternimateProgress“ wurde in „Modifier.progressSemantics“ (I9c0b4) umbenannt
- LazyColumnItems wurde in LazyColumnFor umbenannt. LazyRowItems wurde in LazyRowFor (I84f84) umbenannt
- Füge als Best Practice einige Markierungen/Anmerkungen hinzu. (I66b20)
- Das Paket „Foundation.shape.corner“ wurde mit dem Paket „foundation.share“ flach dargestellt (I46491, b/161887429).
- сrossaxis-Schwerkraftparameter für LazyRowItems/LazyColumnItems hinzugefügt. LazyRowItems/LazyColumnItems unterstützen jetzt das Verhalten von Wrapping-Inhalten. (Ib39fc)
- ZoomableState wurde in ZoomableController umbenannt. Benutzerdefinierte Kurven werden für smoothScale unterstützt. Die Funktionen
enabled
undonZoomStarted
wurden hinzugefügt (If8b8f) - Material FilledTextField wurde in TextField und grundlegendes TextField in BaseTextField umbenannt, damit die einfachste gewünschte API leicht zu finden und zu verwenden ist (Ia6242, b/155482676).
- Die zuvor verworfene AdapterList wurde entfernt. Stattdessen LazyColumnItems verwenden (I12b9b)
- "Modifier.drawBackground" wurde in "Modifier.background" umbenannt (I13677).
- Das alte ConstraintLayout DSL wurde entfernt. ConstraintSet2 wurde in ConstraintSet umbenannt. (If58d1, b/162450908)
- Modifier.absoluteOffset() und Modifier.absoluteOffsetPx() wurden hinzugefügt. Im Gegensatz zu Offset-Modifikatoren werden Modifikatoren für den absoluten Offset nicht automatisch von rechts nach links gespiegelt (I3aa21).
Row
undColumn
sind jetzt erheblich Inline-Funktion und reduziert den Aufwand. (I75c10)
Fehlerkorrekturen
- Umfassende API-Fehler beheben (I077bc)
<ph type="x-smartling-placeholder">
- </ph>
- Nicht verwendete OffsetBase-Schnittstelle entfernen
- Richtet die Offset- und IntOffset-Klassen so aus, dass eine einheitliche API-Oberfläche haben,
- Benennen Sie IntOffset.Origin in IntOffset.Zero um. für Konsistenz mit der Offset API
- Die nativeCanvas-Methode wurde aus Canvas verschoben um Kunden bei der Erstellung eigene Canvas-Instanzen
- EmptyCanvas-Stub-Klasse zum Refaktorieren erstellt DrawScope darf kein Null-Parameter sein, lateinit und Sicherstellen, dass das Feld keine Null-Zulässigkeit aufweist
- ClipOp-Enums wurden in Pascal Case umbenannt
- FilterQuality-Enums wurden in Pascal Case umbenannt
- StrokeJoin-Enums wurden in Pascal Case umbenannt
- PointMode-Enums wurden in Pascal Case umbenannt
- PaintingStyle-Enums wurden in Pascal Case umbenannt
- PathFillType-Enums wurden in Pascal Case umbenannt
- StrokeCap-Enums wurden in Pascal Case umbenannt
- Die DrawCache-Implementierung wurde entfernt Lateinit-Parameter verwenden
- DrawScope wurde so aktualisiert, dass die verzögerte Delegierung nicht mehr verwendet wird. für die internen Parameter „fillPaint“ und „strokePaint“
- Das zusammensetzbare Bild wurde aktualisiert, um die Verwendung von Box zu vermeiden für weniger Aufwand
- Outline-Klasse wurde aktualisiert und enthält jetzt @Unveränderliche Annotationen.
- PathNode wurde mit @Unveränderlichen Annotationen aktualisiert für jede Pfadanweisung
- Die Vektorunterzusammensetzung wurde aktualisiert, um redundante Elemente zu entfernen. Bedingte Prüfungen auf Gleichheit, da die Schnittstelle „Compose“ bereits verwendet wird sie
- Verworfene Konstruktormethoden für Rect-Companions zugunsten von Funktionskonstruktoren
- Aktualisierte Brush-Klassen und Funktionskonstruktoren mit @Unveränderliche und @Stable APIs
- VertexMode-Enum wurde auf PascalCase aktualisiert
- Die DrawScope selectPaint-Methode wurde auf bedingt aktualisiert. Strichparameter für die Farbe überschreiben, geändert
- Größe aktualisiert, um destruktive API hinzuzufügen, umbenennen "Nicht spezifiziert" in "Nicht angegeben" geändert und nicht verwendete Methoden entfernt
MonotonicFrameAnimationClock wurde hinzugefügt, mit dem Sie eine MonotonicFrameClock als AnimationClockObservable, um die Lücke zu schließen zwischen den neuen, auf Koroutinen basierenden Uhren und APIs, die noch die alte auf Rückrufen basierende Uhren.
Das MonotonicFrameClock-Äquivalent zu manualAnimationClock ist jetzt manualFrameClock enthält. (I111c7, b/161247083)
SemanticsNodeInteraction.performPartialGesture
wurde entfernt. Verwenden Sie StattdessenSemanticsNodeInteraction.performGesture
. (Id9b62)SemanticsNodeInteraction.getBoundsInRoot()
wurde umbenannt inSemanticsNodeInteraction.getUnclippedBoundsInRoot()
(Icafdf, b/161336532)Die APIs für die Unterstützung von Rechts-nach-links wurden aktualisiert. LayoutDirectionAmbient wurde hinzugefügt, um die Layoutrichtung zu lesen und zu ändern. Modifier.rtl und Modifier.ltr wurden entfernt. (I080b3)
Modifier.plus wurde eingestellt. Verwenden Sie stattdessen "Modifier.then". „Dann“ ein stärkeres Signal für die Reihenfolge hat, während gleichzeitig die Eingabe von
Modifier.padding().background() + anotherModifier
unterbunden wird, wodurch die Kette unterbrochen wird und schwerer zu lesen ist (Iedd58, b/161529964).isFocused()
undisNotFocused()
SemanticsMatcher wurden hinzugefügt. (I0b760)RemeasurementModifier wurde hinzugefügt. Sie ermöglicht es den Nutzenden, das Layout synchron erneut zu messen. Im Allgemeinen benötigen Sie dies nie, da die Neumessung/das Layout automatisch erfolgt. Wir verwenden sie jedoch in LazyColumnItems beim Scrollen. (I5f331, b/160791058)
„isSystemInDarkTheme“ berücksichtigt jetzt immer die systemweite Einstellung für das dunkle Design und ignoriert den Energiesparstatus vor Q gemäß der neuesten Anleitung. (I0c10c)
„OnChildPositioned“ wurde eingestellt. OnPositioned verwenden auf das untergeordnete Element. (I87f95, b/162109766)
AndroidComposeTestRule wurde in „createAndroidComposeRule“ umbenannt. (I70aaf)
Bedienungshilfen-Aktion hinzufügen, um TextLayoutResult abzurufen (I9d6e6)
Version 0.1.0-dev15
22. Juli 2020
androidx.compose.foundation:foundation:0.1.0-dev15
, androidx.compose.foundation:foundation-layout:0.1.0-dev15
und androidx.compose.foundation:foundation-text:0.1.0-dev15
wurden veröffentlicht. Version 0.1.0-dev15 enthält diese Commits.
Wenn Sie die 0.1.0-dev15
-Version von „Compose“ verwenden möchten, müssen Sie Folgendes tun:
Abhängigkeiten aktualisieren
- Wenn Sie die
0.1.0-dev15
-Version von Compose verwenden möchten, müssen Sie Ihre Abhängigkeiten aktualisieren gemäß den neuen Code-Snippets, die oben unter Abhängigkeiten angeben aufgeführt sind.
API-Änderungen
- Ähnlich wie beim neuen Parameter in ScrollableColumn/ScrollableRow LazyColumnItems/LazyRowItems ist jetzt auch der Parameter „contentPadding“ verfügbar, mit dem ein Padding für den Inhalt hinzugefügt werden kann, nachdem er abgeschnitten wurde. Dies ist nur mit einem Modifikatorparameter möglich. Außerdem ist es möglich, nur vor dem ersten und nach dem letzten Element einen Abstand hinzuzufügen. (Ibc24e)
- "onFocusChange"-Callback in Textfeldern wurde in "onFocusChanged" umbenannt (Ida4a1).
- VerticalScroller und HoriziontalScroller wurden eingestellt. Verwenden Sie „ScrollableColumn“ und „ScrollableRow“, um das Spalten-/Zeilenverhalten und die Parameter zu integrieren, oder verwenden Sie „Modifier.verticalScroll“ und „Modifier.horizontalScroll“ für Ihr eigenes Element. ScrollerPosition wurde zugunsten von ScrollState eingestellt. (I400ce, b/157225838, b/149460415, b/154105299)
- Die APIs Modifier.draggable und Modifier.scrollable wurden überarbeitet. DragDirection wurde zugunsten der Ausrichtung entfernt. Der für das Scrollen erforderliche Status wurde vereinfacht. ScrollableState wurde in ScrollableController umbenannt (Iab63c, b/149460415).
- Für Einzelwert-Semantikeigenschaften wird jetzt ein Aufrufstil verwendet.
Beispiel: „Semantik {hidden = true}“ wird jetzt geschrieben als:
semantics { hidden() }
(Ic1afd, b/145951226, b/145955412) - Von RoundedCornerShape und CutCornerShape verwendete Eckengrößen können jetzt größer als 50 % sein (Id2340, b/160400213).
- Die Standardeinstellung „ContentScale“ wurde geändert -Parameter für das zusammensetzbare Bild von Innen bis hin zu Fit. Dies erfolgte der Reihe nach um das Verhalten zu ermitteln, um die zugrunde liegende Malen, wenn das Layout größer ist als der Größe des Malers, während das Seitenverhältnis beibehalten. Dieses das Verhalten besser den Erwartungen entspricht. zum Bereitstellen fester Größen für das Bild ohne das Standardverhalten wenn nur die unveränderliche Größe die Größe der zusammensetzbaren Funktion. (I40ae3, b/159838006)
- Verwenden Sie in den APIs der obersten Ebene AnimationSpec anstelle von AnimationBuilder zur Verdeutlichung des Konzepts der Spezifikation für statische Animationen – Übergangs-DSL verbessern, indem die Lambda-Anforderung für AnimationSpecs wie Tween, Spring. Stattdessen nehmen sie -Konstruktorparameter. - Verbesserte Benutzerfreundlichkeit von AnimationSpec statt sich auf Builder zu verlassen, - Ändern Sie die Dauer und die Verzögerung für KeyFrames und "Tween" zu "Int". Dieses vermeidet unnötige Typumwandlungen und Methodenüberlastung (für Long und Int unterstützt). (Ica0b4)
- Anklickbar wurde entfernt. Modifier.clickable verwenden (I84bdf)
- Zusätzliche LazyRowItems: horizontales Scrollen-Analog zu LazyColumnItems (Ibbcf7)
- Einführung zustandsloser Animations-APIs auf niedriger Ebene Diese APIs (I63bf7)
- androidx.ui.foundation.TextFieldValue und „androidx.ui.input.EditorValue“ wurde eingestellt. „TextField“, Zusammensetzbare Funktionen von FilledTextField und CoreTextField, bei denen wird dieser Typ ebenfalls nicht mehr unterstützt. Bitte verwenden Sie Stattdessen androidx.ui.input.TextFieldValue (I4066d, b/155211005)
- Verwendung von IntPx durch Int.- IntPxPosition ersetzt mit IntOffset. "IntPxSize" wurde durch "IntSize" ersetzt. (Ib7b44)
- androidx.ui.foundation.shape.RectangleShape entfernt; Verwenden Sie androidx.ui.graphics.RectangleShape (I94939, b/154507984)
- Um die Conversion-Raten Anzahl der Klassen, die für Größeninformationen, standardisieren bei Verwendung der Klasse „Size“ von PxSize. Dies bietet die Vorteile einer Inline-Klasse an, um eine lange um 2 Gleitkommawerte zu packen, als Gleitkommazahlen dargestellt. (IC0191)
- Um die Conversion-Raten Anzahl der Klassen, die für wie Positionierungsinformationen, bei Verwendung der Offset-Klasse von PxPosition. Dies bietet die Vorteile einer Inline-Klasse an, um eine lange um 2 Gleitkommawerte zu verpacken, die x darstellen und Y-Offsets, dargestellt als Gleitkommazahlen. (I3ad98)
- Modifier.zoomable wurde hinzugefügt, um die Zoomfunktion durch Auseinander- und Zusammenziehen der Finger zu vergrößern (Id5d63).
- Ein/Aus-Schaltfläche wird nicht mehr unterstützt. Verwenden Sie stattdessen Modifier.toggleable (I35220, b/157642842).
- MutuallyExclusiveSetItem wurde eingestellt. Verwenden Sie stattdessen Modifier.selectable. (I02b47, b/157642842)
- TestTag wurde eingestellt. Verwenden Sie stattdessen Modifier.testTag. (If5110, b/157173105)
- Fügt dem Text den Parameter „fontWeight“ hinzu, der zuvor versehentlich nicht hinzugefügt wurde (I56937).
- Verwendung der Px-Klasse in verschiedenen Erstellen von Klassen als Teil des großen Refaktorierungsaufwand, nur auf Dp zurückzugreifen und primitive Typen für Pixelparameter (I19d02)
- VerticalScroller stellt jetzt „Column“ (Spalte) jetzt standardmäßig zur Verfügung. HorizontalScroller stellt jetzt Row Out of the Box bereit. (Ieca5d, b/157020670)
- Verwendung der Px-Klasse in verschiedenen Erstellen von Klassen als Teil des großen Refaktorierungsaufwand, nur auf Dp zurückzugreifen und primitive Typen für Pixelparameter (Iede0b)
- Modifier.indication wurde dem Foundation-Paket hinzugefügt. Hiermit können Sie Informationen zum Drücken/Ziehen/Sonstiges auf Ihren benutzerdefinierten, interaktiven Elementen einblenden (I8425f, b/155287131).
- VerticalScroller und HorizontalScroller unterstützen jetzt umgekehrtes Scrollen. isReversed ist auf ScrollerPosition (I953bd) festgelegt.
- Unterstützung beim Hinzufügen von zusammensetzbaren Funktionen in das Textlayout (I1373c)
- Konsolidierte CanvasScope-Implementierungen Jetzt gibt es nur DrawScope und ContentDrawScope CanvasScope wurde in DrawScope umbenannt. DrawScope aktualisiert, um Dichte zu implementieren und LayoutDirection Die abgeleitete DrawScope-Klasse in ContentDrawScope wurde gelöscht Painter und PainterModifier wurden aktualisiert kein RTL-Attribut mehr da DrawScope dies bereits ohne sie manuell anzugeben (I1798e).
- Veraltete DrawBackground-Funktion entfernt API zugunsten der Erweiterung „drawBackground“ APIs auf Modifier. Refaktoriert Farbe, Pinsel und Zeichnen, Zeichnen, Hintergrund Implementierungen, um auch Codepfade zu reduzieren da der Modifizierer zum Entfernen erforderlich ist. als Teil der Komposition. (I0343a)
- Höhere Ebene aktualisiert APIs erstellen, die einen Canvas für CanvasScope. Dadurch wird Folgendes entfernt: die Notwendigkeit, dass die Verbraucher eigenen Paint-Objekten erstellen. Für Verbraucher, die benötigen weiterhin Zugriff auf einen Canvas, können sie die Erweiterung „drawCanvas“ verwenden, -Methode, die einen Callback des Problems liefert Zeichenbefehle mit der zugrunde liegenden Canvas (I80afd)
- HorizontalScroller und VerticalScroller stellen ihre Scrollposition nicht mithilfe des gespeicherten Instanzstatus wieder her. (Ia0fae, b/155075048)
- FocusManagerAmbient wurde entfernt. Verwenden Sie FocusModifier.requestFocus , um den Fokus zu erhalten. (IC4826)
- Das Tabellenlayout wurde vorübergehend entfernt, bis es mit einer aktualisierten API wieder verfügbar ist. (Id88a7)
Es wurde eine CanvasScope API erstellt, die eine Canvas-Objekt zur Bereitstellung eines zustandslosen, deklarativen der Zeichen-API-Oberfläche. Transformationen sind enthalten vom eigenen Empfängerumfang und den Größeninformationen wird auch den entsprechenden Einsatzgrenzen zugeordnet. Es ist für den Nutzer nicht erforderlich, seinen eigenen Paint-Status beizubehalten. zum Konfigurieren von Zeichenvorgängen.
CanvasScopeSample sowie hat die Demo-App aktualisiert, sodass sie eine deklarative Grafik Demo (Ifd86d)
ColoredRect wurde entfernt. User Box mit dem Modifikator „drawBackground“ stattdessen (I983c7, b/152753731)
Anpassung der Cursorfarbe für das Textfeld (I6e33f)
Softwaretastatur lässt sich jetzt mit SoftwareKeyboardController, bereitgestellt von onTextInputStarted Callback (I8dc44, b/151860051)
TextFieldValue, der mit TextField verwendet wird, kann jetzt in folgenden Fällen verwendet werden:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
(I5c3ce, b/155075724)Fügt häufig verwendete Parameter zu Text() hinzu. Wenn Sie derzeit einen lokalen Textstil erstellen, um eine kleine Anzahl dieser Parameter wie
Text(style = TextStyle(textAlign = TextAlign.Center))
zu übergeben, können Sie die Parameter jetzt einfach direkt angeben:Text(textAlign = TextAlign.Center)
(I82768).CoreTextField/TextFieldfocusIdentifier ersetzt mit FocusNode, um in das Fokus-Subsystem zu integrieren. (I7ea48)
TextField-Update – in der horizontalen Dimension belegt es den gesamten verfügbaren Bereich, der ihm zugewiesen ist (Ib08df, b/154638552).
InteractionState und Interaction wurden hinzugefügt, um die Erstellung von Komponenten zu vereinfachen, die auf Änderungen des UI-Status reagieren, z. B. Drücken und Ziehen (Icfe25, b/152525426).
RectangleShape wurde von androidx.ui.foundation.shape.* nach androidx.ui.graphics.* verschoben. (Ia74d5, b/154507984)
Alle Farbverwendungen, für die Nullwerte zulässig sind, in der API ersetzt durch keine Nullwerte zulässig und "Color.Unset" anstelle von "null" verwenden (Iabaa7)
Update der TextField API – onFocus- und onBlur-Callbacks wurden zu einem einzelnen onFocusChange(Boolean)-Callback mit dem Parameter (I66cd3) zusammengeführt.
ScaleFit wurde in ContentScale umbenannt ContentScale wurde von UI-Graphics auf UI-Core umgestellt muss sich im selben Modul befinden wie das der API erstellen. FillMaxDimension wurde in „Zuschneiden“ umbenannt FillMinDimension wurde umbenannt in Fit Fit wurde zur besseren Übereinstimmung in Inside umbenannt ImageView.ScaleType-Entsprechungen Es wurde eine Dokumentation hinzugefügt, aus der hervorgeht, dass die Kombination zuschneiden und Ausrichtung.Center erzielen dasselbe Ergebnis. wie ImageView.ScaleType.CENTER_CROP und Fit, mit der Option "Align.Center" verwendet wird, ImageView.ScaleType.FIT_CENTER. Die Verwendung von "Innen" mit "Align.Center" erreicht Ergebnis als ImageView.ScaleType.CENTER_INSIDE (I45f09, b/152842521)
Entfernt ProvideContentColor, verwende stattdessen ContentColorAmbient direkt mit
Providers
(Iee942)Fügt dem Text einen Farbparameter hinzu. Dadurch kann die Farbe des Textstils überschrieben werden, ohne dass diese manuell mit dem in einem Design bereitgestellten Stil zusammengeführt werden müssen. (I41a66)
DrawModifier API verbessern:
- Der Empfängerumfang für „draw() ContentDrawScope“ wurde erstellt.
- Alle Parameter fürdraw() wurden entfernt.
- DrawScope hat dieselbe Oberfläche wie der frühere CanvasScope.
- ContentDrawScope verfügt über die Methode „drawContent()“ (Ibaced, b/152919067).
„ColoredRect“ wurde eingestellt. Verwende stattdessen
Box(Modifier.preferredSize(width, height).drawBackground(color))
. (I499fa, b/152753731)Das Shape-Motiving-System wird gemäß der Material Design-Spezifikation aktualisiert. Sie können jetzt kleine, mittlere und große Formen für die meisten Komponenten angeben (Ifb4d1).
Modifikator plus Operator durch Factory-Erweiterungsfunktionen ersetzt (I225e4)
Ziehbare Elemente wurden in Modifikator verschoben (Id9b16, b/151959544).
Text
wurde von androidx.ui.core in das Paket androidx.ui.foundation verschoben. (I87ce5)Parameter
enabled
zu „Kästchen“, „Wechsel“ und „Ein/Aus-Schaltfläche“ hinzufügen (I41c16)Ripple ist jetzt ein Modifikator. Obwohl Clickable noch nicht konvertiert wurde, wird die Verwendung von
Clickable(onClick = { ... }, modifier = ripple())
(Ie5200, b/151331852, b/150060763) empfohlen.VectorPainter API wurde hinzugefügt zu vorhandene Subcomposition API ersetzen für Vektorgrafiken zu erstellen. Ergebnis der Unterzusammensetzung ist ein VectorPainter-Objekt anstelle eines DrawModifier. Vorheriges DrawVector verworfen zusammensetzbaren Funktionen zugunsten von VectorPainter verwenden.
Image(Painter)
API wurde inPaintBox(Painter)
umbenannt Eine mit Vektor zusammensetzbare Funktion, die sich wie die Bild zusammensetzbar, außer mit einem VectorAsset eines Image-Assets (I9af9a, b/149030271)Für die Verarbeitung zusammensetzbares Bild wurde erstellt Größenanpassung/Layout. ImageAsset hinzu. Diese zusammensetzbare Funktion unterstützt auch das Zeichnen von beliebigen Malern Instanz unter Berücksichtigung ihrer intrinsischen Größe und eine bestimmte feste Größe oder Mindestgröße (Ibcc8f)
Button, FloatingActionButton und Clickable haben jetzt einen separaten
enabled
-Parameter. Einige der Parameter der Schaltfläche wurden umbenannt oder neu angeordnet. (I54b5a)Bild wurde zur besseren Unterscheidung in ImageAsset umbenannt den Unterschied zwischen den Bilddaten und den Zusammensetzbare Bilder für Layout und Zeichnen Inhalte.
Erweiterungsmethode für android.graphics.Bitmap erstellt
Bitmap.asImageAsset()
, zum Erstellen einer Instanz eines Nützliches ImageAsset für die Kombination herkömmlicher Android- das Framework „Compose“. (Id5bbd)Die zusammensetzbare Funktion „DawImage“ wurde entfernt. Verwenden Sie ImagePainter, um ein Bild auf einem vorhandenen Layout zu zeichnen, oder SimpleImage, um ein platzsparendes Bild zu einführen (I595e1, b/149827027).
Die Stack-Komponente unterstützt die Schreibrichtung von rechts nach links (Ic9e00).
Icon, IconButton und IconToggleButton wurden hinzugefügt, um AppBarIcon zu entfernen. Sie können bestehende Nutzungen von AppBarIcon direkt durch IconButton, und haben jetzt das richtige Berührungsziel. Beispiele für Nutzungsinformationen und siehe Symbole für die bereitgestellten Material Icons die Sie direkt mit diesen Komponenten verwenden können. (I96849)
Die zusammensetzbare Funktion „DawShape“ wurde entfernt. Verwenden Sie stattdessen den Modifikator „Hintergrund zeichnen“. (I7ceb2)
AdapterList, eine scrollbare Listenkomponente, die nur und erstellt die sichtbaren Elemente. Derzeit bekannte Probleme dass sie nur vertikal sind und nicht alle Fälle von Änderungen an seinen untergeordneten Elementen. (Ib351b)
Es wurde eine scrollbare Komponente hinzugefügt, die das Erstellen von benutzerdefinierten Scrollern/Listen ermöglicht (I5fd37).
Hintergrund wurde in DrawBackground umbenannt und zum Standardspeicher gemacht (Ia0bd3).
Abstände, Rahmen, Form und Hintergrundparameter zu Box hinzufügen (I05027, b/148147281)
Canvas-Komponente hinzugefügt. Diese zusammensetzbare Funktion nimmt etwas in Anspruch (vom Nutzer bereitgestellt) und ermöglicht Ihnen, mit CanvasScope (I0d622) zu zeichnen.
Border
-Modifikator inDrawBorder
umbenennen (I8ffcc)Es wurde eine Box-Komponente zum Kombinieren gängiger Layout- und Zeichenfunktionen hinzugefügt. (I6e2a7)
Scroller zeigen jetzt natives Android-Fingerverhalten. (I922af, b/147493715)
DrawBorder durch Rahmenmodifikator ersetzt (Id335a)
„Modifier.tag“ wurde in „Modifier.layoutId“ umbenannt, um eine Verwechslung mit „Modifier.testTag“ zu vermeiden. (I995f0)
Der Parameter "percent" beim Erstellen von ConstraintLayout-Richtlinien wurde in "fraction" umbenannt. (Ida2db)
Zusätzliche Unterstützung für Ränder von ConstraintLayout-Barrieren. (I47ffe)
RTL-Unterstützung in ConstraintLayout wurde korrigiert. Nicht erkannte RTL-APIs wurden hinzugefügt. (I3b1c7)
Ein neues DSL für ConstraintLayout wurde hinzugefügt. Weitere Informationen finden Sie in den Beispielen. (Icaa9a)
Die Annotation @ExperimentalLayout wurde hinzugefügt. ConstraintLayout, FlowRow und FlowColumn sind jetzt damit getaggt, um zu kennzeichnen, dass sich ihre APIs ändern. (I412a8)
Modifier.padding(InnerPadding)
wurde hinzugefügt (I94985, b/157133803).Die verworfenen Spalten RowAlign und ColumnAlign in Row und Column wurden entfernt. (If60d4, b/155858731)
Das verworfene LayoutTag() wurde entfernt. Verwenden Sie stattdessen „Modifier.tag()“. Die eingestellte Funktion „Modifier.matchParent()“ wurde entfernt. Verwenden Sie stattdessen „Modifier.matchParentSize()“. (If8044)
Der Layoutmodifikator „offsetPx“ wurde hinzugefügt, um (dynamische) Offsets in Pixel zu definieren. (I5af57)
Die zusammensetzbare Funktion „AlignLineOffset“ wurde eingestellt. Verwenden Sie stattdessen den Modifikator relativePaddingFrom(). Die zusammensetzbare Funktion „CenterAlignmentLine“ wurde entfernt. (I60107)
Der Layoutmodifikator „defaultMinSizeConstraints“ wurde hinzugefügt, der nur dann Größenbeschränkungen für das umschlossene Layout festlegt, wenn die eingehenden entsprechenden Einschränkungen nicht angegeben sind (0 für minimale Einschränkungen und unendlich für maximale Einschränkungen). (I311ea, b/150460257)
Der Container wurde entfernt. Verwenden Sie stattdessen Box (Ibbc2b, b/151407926).
Die nicht mehr unterstützten Layoutbreite-/Höhen-/Größenmodifikatoren wurden entfernt. (Ib0bc1)
Standardparameterwerte für den Offset-Modifikator wurden hinzugefügt. (I37f06)
Modifikator für symmetrischen Abstand wurde hinzugefügt. (I39840)
Der eingestellte Layout-AspectRatio-Modifikator wurde entfernt. (I65a74)
Die eingestellten LayoutAlign-Modifikatoren wurden entfernt. (I10877)
Es wurde ein Fehler bei den Modifikatoren für Breite und Höhe behoben, der dazu führte, dass das umschlossene Layout ohne Einschränkungen der entgegengesetzten Achse gemessen wurde. (I210b8, b/154797971)
Die Parameter verticalGravity und horizontalGravity wurden zu Zeile bzw. Spalte hinzugefügt. (I7dc5a)
„wrapContentWidth“ und „wrapContentHeight“ wurden aktualisiert und sind nun mit der vertikalen oder horizontalen Ausrichtung anstelle der Ausrichtung zu erwarten. Der Schwerkraftmodifikator wurde aktualisiert und akzeptiert nun die vertikale oder horizontale Ausrichtung. Zeilen, Spalten und Stapel wurden aktualisiert, um benutzerdefinierte fortlaufende Ausrichtungen zu unterstützen. (Ib0728)
Die Ausrichtung kann mit beliebigen Werten instanziiert werden. 1D-Ausrichtungen wurden hinzugefügt. (Ia0c05)
EdgeInsets wurde in InnerPadding umbenannt. Der Parameter innerPadding von Material Buttons wurde in paddding umbenannt. (I66165)
„alignToSiblings“ akzeptiert jetzt „Measured“ anstelle von „Placeable“. (I5788d)
Intrinsische Messungen wurden um Modifikatoren für die Größenanpassung ergänzt und die Komponenten, die diesem Zweck dienen, wurden eingestellt. (I8295d)
Unterstützung für die Anpassung der Abmessungen untergeordneter Elemente von ConstraintLayout (Idb1a5) wurde hinzugefügt.
Die eingestellten zusammensetzbaren Funktionen „Umbrechen“ und „Zentrieren“ wurden entfernt. (I29e23)
LayoutModifier2 wurde hinzugefügt, ein neues API zum Definieren von Layoutmodifikatoren. eingestellter LayoutModifier (If32ac)
RowScope- und ColumnScope-Mitglieder sind jetzt außerhalb von Zeile und Spalte zugänglich. (I3a641)
Der Container wurde verworfen. Verwenden Sie stattdessen Box. (I675ce, b/151407926)
Der LayoutOffset-Modifikator für die Versatz der Layoutposition wurde hinzugefügt (I0b8a3).
Erste Unterstützung für Rtl im Compose-Layout (Ia5519)
LayoutAlign wurde aktualisiert, sodass der verfügbare Platz nicht mehr ausgefüllt wird (I2b14f).
Das zusammensetzbare Seitenverhältnis wurde zugunsten des Modifikators entfernt. Gelöscht Veraltete FlexColumn, FlexRow-Zusammensetzbare Funktionen und Abstandsmodifikator (Iec8a7)
Der LayoutInflexible-Modifikator für Zeile und Spalte wurde entfernt (I0d820).
Implementieren Sie Ziehpunkte zum Ziehen, um die Auswahl für das Textfeld zu ändern. (I27032)
Implementiert „LongPressAndDrag“ für die Textfeldauswahl. (I17919)
Fehlerkorrekturen
- FocusModifier wird zugunsten von Modifier.focus, Modifier.focusRequester und Modifier.focusObserver eingestellt. FocusState und FocusdetailState wurden zugunsten von FocusState2 eingestellt (I46919, b/160822875, b/160922136).
runOnIdleCompose
umbenannt inrunOnIdle
(I83607)- Mehrere Test-APIs wurden umbenannt, um die Intuitivität zu verbessern. Alle Die APIs „findXYZ“ wurden in „onNodeXYZ“ umbenannt. Alle doXYZ APIs wurden umbenannt in PerformXYZ. (I7f164)
- Entfernt zuvor verworfenes Modifier.ripple. „Anklickbar“ verwendet jetzt Ripple als Standardanzeige (wenn Sie in Ihrer Anwendung ein MaterialTheme {} festgelegt haben). In den meisten Fällen können Sie also einfach „anklickbar“ verwenden und die Ripple-Anzeige kostenlos erhalten. Wenn Sie den Parameter color / size / bounded für die Verbreitung anpassen müssen, können Sie manuell eine RippleIndication erstellen und als Indication-Parameter an anklickbar übergeben. (I663b2, b/155375067)
- Veraltete APIs für Größentests wurden entfernt. (Iba0a0)
- Experimentelle LayoutNode-API erstellt (I4f2e9)
- Version 1 der Sperre der Scroll-Ausrichtung ist in Compose implementiert. (I1ce7a, b/150289741)
- Pop-ups, Dialogfelder und Menüs übernehmen jetzt das kontextbezogene MaterialTheme (Ia3665, b/156527485).
- Der Layout-Richtungsparameter wurde aus dem Messblock der Layout()-Funktion entfernt. Die Layoutrichtung ist jedoch innerhalb des Callbacks über das Messungsbereichsobjekt verfügbar (Ic7d9d).
- Add AbsoluteArrangement – ermöglicht die Anordnung der untergeordneten Elemente innerhalb der Zeile ohne automatische Spiegelung in RTL (I3a1df)
- Die Anmerkung „@Untracked“ wurde eingestellt. Durch @ComposableContract(tracked=false) ersetzen (Id211e)
- Vor dieser Änderung hat das Compiler-Plug-in Aufrufe an Konstruktoren innerhalb einer @Composable-Funktion nicht triviale abgefangen, wenn ein (I5205a, b/158123804) vorhanden war.
- Fügen Sie eine zusammensetzbare Funktion
viewModel()
hinzu, um ViewModel ähnlich wie in Activity oder Fragment (I5fdd1) zu erstellen oder bereits erstellte ViewModel-Modelle zu erstellen. Refaktorierte Radiusklasse zu Inline-Klasse. Companion-Erstellung entfernt zugunsten des Funktionskonstruktors mit Standardparameter für den Umkreis der Y-Achse mit denen der obligatorischen x-axis radius.
DrawScope.drawRoundRect für die Datenaufnahme aktualisiert nur einen Radius-Parameter statt zwei separater Gleitkommawerte für den Radius entlang von x und y Achse (I46d1b)
Verwendung der Px-Klasse in verschiedenen Erstellen von Klassen als Teil des großen Refaktorierungsaufwand, nur auf Dp zurückzugreifen und primitive Typen für Pixelparameter. Vollständige Px-Klasse gelöscht (I3ff33)
Verwendung der Px-Klasse in verschiedenen Erstellen von Klassen als Teil des großen Refaktorierungsaufwand, nur auf Dp zurückzugreifen und primitive Typen für Pixelparameter (I086f4)
Verwendung der Px-Klasse in verschiedenen Erstellen von Klassen als Teil des großen Refaktorierungsaufwand, nur auf Dp zurückzugreifen und primitive Typen für Pixelparameter (Id3434)
Verwendung der Px-Klasse in verschiedenen Erstellen von Klassen als Teil des großen Refaktorierungsaufwand, nur auf Dp zurückzugreifen und primitive Typen für Pixelparameter (I97a5a)
Der Cursor von TextField blinkt (Id10a7).
Bei Teilgesten muss nicht mehr GestenToken (Id7ae5)
Verwendung der Px-Klasse in verschiedenen Erstellen von Klassen als Teil des großen Refaktorierungsaufwand, nur auf Dp zurückzugreifen und primitive Typen für Pixelparameter (I57bff)
„modifier.semantics“ wurde nicht mehr eingestellt, um die Verwendung von übergeordneten Komponenten zu ermöglichen. (I4cfdc)
Benennen Sie AnnotatedString.Builder.addAnnotationString in addStringAnnotation um. (I5059e)
Ausrichtungs-API wurde aktualisiert und Unterstützung für die absolute Ausrichtung hinzugefügt (die im Rtl-Kontext nicht automatisch gespiegelt wird) (I38cd3).
Untergeordnete Layout- und LayoutModifier-Elemente können mit einer anderen Layout-Richtung gemessen werden. (Ibd731)
Zusätzliches optionales Rechteck einfügen -Parameter zu ImagePainter, damit dieser Zeichnen eines Unterabschnitts des zugrunde liegenden Bild-Assets (I0ea9e)
Absturz in AdapterList beim Entfernen von Elementen behoben (Ic64b0, b/153195921)
Wir haben geändert, wie das erste Layout gemessen wird, das Sie im activity.setContent { }-Block einfügen. Bisher war es erforderlich, den gesamten Bildschirm der Aktivität auszufüllen. Jetzt verhält es sich so, als würden Sie Ihr Layout in einem Stack platzieren: Es kann kleiner als ein Bildschirm sein und wird oben links positioniert. Wenn Sie das bisherige Verhalten verwenden möchten, können Sie Modifier.fillMaxSize() auf Ihr Layout anwenden. (Ie88a7, b/153453714)
Das Modul ui-text-compose wurde in ui-text umbenannt. UI-Text enthält jetzt zusammensetzbare Funktionen in CoreText und CoreTextField (Ib7d47).
Modul ui-text wurde in ui-text-core umbenannt (I57dec).
ui-framework/CoreText und CoreTextField-Zusammensetzbare Funktionen verschoben nach ui-text-compose verwenden. Sie können ui-text-compose in Ihr Projekt arbeiten. (I32042)
runOnIdleCompose
undrunOnUiThread
sind jetzt globale Funktionen anstelle von Methoden in ComposeTestRule. (Icbe8f)[Mutable]Operatoren für Bevollmächtigte von Statuseigenschaften wurden in Erweiterungen verschoben zur Unterstützung von Optimierungen für Kotlin 1.4-Property-Delegationen. Aufrufer müssen Folgendes hinzufügen: um
by state { ... }
oderby mutableStateOf(...)
weiterhin zu verwenden. (I5312c)„DawLayerModifier“ und „drawLayer()“ sind jetzt standardmäßig „clipToBounds“. und „clipToOutline“ auf „false“. (I0eb8b, b/152810850)
LayoutResult wurde in MeasureResult umbenannt. (Id8c68)
Veraltete zusammensetzbare Funktion aus dem Center. Er sollte entweder durch den Modifikator „LayoutSize.Fill + LayoutAlign.Center“ oder durch eine der zusammensetzbaren Funktionen „Box“ oder „Stack“ mit entsprechenden angewendeten Modifikatoren ersetzt werden (Idf5e0).
LayoutFlexible wurde in LayoutWeight umbenannt. Zum Ausfüllen muss enger Parameter umbenannt werden. (If4738)
DrawVector wurde von einem regulären zusammensetzbare Funktion, mit der eine ModifierdrawVector() zurückgegeben wird, die zeichnet den Vektor als Hintergrund für ein Layout. (I7b8e0)
Zusammensetzbare Funktion „Clip“ durch Modifikator ersetzen drawClip() „DawClipToBounds“ ist ein praktischer Modifikator, zu verwenden, wenn Sie nur an die Ebenengrenzen kürzen müssen in einer rechteckigen Form. (If28eb)
Die zusammensetzbare Funktion „DrawShadow“ wurde durch „drawShadow()“ ersetzt Modifikator. Schatten werden jetzt in LayerModifier gezeichnet. (I0317a)
androidx.compose.ViewComposer wurde nach androidx.ui.node.UiComposer verschoben „androidx.compose.Emittable“ wurde entfernt. Er war redundant mit ComponentNode. „androidx.compose.ViewAdapters“ wurde entfernt. Sie werden nicht mehr unterstützt. Compose.composeInto wurde eingestellt. Verwende stattdessen
setContent
odersetViewContent
. „Compose.disposeComposition“ wurde eingestellt. Verwenden Sie stattdessen die Methodedispose
für dieComposition
, die vonsetContent
zurückgegeben wird. 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 (Idef00) umbenannt.Eingestellte Zusammensetzbare Funktion. Er kann entweder mit dem LayoutAlign-Modifikator oder durch die zusammensetzbare Funktion "Stack" (Ib237f) ersetzt werden.
Die Layoutrichtung wird vom übergeordneten Layoutknoten auf die untergeordneten Elemente übertragen. Modifikator für Layoutrichtung wurde hinzugefügt. (I3d955)
Benennen Sie Painter.toModifier in Painter.asModifier um, da der neu erstellte Modifier einen Verweis auf den ursprünglichen Painter hat, der von mehreren Modifier-Instanzen gemeinsam genutzt werden kann (I7195b).
Unterstützung von rechts nach links im LayoutPadding-Modifikator (I9e8da)
Density und DensityScope wurden in einer Schnittstelle zusammengeführt. Anstelle von „AmbientDensity()“ können Sie jetzt „DensityAmbient.current“ verwenden. Anstelle von mitDensity(density) nur mit(density) (I11cb1)
ValueHolder-Klasse entfernt. Umstrukturiert die Klassen animateValue und animateFloat in Macht das Feld für den Animationswert abstrakt, sodass Unterklassen die Wertaktualisierung beobachten können.
- Es wurden Modellklassen für animateValue, animateFloat usw. hinzugefügt.
- Es wurde ein neuer Satz einfacher @Composable-API zur Animation zwischen Werten hinzugefügt.
- (I79530)
Nicht abwärtskompatible Änderungen an der Ambients API. Weitere Informationen finden Sie in der Protokoll- und
Ambient<T>
-Dokumentation (I4c7ee, b/143769776).Die von Placeable#get(AlignmentLine) zurückgegebenen Int-Positionen der Ausrichtungszeile sind jetzt nicht null. Wenn die abgefragte Ausrichtungszeile fehlt, wird „AlignLine.Unspecific“ zurückgegeben. (I896c5, b/158134875)
Ein ConstraintLayout-Fehler, der bei Neuzusammensetzungen zu Abstürzen führte, wurde behoben. (Ibee5a, b/158164341)
Die nachgestellte Lambda API mit Einschränkungen wurde geändert. Jetzt hat es anstelle von zwei Parametern einen Empfängerbereich, der zusätzlich zu den Einschränkungen und „layoutDirection“ die Eigenschaften „minWidth“, „maxWidth“, „minHeight“ und „maxHeight“ in dp bereitstellt (I91b9a, b/149979702).
LayoutModifier2 wurde in LayoutModifier umbenannt. (Id29f3)
Die Funktionen für intrinsische Messungen in Layout und LayoutModifier2 verfügen jetzt über einen IntrinsicMeasureScope-Empfänger, der nun eine intrinsische Abfrage-API mit implizit übernommener Layout-Richtung bereitstellt. (ID9945)
LayoutDirectionAmbient wurde eingestellt. Um die durch die Sprache definierte Layoutrichtung zu lesen, verwenden Sie „localLayoutDirection“ in ConfigurationAmbient (I851b1).
PositionInParent und boundsInParent für LayoutCoordinates wurden hinzugefügt. (Icacdd, b/152735784)
Die zusammensetzbare Funktion „ParentData“ wurde eingestellt. Sie sollten entweder einen Modifizierer erstellen, mit dem die ParentDataModifier-Schnittstelle implementiert wird, oder Sie verwenden den LayoutTag-Modifikator, wenn Sie lediglich untergeordnete Layoutelemente taggen müssen, damit sie im Measure-Block erkannt werden. (I51368, b/150953183)
OnPositionedModifier und OnChildPositionedModifier hinzufügen um die zusammensetzbare Funktion „OnPositioned“ und „OnChildPositioned“ Funktionen. (I2ec8f)
Negativer Abstand in LayoutPadding nicht zulassen Für negative Positions-Offsets sollte stattdessen LayoutOffset verwendet werden. (Ifb5b1)
WithConstraints hat den LayoutDirection-Parameter erhalten (I6d6f7)
Das Flag
ComposeFlags.COMPOSER_PARAM
wurde auftrue
aktualisiert. Dadurch wird die Strategie zur Codegenerierung für das Editor-Plug-in geändert. Auf übergeordneter Ebene werden @Composable-Funktionen mit einem zusätzlichen synthetischen Parameter generiert, der an nachfolgende @Composable-Aufrufe übergeben wird, damit die Laufzeit die Ausführung ordnungsgemäß verwalten kann. Dies ist eine erhebliche funktionsgefährdende Änderung, die jedoch bei jeder genehmigten Verwendung des Editors auf Quellebene die Kompatibilität beibehalten sollte. (I7971c)LayoutCoordinates geändert, um providedAlignmentLines zu erstellen ein Set anstelle einer Karte und haben LayoutCoordinates die Implementierung des get() verwenden, um einen Wert abzurufen. Dadurch wird es einfacher, für Modifikatoren, um einen oder mehrere Werte des Datasets ohne und erstellen für jeden Modifikator eine neue Sammlung. (I0245a)
LayoutCoordinates verfügt nicht mehr über eine Positionseigenschaft. Die ist bei der Berücksichtigung von LayoutModifiers, Rotation oder Skalierung. Stattdessen sollten Entwickler das Element „parentCoordinates“ verwenden undchildToLocal(), um die Transformation aus einem LayoutCoordinate an ein anderes gesendet.
LayoutCoordinates verwendet IntPxSize für die Größeneigenschaft anstelle von PxSize. Layouts verwenden ganzzahlige Pixelgrößen für Layouts, sodass alle Layoutgrößen sollten Ganzzahlen und keine Gleitkommawerte verwendet werden. (I9367b)
Verbesserungen an der API-Oberfläche von Einschränkungen (I0fd15)
TextDirection.Content wurde hinzugefügt (I48f36)
Verschieben Sie das Symbolleisten-Menü an die gewünschte Position, um die Optionen zum Kopieren, Ausschneiden und Einfügen richtig anzuzeigen. (ID3955)
Fügen Sie FloatingToolbar für die TextField-Auswahl hinzu. (Ie8b07)
TextDirectionAlgorithm wurde in TextDirection (I75ce8) umbenannt
TextDirection wurde in ResolvedTextDirection umbenannt (I3ff38).
HapticFeedback zur Textfeldauswahl hinzufügen. (I58050)
Fügen Sie der TextField-Auswahl Methoden zum Kopieren, Ausschneiden und Einfügen hinzu. (Idb70b)
TestTag und Semantik wurden gelöscht. Verwenden Sie stattdessen Modifier.testTag und Modifier.semantics (I15ff0, b/158841414).
Der Paketname für Locale und LocaleList wurde geändert von androidx.ui.text zu androidx.ui.intl (I8132c)
API-Änderung:
AnnotatedString(builder: Builder)
wurde inannotatedString(builder: Builder)
umbenannt. (Ia6377)API-Änderung:
AnnotatedString.Item
wurde inAnnotatedString.Range
umbenannt. (I2d44d)Symbolleiste für textbezogene Vorgänge hinzufügen. (I49d53)
Der neue LifecycleOwnerAmbient ist jetzt verfügbar. Jetzt sollte eine Aktivität, die du mit der Benutzeroberfläche zum Schreiben verwendest, androidx.activity.ComponentActivity (oder AppCompatActivity) erweitern. „setContent“ für „android.app.Activity“ wurde eingestellt (Idb25a, b/153141084)
Paketname „ui-android-text“ (androidx.text) ersetzt durch androidx.ui.text.platform zu platzieren, um sie an die Androidx-Richtlinie anzupassen. (I42711)