Grundlagen verfassen

Schreiben Sie Jetpack Compose-Anwendungen mit gebrauchsfertigen Bausteinen und erweitern Sie die Grundlage für den Aufbau Ihrer eigenen Designsysteme.
Letzte Aktualisierung Stabile Version Releasekandidat Beta-Ausgabe Alpha-Release
24. Juli 2024 1.6.8 - 1.7.0-beta06 -

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.

GruppeBeschreibung
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.foundationSchreiben Sie Jetpack Compose-Anwendungen mit gebrauchsfertigen Bausteinen und erweitern Sie die Grundlage für den Aufbau Ihrer eigenen Designsysteme.
compose.materialJetpack 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ügenJetpack 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.runtimeGrundlegende Bausteine des Programmiermodells und der Statusverwaltung von Compose sowie die zentrale Laufzeit für das Compose-Compiler-Plug-in.
compose.uiGrundlegende 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:

Groovig

dependencies {
    implementation "androidx.compose.foundation:foundation:1.6.8"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.14"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.foundation:foundation:1.6.8")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.14"
    }

    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.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung. .

Version 1.7

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ür LazyLists. Dazu gehört auch die Unterstützung für den Vorabruf von Elementen in verschachtelten LazyGrids. Ähnlich wie bei LazyListPrefetchStrategy werden die ersten beiden verschachtelten Elemente jedes Rasters standardmäßig vorab abgerufen. Dies kann jedoch über die neuen LazyGridPrefetchStrategy(nestedPrefetchItemCount)- und LazyListPrefetchStrategy#onNestedPrefetch-APIs konfiguriert werden. (I591c4)
  • SemanticsProperties.Editable wurde in IsEditable umbenannt und SemanticsPropertyReceiver.editable wird in einen Wert isEditable geändert. Die Eigenschaft ist jetzt ein boolescher Wert und wird immer durch Textfelder angegeben. (I8acd8)
  • Standardwerte für basicMarquee wurden in das Objekt MarqueeDefaults verschoben. (I12ff6)
  • Der Parameter basicMarquee delayMillis wurde in repeatDelayMillis umbenannt. (I12ff6)
  • Update API zum Gestalten der Links: TextLinkStyles wurde in TextStyle verschoben und TextDefaults aus Material entfernt (I5477b)

Fehlerkorrekturen

  • LayoutCoordinates.introducesFrameOfReference wurde in LayoutCoordinates.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 Klasse TextStyle entfernt. Stattdessen ist TextLinkStyles Teil des LinkAnntation-Konstruktors und der AnnotatedString.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 jetzt hasEqualAnnotations. (I685c0)
  • Die API zum Erhalten von Material-Links im Text wurde aktualisiert. Insbesondere wurden die Methoden aus dem TextDefaults zum Erstellen von themenbezogenen LinkAnnotations und zum Parsen von HTML mit themenbezogenen Links entfernt. Stattdessen wurde eine TextLinkStyles-Klasse hinzugefügt, mit der die Links als Parameter für die zusammensetzbare Textfunktion gestaltet werden können. (I31b93)
  • onDragStarted und onDragStopped 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 von PageSize 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 und SelectionContainer 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 in introducesFrameOfReference umbenannt. Beachten Sie, dass dies jetzt den umgekehrten Effekt hat. Das bedeutet, dass die meisten LayoutCoordinates 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 Sie positionInLocalFrameOfReference(...). Oder positionInLocalLookaheadFrameOfReference von einem LookaheadScope. (Ifc5f7)
  • onClicked wurde in LinkInteractionListener in onClick 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 in isIncluded um. Legen Sie fest, dass der Rückgabetyp Paragraph/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 von AnchoredDraggableState ä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. ein LazyColumn, das verschachtelte LazyRows rendert). Durch diese Änderung werden Frame-Einbrüche bei diesen LazyLists voraussichtlich beim Scrollen reduziert. Standardmäßig werden die ersten beiden verschachtelten Elemente vorab abgerufen. Dieses Verhalten kann jedoch über die neuen APIs LazyLayoutPrefetchStrategy(nestedPrefetchItemCount) und LazyListPrefetchStrategy#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 einer LinkAnnotation und zum Parsen von HTML-getaggten Strings enthält, die MaterialTheme 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 und LazyHorizontalGrid hinzugefügt. Bisher war es möglich, den Modifier.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 namens Modifier.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 und LazyHorizontalStaggeredGrid hinzugefügt. Bisher war es möglich, den Modifier.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 namens Modifier.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örigen LocalContextMenuTheme 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ür BasicTextField. (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 von Placeable.PlacementScope.withDirectManipulationPlacement platziert wurden. Ebenso kann ein Layout, bei dem sich die Position seiner untergeordneten Elemente häufig ändert, diese nun mithilfe von withDirectManipulationPlacement platzieren, wie z. B. „Scrollen“, das standardmäßig implementiert ist. Auf diese Weise sind die auf approachLayout 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ür LazyStaggeredGrid vor. Für jeden Measure-Pass kann der Client nun durch Aufrufen von requestScrollToItem 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 von requestScrollToPage 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ür LazyGrids eingeführt. Für jeden Measure-Pass kann der Client nun durch Aufrufen von requestScrollToItem 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 ein AnnotatedString mit einer LinkAnnotation, die Ihrem Link entspricht, und übergeben Sie dieses AnnotatedString an die zusammensetzbare Text-Funktion (I34d4b, b/323346994).
  • UrlAnnotation wurde verworfen. Verwenden Sie stattdessen LinkAnnotation.Url. Wenn Sie Material-Designs verwenden, erstellen Sie mit einem TextDefaults-Objekt die Anmerkung mit angewendeten Material-Designs (I8d180, b/323346545).
  • String.parseAsHtml umbenannt in AnnotatedString.Companion.fromHtml (I43dcd)
  • Stilargumente (linkStyle, focusedLinkStyle, hoveredLinkStyle) und ein Linkinteraktions-Listener für die parseAsHtml-Methode hinzugefügt. Wenn der HTML-getaggte String mit <a>-Tags geparst wird, erstellt die Methode für jedes dieser Tags ein LinkAnnotation.Url und übergibt die Stilobjekte und den Link-Interaktions-Listener an jede Annotation. (I7c977)
  • LinkAnnotation verwendet jetzt die zustandsbasierten Stilargumente und einen LinkInteractionListener. Fügen Sie diese Annotation zum AnnotatedString hinzu, um einen Hyperlink zu erhalten. Durch die Übergabe von focusedState und/oder hoveredState 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 wurde textObfuscationCharacter-Parameter hinzugefügt, der steuert, welches Zeichen bei der Verschleierung des Inhalts verwendet werden soll. (I0588b)
  • NestedScroll-Quellen „Ziehen und Ziehen“ werden durch UserInput und SideEffect 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 durch TextFieldBuffer.originalText und TextFieldBuffer.originalSelection ersetzt. (I2c7d6)
  • Für ImeOptions.hintLocales können keine Nullwerte mehr eingegeben werden. Wenn Sie eine leere Gebietsschemaliste übergeben möchten, verwenden Sie LocaleList.Empty. (Ic5bc4)
  • getOffsetFractionForPage wurde in getOffsetDistanceInPages umbenannt. (Ia05e2)

Fehlerkorrekturen

  • Wenn InputTransformations mit next zusammengeführt werden, werden die KeyboardOptions jetzt ordnungsgemäß durch einzelne Optionen mit der neuen KeyboardOptions.merge-Methode zusammengeführt. (Ie5304, b/295951492)
  • targetValue von AnchoredDraggableState berücksichtigt jetzt keine Positionsgrenzwerte mehr. Er hat jetzt einen impliziten Schwellenwert von 50%, was bedeutet, dass sich targetValue 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 und LazyRow hinzugefügt. Bisher war es möglich, den Modifier.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 namens Modifier.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 sie eine LazyListState.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 in AnnotatedString. Beachten Sie, dass nicht alle Tags unterstützt werden. Zum Beispiel können Sie noch keine Aufzählungslisten anzeigen. (I84d3d)
  • Mithilfe der offiziellen Android API (ScrollCaptureCallback) wurde eine experimentelle Unterstützung für lange Screenshots in Scroll-Containern vom Typ „Compose“ implementiert. Dies ist eine experimentelle Funktion, die möglicherweise nicht alle Fälle korrekt verarbeitet. Aus diesem Grund ist sie derzeit standardmäßig deaktiviert. Legen Sie zum Aktivieren das Flag ComposeFeatureFlag_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 von GraphicsLayer-Instanzen zu bieten und intrinsische Renderingfunktionen zu unterstützen, ohne sich mit Composable-Implementierungen koordinieren zu müssen, um GraphicsLayer-Modifikatorinstanzen anzugeben.

API-Änderungen

  • Alle KeyboardOptions-Parameter haben jetzt standardmäßig einen nicht angegebenen Wert. Methode KeyboardOptions.merge wurde hinzugefügt.
  • KeyboardOptions.autoCorrect wurde in autoCorrectEnabled umbenannt und dafür gesorgt, dass Nullwerte zulässig sind, wobei null bedeutet, dass kein Wert angegeben wurde. (Ia8ba0, b/295951492)
  • outOfBoundsPageCount wurde in beyondViewportPageCount umbenannt. (I129c6)
  • fun ClipEntry.getMetadata()“ wird in „val ClipEntry.clipMetadata“ geändert. (I50155)
  • TextFieldState.valueAsFlow() wurde entfernt. snapshotFlow { state.text } oder snapshotFlow { TextFieldCharSequence(state.text, state.selection) } bevorzugen (I7d629)
  • InputTransformation.transformInput-Parameter neu organisiert. „originalValue: TextFieldCharSequence“ wurde entfernt. Stattdessen trägt TextFieldBuffer diesen Wert jetzt mit demselben Namen. Außerdem wurde der Parameter valueWithChanges: TextFieldBuffer entfernt. TextFieldBuffer ist jetzt der Empfängerbereich der Funktion. (I919cc)
  • Die Variante „BasicTextField(state)“ und „BasicSecureTextField“ verwenden jetzt KeyboardActionHandler anstelle von KeyboardActions, 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 in showKeyboardOnFocus umbenannt. (Ib4b7a, b/295951492)
  • Parameter hintMediaTypes wurde aus Modifier.contentReceiver entfernt. Entwicklern wurde bereits empfohlen, den Medientyp des empfangenen TransferableContent zu prüfen, da er möglicherweise nicht mit dem konfigurierten hintMediaTypes kompatibel ist. (I82f99)
  • Die Parameter von BasicSecureTextField wurden neu angeordnet. Die Parameter keyboardType und imeAction wurden zugunsten der vollständigen KeyboardOptions-Klasse entfernt, wobei die gleichen Standardwerte für BasicSecureTextField beibehalten wurden. Außerdem wurde der Parameter scrollState entfernt. (Ibbfa9)
  • Der Typ von „TextFieldState.text“ wurde von „TextFieldCharSequence“ in „CharSequence“ geändert. Daher wurden TextFieldState.selection: TextRange und TextFieldState.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 und ClipboardManager.hasClip wurden entfernt. Verwende clipEntry.getMetadata(), um die Metadaten des aktuellen Clipeintrags zu lesen. Prüfen Sie auch das Ergebnis von ClipboardManager.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 die Modifier.receiveContent-Überlastung, die eine Lambda-Funktion annimmt, entfernt, da ReceiveContentListener jetzt eine Funktionsschnittstelle ist.
  • Modifier.receiveContent wird in Modifier.contentReceiver umbenannt. (I1e6af)
  • TransferableContent.consumeEach wurde in TransferableContent.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 von Modifier.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 eines anchoredDrag-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 Argument onLinkClicked wurde entfernt. In Zukunft wird eine Ersatz-API für die Unterstützung von Hyperlinks folgen. (I107d5)
  • Codepoints-bezogene Methoden und Eigenschaften unter TextFieldState und TextFieldBuffer wurden entfernt. Außerdem wurden die inChars-Suffixe aus den verbleibenden APIs zur Auswahl und Zusammensetzung entfernt. (Ief7ce)
  • Der currentValue von AnchoredDraggable wird jetzt aktualisiert, wenn er durch einen Ankerpunkt bewegt wird. Verwende settledValue, um die vorherige currentValue-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() und fitPrioritizingHeight() (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 zu KeyboardOptions hinzugefügt, um TextFields die Möglichkeit zu geben, IMEs mit bestimmten Sprachen als Hinweis auf eine bevorzugte Sprache anzugeben. (Id18c2)
  • Die experimentellen BasicTextField2- und BasicSecureTextField-Überlastungen, für die die Parameter value: String und onValueChange: () -> String erforderlich waren, wurden entfernt. (I568b4)
  • Fügen Sie InputTransformation eine optionale applySemantics-Funktion hinzu, um die Semantik der BasicTextField2 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 wird in BasicTextField umbenannt. (IE5713)
  • FocusRequester.createRefs ist jetzt stabil (I4d92c, b/261436820).
  • Einführung von DelegatableNode.scrollIntoView(), damit Modifikatorknoten scrollIntoView-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 Beschränkungen für maximale Breite und Höhe, um in einer bestimmten Position zu bleiben. Elemente, die die maximale Breite/Höhe überschreiten, wandern möglicherweise in die nächste Zeile oder werden aufgrund der Überlaufeinstellungen weggelassen. (Id13f8, b/292114798)

Fehlerkorrekturen

  • Es wurde ein Fehler behoben, bei dem das Umschalten der enabled- oder readOnly-Attribute von TextField 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 aktuellen LayoutCoordinates einer Modifier.Node abzurufen, ohne onPlaced überschreiben und die Koordinaten selbst in einer Property speichern zu müssen. (Ia8657)
  • DelegatableNode.currentLayoutCoordinates wurde eingeführt, um den aktuellen LayoutCoordinates einer Modifier.Node abzurufen, ohne onPlaced überschreiben und die Koordinaten selbst in einer Property speichern zu müssen. (Iaebaa)
  • Leistungsoptimierungen in DraggableAnchors werden von AnchoredDraggable verwendet. (I89cff)
  • BasicTextField2 und zugehörige APIs unter dem Paket androidx.compose.foundation.text2 werden nach androidx.compose.foundation.text verschoben. (I9f635)
  • BasicTextField2 akzeptiert keinen CodepointTransformation-Parameter mehr. Verwende BasicSecureTextField oder OutputTransformation. (Id34ff)
  • Es wurde eine Methode hinzugefügt, mit der nur die Annotationen von zwei AnnotatedStrings verglichen werden können. (I32659)
  • Jetzt neu: ContextualFlowRow und erweiterte FlowRow/Column mit MaxLines und Overflow. Wir freuen uns, Verbesserungen an den experimentellen FlowRow und FlowColumn ankündigen zu können, die jetzt neben der Einführung von ContextualFlowRow und ContextualFlowColumn auch maxLines und Überlauf-Unterstützung umfassen. Dieses Update wurde entwickelt, um Komponenten für eine optimale Leistung bereitzustellen, wobei ContextualFlow* perfekt für eine große Anzahl von Artikeln mit einer kleinen maxLines-Konfiguration und dynamischer +N-Schaltflächen für die Anzeige weiterer Schaltflächen und FlowRow und FlowColumn ideal für eine kleine Anzahl von Artikeln, also weniger als 100 Elemente, geeignet ist. Wichtig: Wenn Sie das bestehende Verhalten in FlowRow oder FlowColumn beibehalten möchten, bei dem alle Elemente unabhängig davon, ob sie zum Maximum der Querachse passen, zusammengehören, setzen Sie overflow während der Initialisierung auf FlowRowOverflow.Visible oder FlowColumnOverflow.Visible. Sehen Sie sich die Beispiele für diese neuen Funktionen in ContextualFlowRowSample und FlowRowSample 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 und PagerState 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 in BasicTextField2 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 durch TargetedFlingBehavior, 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. Dieses FlingBehavior-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ähigeren Indication-Implementierungen im Vergleich zur vorherigen (jetzt verworfenen) rememberUpdatedInstance API. Informationen zur Migration findest du unter developer.android.com.
  • clickable / combinedClickable / selectable / toggleable akzeptiert jetzt einen MutableInteractionSource-Parameter, für den Nullwerte zulässig sind. Wenn der Wert null ist und die angegebene Indication ein IndicationNodeFactory ist, kann die Indication nur bei Bedarf verzögert erstellt werden, wodurch die Leistung verbessert wird. Wenn du nicht aufhebst und MutableInteractionSource verwendest, wird empfohlen, null zu übergeben.

API-Änderungen

  • Führen Sie DecayAnimation in AnchoredDraggable ein. Durch diese Änderung wird AnchoredDraggable ein decayAnimationSpec-Parameter hinzugefügt, der die Verwendung von Abklinganimationen ermöglicht, wenn sich der Anker auf einen der Anker befindet. Die Änderung umfasst auch die Umbenennung der vorhandenen animationSpec in snapAnimationSpec, 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 mit BasicTextField sein und das Verhalten sollte produktionsreif sein. Die API ist vorerst jedoch noch experimentell. Vor der Stabilisierung wird es in BasicTextField umbenannt und in dasselbe Paket verschoben.
  • Der erste Entwurf der OutputTransformation API für BasicTextField2 wurde eingeführt. Diese API ersetzt die meisten Anwendungsfälle von VisualTransformation in der alten BasicTextField. 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 in BasicTextField2 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 Standardverhalten BasicTextField bei der Anforderung einer fokussierten Tastaturtastatur deaktivieren.
  • TextInputService und LocalTextInputService wurden verworfen. Verwende stattdessen PlatformTextInputModifierNode 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 neue IndicationNodeFactory API verwenden.

Fehlerkorrekturen

  • BasicTextField validiert jetzt eine kleine Auswahl von Offset-Zuordnungen vorab, wenn VisualTransformation ü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- oder readOnly-Attribute von TextField 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

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 soll Modifier.swipeable ersetzen. In der Migrationsanleitung erfahren Sie, wie Sie es verwenden und von Modifier.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 und AndroidEmbeddedExternalSurface wurden hinzugefügt, um das Hinzufügen von oberflächengesteuerten Komponenten im Editor zu vereinfachen
  • Verschiedene API-Änderungen und ‐Verbesserungen in Pager und snapFlingBehaviour
  • 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 mit object: 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() und LookaheadScope 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 empfangende DragAndDropTarget und hat eine Lambda-Funktion, um eine Drag-and-drop-Sitzung zu aktivieren. Es gibt jetzt zwei Factory-Funktionen für eine DragAndDropModifierNode. 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 Einheit maximumFlingVelocity zu machen. (I8adc7)
  • onDragAndDropStart in DragAndDropModifierNode Factory wurde in acceptDragAndDropTransfer umbenannt.

    acceptsDragAndDropTransfer wurde dem dragAndDropTarget Modifier hinzugefügt, um es per Drag-and-drop zu akzeptieren. Diese Lambda-Funktion gibt ein DragAndDropTarget, 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 in AnchoredDraggable 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ür DragAndDropInfo wurde entfernt und akzeptiert jetzt Parameter für die Lambda-Funktion "transferData", die Verzierungsgröß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 eine DragAndDropModifierNode wurde in onDragAndDropStart umbenannt, um besser zu kommunizieren, dass die angegebene DragAndDropTarget nur für eine bestimmte Drag-and-drop-Sitzung gültig ist

    DragAndDropEventType wurde entfernt (I645b1).

  • PlatformTextInputModifierNode.runTextInputSession wurde in establishTextInputSession umbenannt. (I03cd0)

  • OriginalText durch TextSubstitution ersetzen. (Ifa5a8)

  • PlatformTextInputModifierNode.textInputSession wurde in runTextInputSession umbenannt. (Ie9c6b)

  • Die untergeordneten Elemente von SubcomposeLayout (sowie darauf basierende Layouts wie LazyColumn), die zur späteren Wiederverwendung beibehalten werden, gelten als deaktiviert. Zum Testen solcher Knoten wurde eine neue assertIsDeactivated()-Test-API eingeführt. Die übrigen Test-APIs filtern deaktivierte Knoten standardmäßig heraus. (I2ef84, b/187188981)

  • Der Parameter clippingEnabled von Modifier.magnifier wurde in clip umbenannt.

  • Für den magnifierCenter-Parameter von Modifier.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 sich minWidth änderte, und minWidth geringer als die anfängliche Messungseinschränkungen maxWidth (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-Funktion onDrawDragShadow in drawDragDecoration umbenannt und bei DragAndDropInfo wurde der Größenparameter in dragDecorationSize umbenannt. (Id0e30, b/303904810)
  • Der Parameter decorationBox von BasicTextField2 wurde in decorator umbenannt. Der Typ wird ebenfalls in eine gleichwertige unterhaltsame TextFieldDecorator-Oberfläche geändert. (I23c1c)

Fehlerkorrekturen

  • Verbesserte Dokumentation zu BasicTextField bezüglich onValueChange-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 in AndroidExternalSurface umbenannt (I11680)
  • Temporäres Flag DisableNonLinearFontScalingInCompose zum Deaktivieren der nicht linearen Schriftskalierung hinzugefügt. Legen Sie DisableNonLinearFontScalingInCompose = 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 und ColorSet wurden hinzugefügt, bei denen Zuweisungen vermieden werden. (I744bd)
  • Durch diese Änderung wird shortSnapVelocityThreshold entfernt, das in ein Implementierungsdetail der Implementierung von SnapLayoutInfoProvider umgewandelt wurde. (I65f6d)
  • Fügt den dragAndDropSource-Modifikator zum Starten von Drag-and-drop-Sitzungen und dragAndDropTarget für den Empfang von Drag-and-drop-Sitzungen hinzu (Ib7828, b/286038936).
  • SnapPositionInLayout-Dokumentation und Positionsmethode aktualisieren. Stellen Sie die Positionsmethode in SnapPositionInLayout für Abstände im Inhalt vor. (Id7938, b/300116110)
  • UndoState wurde zu TextFieldState 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() und EmbeddedGraphicsSurface(). Die API ist experimentell und unterliegt Änderungen und Änderungen. (I9ddb2)
  • Modifier.magnifier() ist jetzt eine stabile API. Dazu gehört auch, dass MagnifierStyle zugunsten von Inline-Parametern im Modifikator selbst entfernt wird. (I83bec, b/298381260, b/262367109, b/261438887)

API-Änderungen

  • updateCurrentPage und updateTargetPage wurden in ScrollScope eingeführt. Dies sind die letzten Elemente, die erforderlich sind, um das animierte Scrollen durch PagerState.scroll anzupassen. (I9cad5, b/267744105, b/243786897)
  • Kompaktheitsgrad von SnapFlingBehavior entfernen. Alle Implementierungen von SnapLayoutInfoProvider haben bereits eine Möglichkeit, auf die Dichte zuzugreifen. Möglicherweise wird der Empfängerbereich entfernt, was zu einer weniger komplexen Implementierung von SnapFlingBehavior und SnapLayoutInfoProviders führt. (I153c3)
  • Weitere Modifikatoren, die als stabil gekennzeichnet sind. (I56af1, b/298046462)
  • SnapStepSize wurde aus SnapLayoutInfoProvider 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 aktuellen BasicTextField 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 und RecyclerView sind auf ViewConfiguration.ScaledMaximumFlingVelocity begrenzt. „Compose“ enthält jetzt eine eigene Version von maximumFlingVelocity, die jetzt für Draggable gilt. (Ibf974)
  • Die verworfenen Pager- und PagerState-Überlastungen wurden entfernt. (IEa07e)
  • BasicTooltipBox wurde compose.foundation hinzugefügt und PlainTooltipBox und RichTooltipBox aktualisiert, um TooltipBox mit neuen Zusammensetzbaren PlainTooltip und RichTooltip 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 aktuellen BasicTextField API. (I3f2b8)
  • GridItemSpan::currentLineSpan ist jetzt eine stabile API. (ICC29c)
  • Canvas, der contentDescription akzeptiert, ist jetzt eine stabile API. (Ib3d29)
  • viewportSize wurde in ScrollState eingeführt. Damit lässt sich die Größe von viewPort der Komponente ermitteln, die nach dem Messen ScrollState 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 stattdessen Modifier.consumeWindowInsets. (Id72bb)

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 Lambda LazyLayoutItemProvider 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, wenn readOnly 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 in Pager erhoben wurden. Außerdem wurde PageInfo eingeführt, die Informationen zu einer einzelnen gemessenen Seite in Pager. (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 und LocalSoftwareKeyboardController sind nicht mehr experimentell. LocalSoftwareKeyboardController ist jetzt auch ein richtiger CompositionLocal. (I4c364)
  • Modifier.transformable gibt jetzt im canPan-Parameter ein Schwenk-Delta an, um festzulegen, in welche Richtung das Verschieben erfolgen soll. (I692aa, b/266829800)
  • Aktualisiert den Modifikator consumeWindowInsets, um die Basisklasse AbstractComposeView 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 die Swipeable 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 wie Scrollable auf bringIntoView-Anfragen reagieren. Die Überlastung von scrollable wurde so geändert, dass eine Instanz von BringIntoViewCalculator 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 benutzerdefinierten FocusTarget 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, wenn readOnly 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 zur Modifier.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 in PagerState 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 lautet AutoboxingStateCreation. 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 dazu warning "AutoboxingStateCreation" in der build.gradle- oder build.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 Schnittstelle SensorGateway 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 mit LazyGridState 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 eine LazyGrid, 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 aus Horizontal/VerticalPager entfernen. Diese sollte bei der Erstellung des Bundesstaats angegeben werden. PagerState und rememberPagerState wurden aktualisiert, um die pageCount zu akzeptieren. (Ieb52d, b/266965072)
  • pageCount aus Horizontal/VerticalPager entfernen. Diese sollte bei der Erstellung des Bundesstaats angegeben werden. PagerState und rememberPagerState wurden aktualisiert, um die pageCount zu akzeptieren. (Ifa3cb, b/266965072)
  • Stelle shortSnapVelocityThreshold in Pagers SnapFlingBehavior vor. (I7379e, b/275579012)
  • Fügt FlowRowScope und FlowColumnScope hinzu. (I54fe2)

Fehlerkorrekturen

  • Aufrufe zum Abrufen der Semantik für Text, wenn minWidth und minHeight 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 in AnnotatedString Sek. können jetzt über Bedienungshilfen wie TalkBack 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 in FlowRow und horizontalArrangement in FlowColumn. Außerdem entfernen wir die verticalAlignment und die horizontalAlignment auf oberster Ebene in FlowRow/FlowColumn. Entwickler können stattdessen Modifier.align verwenden. Dadurch wird Verwechslungen zwischen den Namenskonventionen verticalAlignment und verticalArrangement 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. Der hoverable-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 und TextField sowie für den unteren Absatz (Absatz) hinzugefügt. Wenn „EmojiCompat“ konfiguriert ist, ist es standardmäßig aktiviert.
  • EmojiCompat kann mithilfe von PlatformParagraphStyle für einen bestimmten Text konfiguriert werden.
  • LazyStaggeredGrid(I28252) wurde vollständig unterstützt.
  • Experimentelle onHover werden zu ClickableText (I6938f) hinzugefügt
  • Einführung neuer experimenteller Überlastungen für die runComposeUiTest- und create*ComposeRule-Funktionen, die CoroutineContext-Parameter akzeptieren. Der Kontext wird für die Testzusammensetzung und alle LaunchedEffect- und rememberCoroutineScope()-Aufrufe in der Zusammensetzung verwendet. (I10614, b/265177763)
  • FlowRow und FlowColumn 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 von BasicTextField wird der Textpuffer jetzt mit demselben Codepfad wie IME-Updates und die Testfunktionen (z.B. performTextReplacement) aktualisiert.
  • Für Texttestfunktionen performTextClearance, performTextReplacement und performTextSelection wird jetzt SemanticsActions 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, dass Layout wiederverwendet wird, korrekt zu verarbeiten (z. B. als Element von LazyColumn). Das FocusTargetModifierNode-Objekt wurde korrigiert, sodass der Fokus nun korrekt zurückgesetzt wurde. (I65495, b/265201972)
  • Der BlendMode-Parameter wurde den Methoden DrawScope.drawText, Paragraph.paint und MultiParagraph.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 von ModifierNodeElement. (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 die Emoji-kompatible Integration für Text und TextField sowie für den unteren Abschnitt des Absatzes hinzugefügt. Wenn „EmojiCompat“ konfiguriert ist, ist es standardmäßig aktiviert.
  • EmojiCompat kann mithilfe von PlatformParagraphStyle für einen bestimmten Text konfiguriert werden.

API-Änderungen

  • Es wurde eine allgemeine Implementierung der PinnableContainer API hinzugefügt, die in allen LazyLayouts verwendet wird, um Elemente aufzubewahren, die die Zusammensetzung beenden, aber noch aktiv sein müssen. (If45a4)
  • PinnableContainer.PinnedHandle.unpin() wurde in release() (I4667a) umbenannt

Externer Beitrag

  • mainAxisItemSpacing-Property zu LazyListLayoutInfo, LazyGridLayoutInfo und LazyStaggeredGridItemInfo (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 zu ClickableText hinzugefügt (I6938f)
  • Einführung neuer experimenteller Überlastungen für die runComposeUiTest- und create*ComposeRule-Funktionen, die CoroutineContext-Parameter akzeptieren. Der Kontext wird für die Testzusammensetzung und alle LaunchedEffect- und rememberCoroutineScope()-Aufrufe in der Zusammensetzung verwendet. (I10614, b/265177763)

API-Änderungen

  • Führt die Pre-/Post-APIs von OverscrollEffect zu einem kombinierten Decorator zusammen applyToScroll- und applyToFling-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 und Hyphens in TextStyle 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 in TextInputSession und TextInputService 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 und FlowColumn 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

  • FocusRequesterModifierFocusRequesterNode
  • Der AndroidFont-Konstruktor mit variationSettings 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 mit Modifier.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 zu TextStyle hinzugefügt, um für Text entweder Static(default) oder Animiert zu definieren. Verwenden Sie TextMotion.Animated, wenn der Text durch eine Animation skaliert, übersetzt oder gedreht wird. (I24dd7)
  • TextFieldFocusModifier hinzufügen, um das Verhalten der Fokusnavigation für die Android-Plattform zu korrigieren (I00303)
  • Das Argument maxSize: IntSize in drawText wurde durch size: Size ersetzt, um es in andere DrawScope-Funktionen einzufügen. size ist standardmäßig auf Size.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 auf androidx.compose.foundation:1.4.0-alpha04 kann ein java.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 Ihre androidx.compose.material- und androidx.compose.material3-Bibliotheken auf die neueste Version(1.1.0-alpha04) oder führen Sie ein Downgrade von androidx.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, der withFrameNanos oder withFrameMillis 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 dem TestMonotonicFrameClock-Konstruktor und der Factory-Funktion hinzugefügt, um Code nach withFrameNanos-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 und VerticalPager vor, eine Möglichkeit, zusammensetzbare Funktionen auf Pager-Formulierungen darzustellen. 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 von PagerSnapDistance, 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. wenn ScrollableState#canScrollForward/backward beide den Wert „false“ zurückgeben). (I1a4b0, b/255554340, b/255557085)
  • ScrollableState#canScrollForward und ScrollableState#canScrollBackward wurden hinzugefügt, um abzufragen, ob eine ScrollableState 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 von ScrollableState zu gewährleisten. Damit können Nutzer darauf hinweisen, dass noch Platz zum Scrollen ist. Außerdem könnte so vermieden werden, dass Deltas zu ScrollableStates 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 von Scrollable 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 in SnapLayoutInfoProvider konsistent ist. (Ife67c)
  • EmojiCompat zu Compose hinzugefügt (Ibf6f9, b/139326806)
  • consumedWindowInsets() wurde in consumeWindowInsets() und withConsumedWindowInsets() in onConsumedWindowInsetsChanged() 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 und waitForUpOrCancellation akzeptieren jetzt PointerEventPass 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 zu BasicText und BasicTextField 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 wie forEachGesture(), aber die Loop-over-Gesten erfolgen vollständig innerhalb von AwaitPointerEventScope, sodass Ereignisse zwischen Iterationen nicht verloren gehen können.
  • forEachGesture() wurde zugunsten von awaitEachGesture() eingestellt, weil dadurch Ereignisse zwischen Gesten verloren gehen können. (Iffc3f, b/251260206)
  • WindowInsets.imeAnimationSource und WindowInsets.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 und LazyHorizontalStaggeredGrid eingeführt.
  • SnapFlingBehavior, rememberSnapFlingBehavior und andere entsprechende APIs wurden als experimentell hinzugefügt.
  • In Modifier.clickable, Modifier.toggleable und Modifier.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 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 Methode TextMeasurer.measure mit constraints: Constraints geändert, um Einschränkungen für die minimale Breite zu unterstützen. (I37530, b/242707525)
  • Modifier.withConsumedWindowInsets() wurde hinzugefügt, um WindowInsets zur Verwendung außerhalb von windowInsetsPadding zu nutzen.
  • MutableWindowInsets wurde hinzugefügt, um das Ändern von WindowInsets 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 und FocusDirection.Out wurden in FocusDirection.Enter und FocusDirection.Exit umbenannt (Ia4262, b/183746982)
  • Eine rememberSnapFlingBehavior-Überlastung wurde eingeführt, mit der das Andocken in LazyLists schnell aktiviert werden kann. (Ifb48a)
  • Die snapFlingBehavior-Factory wurde durch eine konkrete SnapFlingBehavior-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 eine LazyListState-Instanz von SnapLayoutInfoProvider erstellt, mit der ein Snap FlingBehavior für LazyLists 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 aus OverscrollEffect entfernt: Effekte, für die die Zeigerposition wichtig ist, können stattdessen Modifier.pointerInput { } in der effectModifier 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 von SnapLayoutInfoProvider 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 und LineHeightStyle entfernt. (I64bef)
  • Textfelder geben jetzt detailliertere Ausnahmen aus, wenn die von VisualTransformation bereitgestellte OffsetMapping 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 nach LayoutInfo.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 stattdessen SoftwareKeyboardController und im IME-Verwaltungscode TextInputSession. (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ür DrawScope hinzugefügt, um eine Möglichkeit zu bieten, Text mit mehreren Stilen für zusammensetzbare Funktionen und Modifikatoren zu zeichnen, die auf einem DrawScope wie Canvas und drawBehind 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 Scrollable über ein untergeordnetes Element im Fokus verfügt, wird es nun 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 von TalkBack-Links in AnnotatedStrings. (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 und LazyHorizontalGrid 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 den Modifier.scrollable-Überladungen, die diese Overscroll-Effekte akzeptieren, benutzerdefinierte Overscroll-Effekte zu ermöglichen.
  • Die experimentelle LocalOverScrollConfiguration wurde von foundation.gesture in das Foundation Package verschoben und in LocalOverscrollConfiguration 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 über LazyLayout eigene scrollbare Lazy-Layouts erstellen. (Id6fab, b/233352497)
  • Das verworfene LazyVerticalGrid-Objekt wurde aus dem androidx.compose.foundation.lazy-Paket entfernt. Die neue stabile API befindet sich in androidx.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 und MutableIntervalList hinzugefügt. Damit können einige Werte in mehreren Intervallen dargestellt werden. Das ist nützlich, wenn Sie eine eigene DSL ähnlich der von LazyColumn 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, dass ime-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 und DeleteSurroundingTextInCodePointsCommand 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 von LazyList, wenn Elemente über die sichtbaren Grenzen hinaus angeordnet werden (Ifabfb, b/184670295)
  • LineHeightBehavior wird in LineHeightStyle umbenannt.
  • LineVerticalAlignment wird in LineHeightStyle.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 in itemCount umbenannt (Id409c).
  • Pinsel wurde zu TextStyle und SpanStyle hinzugefügt, um Text mit Farbverlauf zu zeichnen. (I53869, b/187839528)
  • trimFirstLineTop, trimLastLineBottom Attribute von Aus LineHeightBehavior 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 zu TextStyle hinzugefügt und ParagraphStyle. 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 durch TextStyle(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 und trimLastLineBottom funktionieren ordnungsgemäß nur wenn includeFontPadding „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, die includeFontPadding mit dem Attribut TextStyle.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 und TextField-Clipping-Probleme beheben. (I01423, b/171394808)
  • Modifier.bringIntoViewRequester verwendet onGloballyPositioned 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önnen consume() verwenden, um die Änderung vollständig zu übernehmen. Mit isConsumed 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 ungebundene PointerInputChange 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 wie LazyColumn von LazyVerticalGrid erstellen. Die API befindet sich noch in der Anfangsphase und kann in zukünftigen Versionen geändert werden. (Iba2bc, b/166591700)
  • AndroidFont verwendet jetzt typefaceLoader 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 und LazyGridLayoutInfo haben jetzt die Felder beforeContentPadding und afterContentPadding (I3b628, b/200920410)
  • KeyboardType.Decimal wurde als Alternative zu Keyboard.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 und PointerEvent.scrollDelta sind jetzt stabile APIs (I574c5, b/225669674).
  • Die hinzugefügte temporäre Kompatibilitätskonfiguration für includeFontPadding in TextStyle/ParagraphStyle. includeFontPadding kann über TextStyle(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 von ComposeView können Entwickler die Nutzung von Android-WindowInsets deaktivieren. Dadurch können separate ComposeViews in der Hierarchie jeweils WindowInsets 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 mit FocusProperties zusammengeführt und focusProperties() verfügt jetzt über alle Funktionen von focusOrder(). FocusOrder und focusOrder() wurden verworfen. focusOrder(), der focusRequester akzeptiert, sollte durch einen focusRequester()-Modifikator in Kombination mit focusProperties() 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() und Modifier.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 und LazyHorizontalGrid sind jetzt stabil. (I307c0)
  • LazyGridItemInfo.Unknown wurde durch separate LazyGridItemInfo.UnknownRow und LazyGridItemInfo.UnknownColumn ersetzt (I56d51)
  • LazyVerticalGrid/LazyHorizontalGrid und alle zugehörigen APIs wurden in das Unterpaket .grid verschoben. Bitte aktualisieren Sie Ihre Importe von androidx.compose.foundation.lazy auf androidx.compose.foundation.lazy.grid. (I2d446, b/219942574)
  • SMS: includeFontPadding ist jetzt standardmäßig deaktiviert. Die Clip-Probleme infolge von includeFontPadding=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 der Beobachtung der Grenzen untergeordneter fokussierbarer Elemente. (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 weitergeleitet werden. Sie müssen 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 jetzt line breaking vor Elementen mit einer Spanne, die nicht in die aktuelle Linie passt. (I05c40, b/207462103)
  • excludeFromSystemGestures wurde in systemGesturesExclusion 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 und ComposableOpenTarget, 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.

    Für benutzerdefinierte Anwendungen sind die zusammensetzbaren Funktionen, die Für ComposeNode oder ReusableComposeNode 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 mit ComposableTargetMarker und dann die markierte Anmerkung werden verwendet. statt direkt ComposableTarget. Eine zusammensetzbare Anmerkung mit ComposableTargetMarker gekennzeichnet ist, entspricht ComposbleTarget durch den voll qualifizierten Namen des Attributs als Anwendungsparameter. Ein Beispiel für die Verwendung von ComposableTargetMarker siehe anroidx.compose.ui.UiComposable. (I38f11)

Fehlerkorrekturen

  • Jetzt ist es zulässig, negative Scroll-Offsets an LazyGridState.scrollToItem() und LazyGridState.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 in TextInputSession und TextInputService wurden verworfen und werden nicht aufgerufen. Verwenden Sie Stattdessen BringIntoViewRequester. (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 über LocalFontFamilyResolver.current <ph type="x-smartling-placeholder">
      </ph>
    • Hinzugefügt: createFontFamilyResolver(context) und Zum Erstellen eines neuen Elements createFontFamilyResolver(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; eingestellt TextLayoutResult.layoutInput.resourceLoader, da es nicht mehr verwendet wird. (Id5a45, b/174162090)
  • 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 eines Font.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)
  • 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 stattdessen FontFamilyResolver.preload
    • fontResource(FontFamily): Typeface wurde verworfen. Dies war vorab geladen wurden. Dies kann bis zu 10 Sekunden dauern, Schriftarten herunterladen können. Verwenden Sie stattdessen FontFamilyResolver.preload (If8e7c, b/174162090).
  • Du kannst jetzt den Inhaltstyp für die Elemente von LazyVerticalGrid angeben. Für Artikel-/Artikelfunktionen in LazyGridScope 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 und LazyGridLayoutInfo 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, der maxSlotsToRetainForReuse akzeptiert, wurde verworfen. Stattdessen gibt es einen neuen Konstruktor, der SubcomposeSlotReusePolicy 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 der Größenanpassung. 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
    • 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 das setSystemGestureExclusionRects 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, die Modifier.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 wurde LazyColumn, LazyRow und LazyVerticalGrid 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 unter androidx.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 Material Design auf das gleiche Verhalten wie die 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() und LazyListState.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 nutzen oder zu prüfen, ob sie verwendet wurde oder nicht. (I2e59d)
  • Lupen-Widget beim Ziehen des Cursors oder Ziehpunkte innerhalb von 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 oder LazyListScope.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)

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 Die SemanticsNodeInteraction, auf der die Funktion aufgerufen wurde. (I9e5db)
  • performScrollToNode(matcher: SemanticsMatcher) hinzugefügt, die scrollen einen scrollbaren 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

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 und GestureScope wurden eingestellt, die Folgendes enthalten: wurde durch performTouchInput und TouchInjectionScope ersetzt. (Ia5f3f, b/190493367)
  • touchBoundsInRoot zu SemanticsNode 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 und requiredSize 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 von RelatedStateOf-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 Compose-Blog.

Bekannte Probleme

  • Wenn Sie Android Studio Bumblebee Canary 4 oder AGP 7.1.0-alpha04/7.1.0-alpha05 verwenden, kann es zu folgendem Absturz kommen:

      java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
    

    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 AGP 7.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 Organisationseinheit 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 stattdessen composeTestRule.mainClock. (I3c3e8, b/189951065)
  • enum Role und LiveRegionMode in Inline-Klassen ändern mit privatem Konstruktor (Id1890)
  • KeyboardCapitalization wird in die 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 im src/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 von adb 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 Zeichen H, S und P, 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 Klasse androidx.compose.runtime.SlotTable hätte beispielsweise den Deskriptor Landroidx/compose/runtime/SlotTable;.

  • <METHOD_SIGNATURE> ist die Signatur der Methode und enthält den Namen sowie die Parametertypen und Rückgabetypen der Methode. Die Methode fun isPlaced(): Boolean für LayoutNode hat beispielsweise die Signatur isPlaced()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 Zeitlimit 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 durch Modifier.focusTarget() (I6c860) ersetzt
  • Die KeyboardType-Enum wird durch eine Inline-Klasse ersetzt. (I73045, b/187055290)
  • FocusState-Enum durch FocusState-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 und detectHorizontalGestures 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

  • Mit 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)
  • PaintBackground entfernen. (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 Index SemanticsProperties.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 und SemanticsNodeInteraction.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ür 0.dp hinzugefügt.

Fehlerkorrekturen

  • Zeile & Durch untergeordnete Spalten mit weight(fill = false) wird nicht mehr dafür gesorgt, dass das übergeordnete Element den gesamten verfügbaren Bereich der Hauptachse ausfüllt. (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 und accessibilityActionScrollDown Scrollaktionen für Bedienungshilfen. Anstatt bis zum Ende der Seite zu scrollen, scrollbar ist, wird jetzt um einen Bildschirm in die angegebene Richtung gescrollt. (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 und BoxWithConstraintsScope 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 Parameter count 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. Anrufen withFrameNanos oder Recomposer.runRecomposeAndApplyChanges ohne MonotonicFrameClock wirft jetzt IllegalStateException. (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 wie Button und Modifier.clickable() zu übergeben, verwenden Sie interactionSource = 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ür compositionLocalOf und staticCompositionLocalOf 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 Parameter InteractionState 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 von rememberUpdatedIndication() ausgeführt werden. Der indication-Parameter in Modifier.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) entfernt

  • Die Scrollposition in Modifier.verticalScroll()/horizontalScroll() wird jetzt mit "Ints" dargestellt (I81298).

  • SmoothScrollBy- und scrollBy-Methoden“ 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 mit ComposeTestRule. (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 wie remember { mutableStateOf(0) }, entfernen wir die zusammensetzbare Funktion savedInstanceState { 0 }. Sie sollten stattdessen rememberSaveable { mutableStateOf(0) } verwenden. Die Speicherung und Wiederherstellung erfolgen automatisch, wenn der im MutableState verwendete Typ im Bundle gespeichert werden kann. Wenn Sie bisher ein benutzerdefiniertes Saver-Objekt übergeben haben, müssen Sie eine neue Überlastung von „merkSaveable“ mit dem Parameter stateSaver 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) und itemsIndexed(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/Schriftfamilie/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, die ComposeTestRule und definiert setContent, das entfernt wurde aus ComposeTestRule. Factory-Methode createEmptyComposeRule() hinzugefügt das eine ComposeTestRule 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. mit ActivityScenario.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ür CompositionLifecycleObserver 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 der onEnter nur einmal aufgerufen wird. onEnter mehrfach aufgerufen, wenn das Objekt in Unterzusammensetzungen verwendet wurde, wie WithConstraints und Scaffold, sodass die Single onEnter-Anrufgarantie unzuverlässig und wurde entfernt für RememberObserver.

    RememberObserver fügt onAbandoned hinzu. Dies wird aufgerufen, wenn die Die RememberObserver-Instanz wird von der übergebenen Callback-Funktion zurückgegeben. auf remember gesetzt, wurde aber im Kompositionsstatus nicht gespeichert und wird daher niemals onRemembered 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 von RememberObserver nach dem einzelnen Empfehlung oben: Tracking einer externen Ressource onForgotten und onAbandoned zeigen jeweils an, Ressource nicht mehr benötigt. Wenn das Objekt die Tracking-Funktion aktiviert, gestartet oder Ressourcen zugewiesen in onRemembered, onAbandoned kann ignoriert werden, da es nicht aufgerufen wird, wenn onRemembered 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 Datenklasse 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)
  • Geänderte Geschwindigkeit mit Komponenten und mathematischen Geschäftsabläufe. (Ib0447)
  • @ExperimentalTesting wurde in @ExperimentalTestApi umbenannt in entspricht ähnlichen experimentellen API-Anmerkungen (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()“ wurde in „val 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 in 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 durch animateAsState() ersetzt. wodurch State<T> anstelle von T 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 auf 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 und LazyListState.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 Rohinformationen (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 in insertTopDown() umbenannt.

    Die neue Methode insertBottomUp() wurde hinzugefügt.

    Ein Anwender fügt entweder Knoten in den Baum ein, den er bearbeitet. mit insertTopDown() oder insertBottomUp(), je nachdem, und eine bessere Leistung.

    Einige Bäume, z. B. LayoutNode und View, 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 ein Applier überschreibt insertBottomUp(), 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)

  • Die Factory-Funktion „buildAnnotatedString“ wurde 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 dem CoreTextField entfernt. Wenn Sie die Höhe des Textfelds durch die Anzahl der Zeilen einschränken möchten, verwenden Sie stattdessen BasicTextField. (IEC002)
  • Die await*TouchSlop()-Methoden wurden geändert zu nicht erkannten Zeiger nach unten und *OrCancellation. Auch die Notwendigkeit für orientationLock-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 zu content migriert. (Iec48e)
  • foundation:foundation-text APIs wurden nach foundation: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 zu den androidx.compose.ui.draw verfügbar. Erstellung der Datei DrawModifierFailed.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 zu GraphicsLayer wurden ebenfalls entsprechend aktualisiert. 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 in typeface() (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 mit foundation:foundation zusammengeführt (Idac0f)
  • „place(Offset)“ und „placeRelative(Offset)“ verwerfen. Verwenden Sie stattdessen Überlastungen mit Ganzzahl-Offsets (I4c5e7).
  • id wurde für LayoutIdParentData in layoutId umbenannt. Measurable.id wurde in Measurable.layoutId umbenannt. (Iadbcb, b/172449643)

Version 1.0.0-alpha07

11. November 2020

androidx.compose.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 in Modifier.fillParentMaxSize[Width|Height] im Bereich von LazyColumn/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 Select-Handles 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 die Umgebungselemente „AmbientContentColor“ und „AmbientTextStyle“ 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 sollte PointerInputFilter.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 und maxWidth von widthIn wurden in min und max umbenannt. Gleiches gilt für preferredWidthIn, heightIn und preferredHeightIn. (I0e5e1, b/167389544)
  • onNode und andere globale Methoden zu ComposeTestRule hinzugefügt als die aktuellen globalen werden nicht mehr unterstützt. (Ieae36)
  • Es wurden feste Größen- und Positionsberechnungen in UnlockScope, mit der verursacht unter anderem ungültige Wischgesten (Iaf358, b/166589947)
  • createAndroidComposeRule und AndroidInputDispatcher verschoben von androidx.ui.test.android nach androidx.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ür runBlocking, wenn Tests ausgeführt werden, die eine manualFrameClock erfordern TestUiDispatcher.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")
        }
    }
    

    (I0a85b, b/161247083)

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 in PlacementScope.place() umbenannt und die vorherige PlacementScope.place() wurde in PlacementScope.placeRelative() umbenannt. Daher spiegelt die Methode PlacementScope.place() die Position in Rechts-nach-links-Kontexten nicht mehr automatisch wider. Verwenden Sie stattdessen PlacementScope.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 an remember { 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 Muster by 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 beim Weichzeichnen auf. (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 und onZoomStarted 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 und Column sind jetzt erheblich Inline-Funktion und reduziert den Aufwand. (I75c10)

Fehlerkorrekturen

  • Umfassende API-Fehler beheben (I077bc) <ph type="x-smartling-placeholder">
      </ph>
    1. Nicht verwendete OffsetBase-Schnittstelle entfernen
    2. Richtet die Offset- und IntOffset-Klassen so aus, dass eine einheitliche API-Oberfläche haben,
    3. Benennen Sie IntOffset.Origin in IntOffset.Zero um. für Konsistenz mit der Offset API
    4. Die nativeCanvas-Methode wurde aus Canvas verschoben um Kunden bei der Erstellung eigene Canvas-Instanzen
    5. EmptyCanvas-Stub-Klasse zum Refaktorieren erstellt DrawScope darf kein Null-Parameter sein, lateinit und Sicherstellen, dass das Feld keine Null-Zulässigkeit aufweist
    6. ClipOp-Enums wurden in Pascal Case umbenannt
    7. FilterQuality-Enums wurden in Pascal Case umbenannt
    8. StrokeJoin-Enums wurden in Pascal Case umbenannt
    9. PointMode-Enums wurden in Pascal Case umbenannt
    10. PaintingStyle-Enums wurden in Pascal Case umbenannt
    11. PathFillType-Enums wurden in Pascal Case umbenannt
    12. StrokeCap-Enums wurden in Pascal Case umbenannt
    13. Die DrawCache-Implementierung wurde entfernt Lateinit-Parameter verwenden
    14. DrawScope wurde so aktualisiert, dass die verzögerte Delegierung nicht mehr verwendet wird. für die internen Parameter „fillPaint“ und „strokePaint“
    15. Das zusammensetzbare Bild wurde aktualisiert, um die Verwendung von Box zu vermeiden für weniger Aufwand
    16. Outline-Klasse wurde aktualisiert und enthält jetzt @Unveränderliche Annotationen.
    17. PathNode wurde mit @Unveränderlichen Annotationen aktualisiert für jede Pfadanweisung
    18. Die Vektorunterzusammensetzung wurde aktualisiert, um redundante Elemente zu entfernen. Bedingte Prüfungen auf Gleichheit, da die Schnittstelle „Compose“ bereits verwendet wird sie
    19. Verworfene Konstruktormethoden für Rect-Companions zugunsten von Funktionskonstruktoren
    20. Aktualisierte Brush-Klassen und Funktionskonstruktoren mit @Unveränderliche und @Stable APIs
    21. VertexMode-Enum wurde auf PascalCase aktualisiert
    22. Die DrawScope selectPaint-Methode wurde auf bedingt aktualisiert. Strichparameter für die Farbe überschreiben, geändert
    23. 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 Stattdessen SemanticsNodeInteraction.performGesture. (Id9b62)

  • SemanticsNodeInteraction.getBoundsInRoot() wurde umbenannt in SemanticsNodeInteraction.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() und isNotFocused() 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 Die Demo-App wurde aktualisiert, sodass sie eine deklarative Grafik enthält. 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 nach Aktivitäten 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 die Integration in das Fokus-Subsystem zu ermöglichen. (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 in PaintBox(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 in DrawBorder 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 in runOnIdle (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 und runOnUiThread sind jetzt globale Funktionen anstelle von Methoden in ComposeTestRule. (Icbe8f)

  • [Mutable]Operatoren für Bevollmächtigte von staatlichen Properties 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 { ... } oder by mutableStateOf(...) weiterhin zu verwenden. (I5312c)

  • DrawLayerModifier unddrawLayer() 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 oder setViewContent. „Compose.disposeComposition“ wurde eingestellt. Verwenden Sie stattdessen die Methode dispose für die Composition, die von setContent 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 verwendet 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 Modifikator erstellen, der die ParentDataModifier-Schnittstelle implementiert, oder den LayoutTag-Modifikator verwenden, wenn Sie lediglich die untergeordneten Layout-Elemente mit einem Tag versehen müssen, damit sie innerhalb des Messwertblocks 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 auf true 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 „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 in annotatedString(builder: Builder) umbenannt. (Ia6377)

  • API-Änderung: AnnotatedString.Item wurde in AnnotatedString.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 Sie mit der Benutzeroberfläche zum Schreiben verwenden, 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)