Benutzeroberfläche zum Schreiben
androidx.compose.ui
androidx.compose.ui.geometrie
androidx.compose.ui.graphics
androidx.compose.ui.platform
androidx.compose.ui.test
(Siehe API-Referenzdokumentation für alle Erstellungspakete)
Letzte Aktualisierung | Stabile Version | Releasekandidat | Beta-Ausgabe | Alpha-Release |
---|---|---|---|---|
21. August 2024 | 1.6.8 | 1.7.0–rc01 | - | - |
Struktur
Compose besteht aus sieben Maven-Gruppen-IDs innerhalb von androidx
. Jede Gruppe
enthält eine ausgewählte Teilmenge von Funktionen, jede mit ihren eigenen Release-Sätzen
Notizen.
In dieser Tabelle werden die Gruppen und Links zu den einzelnen Versionshinweisen erläutert.
Gruppe | Beschreibung |
---|---|
compose.animation: | Animationen in den Jetpack Compose-Anwendungen erstellen, um die User Experience zu bereichern |
compose.compiler | @Composable-Funktionen transformieren und Optimierungen mit einem Kotlin-Compiler-Plug-in aktivieren. |
compose.foundation | Schreiben Sie Jetpack Compose-Anwendungen mit gebrauchsfertigen Bausteinen und erweitern Sie die Grundlage für den Aufbau Ihrer eigenen Designsysteme. |
compose.material | Jetpack Compose-UIs mit einsatzbereiten Material Design-Komponenten erstellen Dies ist der übergeordnete Einstiegspunkt von Compose. Hier werden Komponenten bereitgestellt, die den unter www.material.io beschriebenen Komponenten entsprechen. |
compose.material3 einfügen | Jetpack Compose-UIs mit Material Design 3 Components erstellen, der nächsten Entwicklung des Material Design Material 3 enthält aktualisierte Designs und Komponenten sowie Funktionen zur Personalisierung von Material You wie dynamische Farben. Das Produkt wurde so entwickelt, dass es zum visuellen Stil und zur System-UI von Android 12 passt. |
compose.runtime | Grundlegende Bausteine des Programmiermodells und der Statusverwaltung von Compose sowie die zentrale Laufzeit für das Compose-Compiler-Plug-in. |
compose.ui | Grundlegende Komponenten der Benutzeroberfläche zum Schreiben von E-Mails, die für die Interaktion mit dem Gerät erforderlich sind, darunter Layout, Zeichnen und Eingabe |
Abhängigkeiten deklarieren
Wenn Sie eine Abhängigkeit von Compose hinzufügen möchten, müssen Sie das Maven-Repository von Google zu Ihrem Projekt arbeiten. Maven-Repository von Google lesen .
Fügen Sie der Datei build.gradle
die Abhängigkeiten für die Artefakte hinzu, die Sie benötigen
Ihre App oder Ihr Modul:
Groovy
dependencies { implementation "androidx.compose.ui:ui:1.6.8" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.ui:ui:1.6.8") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.
Feedback
Dein Feedback hilft uns, Jetpack zu verbessern. Teilen Sie uns mit, wenn Sie neue Ausgaben entdecken oder zur Verbesserung dieser Bibliothek. In der bestehende Probleme in dieser Bibliothek, bevor Sie eine neue erstellen. So können Sie für ein vorhandenes Problem abstimmen: indem Sie auf die Sternschaltfläche klicken.
Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung. .
Version 1.7
Version 1.7.0-rc01
21. August 2024
androidx.compose.ui:ui-*:1.7.0-rc01
wurde veröffentlicht. Version 1.7.0-rc01 enthält diese Commits.
Wichtige Änderungen
- Das ui:ui-Modul erzwingt nun die Anforderung einer Mindestversion von „foundation:foundation“ auf mindestens 1.7.0-rc01. Dies wird erzwungen, um eine Verhaltensinkompatibilität zwischen UI und Foundation bei
NestedScrollSource
-Änderungen zu beheben, die zu Beginn von 1.7.0-alpha01 vorgenommen wurden.
Version 1.7.0-beta07
7. August 2024
androidx.compose.ui:ui-*:1.7.0-beta07
wurde veröffentlicht. Version 1.7.0-beta07 enthält diese Commits.
Fehlerkorrekturen
- Die
SemanticsNodeInteraction
-FunktionenperformTextReplacement
,performTextInput
undperformTextClearance
im Zusammenhang mit Texteingabe geben jetzt Assertion-Fehler aus, wenn sie im schreibgeschütztenTextFields
aufgerufen werden. (I4ae8f)
Version 1.7.0-beta06
24. Juli 2024
androidx.compose.ui:ui-*: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.ui:ui-*:1.7.0-beta05
wurde veröffentlicht. Version 1.7.0-beta05 enthält diese Commits.
Fehlerkorrekturen
- Ein Fehler wurde behoben, bei dem
TextField
bei einem Wechsel der Softwaretastatur erst dann Eingaben über die neue Tastatur annahm, wenn der Fokus verloren ging und wieder wiederhergestellt wurde. - Es wurde ein Problem behoben, bei dem Versuche, Ebeneninhalte zu speichern, beim Rendern mit
SurfaceView
-Inhalten unbeabsichtigte Nebeneffekte verursachten.
Version 1.7.0-beta04
26. Juni 2024
androidx.compose.ui:ui-*: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)
- Software-Rendering-Unterstützung für die
GraphicsLayer
API deaktivieren (35ddd8) - Behebung eines Absturzes in der Ebenenpersistenzlogik. (70b13e)
- Die Wiederverwendung der Optimierung von Ebenenobjekten wurde rückgängig gemacht, da sie Renderingprobleme verursacht hat. (70b13e)
Version 1.7.0-beta03
12. Juni 2024
androidx.compose.ui:ui-*: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.ui:ui-*:1.7.0-beta02
wurde veröffentlicht. Version 1.7.0-beta02 enthält diese Commits.
API-Änderungen
SemanticsProperties.Editable
wurde inIsEditable
umbenannt undSemanticsPropertyReceiver.editable
wird in einen WertisEditable
geändert. Die Eigenschaft ist jetzt ein boolescher Wert und wird immer durch Textfelder angegeben. (I8acd8)- Benchmark-Parameter für Bedienungshilfen umbenennen. (I3d440)
- Die API zum Gestalten von Links wurde aktualisiert:
TextLinkStyles
ist jetzt Teil desLinkAnnotation
-Konstruktors und derAnnotatedString.fromHtml
-Methode (I90b2b). Außerdem wurdeTextDefaults
aus Material entfernt (I5477b).
Fehlerkorrekturen
LayoutCoordinates.introducesFrameOfReference
wurde inLayoutCoordinates.introducesMotionFrameOfReference
umbenannt, um den Zweck besser widerzuspiegeln. Die zugehörige Funktion wurde umbenannt, um Koordinaten basierend auf dieser Markierung zu berechnen. (I3a330)
Version 1.7.0-beta01
14. Mai 2024
androidx.compose.ui:ui-*:1.7.0-beta01
wurde veröffentlicht. Version 1.7.0-beta01 enthält diese Commits.
API-Änderungen
performCustomAccessibilityActionLabelled
wurde inperformCustomAccessibilityActionWithLabel
undperformCustomAccessibilityActionWhere
inperformCustomAccessibilityActionWithLabelMatching
umbenannt. (I5387f)AnnotatedString.hasEqualsAnnotations
ist jetzthasEqualAnnotations
(I685c0)- Die API zum Erhalten von Material-Links im Text wurde aktualisiert. Insbesondere wurden die Methoden aus dem
TextDefaults
zum Erstellen von themenbezogenenLinkAnnotations
und zum Parsen von HTML mit themenbezogenen Links entfernt. Stattdessen wurde eineTextLinkStyles
-Klasse hinzugefügt, mit der die Links als Parameter für die zusammensetzbare Textfunktion gestaltet werden können. (I31b93)
Fehlerkorrekturen
- Fehlerkorrekturen für zusätzliche Anwendungsfälle beim dynamischen Hinzufügen von Zeigereingabemodifikatoren während der Ereignisse 63e1504
Version 1.7.0-alpha08
1. Mai 2024
androidx.compose.ui:ui-*:1.7.0-alpha08
wurde veröffentlicht. Version 1.7.0-alpha08 enthält diese Commits.
API-Änderungen
- Unterstützt Implementierungen änderbarer Formen.
Shape#createOutline
wird jetzt innerhalb von Grafikebenen beobachtet. Das Lesen von Statuswerten im Inneren führt daher zu Entwertungen, wenn sich der Zustand ändert. Dies ermöglicht leistungsstärkere Formanimationen. (Id1629, b/326070216) isPositionedByParentWithDirectManipulation
wurde inintroducesFrameOfReference
umbenannt. Beachten Sie, dass dies jetzt den umgekehrten Effekt hat. Das bedeutet, dass die meistenLayoutCoordinates
standardmäßig einen Referenzrahmen einführen und das Attribut nur bei direkter Bearbeitung den Wert „false“ hat. Um die Position nur mit solchen abzufragen, die einen Bezugsrahmen beinhalten, verwenden SiepositionInLocalFrameOfReference(...)
. OderpositionInLocalLookaheadFrameOfReference
von einemLookaheadScope
. (Ifc5f7)LookaheadScope
APIs sind jetzt stabil (I21507)- Aktionslambda für
getScrollViewportLength
gemäß Feedback des API-Council ändern. (Ibc74a) GraphicsLayer
Outline-APIs wurden aktualisiert, sodass statt der int-Parameter float-Parameter verwendet werden.UnsetOffset/UnsetSize IntSize
Sentinel-Werte zugunsten bereits vorhandener nicht spezifizierter Konstanten für Inline-Klassen mit Gleitkommazahl und Größe entfernt (I2fb03, b/333863462)- Beim Einfügen von Mauseingaben während Tests akzeptieren
MouseInjectionScope.click()
,MouseInjectionScope.doubleClick()
,MouseInjectionScope.tripleClick()
undMouseInjectionScope.longClick()
jetzt einenbutton: MouseButton
-Parameter, um sie allgemein anwendbar zu machen. Der Standardwert für alle Methoden istMouseButton.Primary
. (I31a23, b/190493367, b/261439695) onClicked
wurde inLinkInteractionListener
inonClick
umbenannt. (AA35c)- Benennen Sie
TextInclusionStrategy.isInside
inisIncluded
um. Legen Sie fest, dass der RückgabetypParagraph/MultiParagraph#getRangeForRect()
nicht Nullwerte zulässig ist. (I51f26)
Fehlerkorrekturen
- Das Erfassen langer Screenshots für scrollbare Container mit
reverseScrolling=true
wurde korrigiert. (I7c59c)
Externer Beitrag
- Unterstützung für den Vorabruf von Elementen in verschachtelten
LazyLists
wurde hinzugefügt (z.B. einLazyColumn
, das verschachtelteLazyRows
rendert). Durch diese Änderung werden Frame-Einbrüche bei diesenLazyLists
voraussichtlich beim Scrollen reduziert. Standardmäßig werden die ersten beiden verschachtelten Elemente vorab abgerufen. Dieses Verhalten kann jedoch über die neuen APIsLazyLayoutPrefetchStrategy(nestedPrefetchItemCount)
undLazyListPrefetchStrategy#onNestedPrefetch
gesteuert werden. (I51952)
Version 1.7.0-alpha07
17. April 2024
androidx.compose.ui:ui-*:1.7.0-alpha07
wurde veröffentlicht. Version 1.7.0-alpha07 enthält diese Commits.
API-Änderungen
ClickableText
ist als veraltet markiert. Um dem Text Links hinzuzufügen, erstellen Sie einAnnotatedString
mit einemLinkAnnotation
, das Ihrem Link entspricht, und übergeben Sie diesesAnnotatedString
an die zusammensetzbare Textfunktion. (I34d4b, b/323346994)- Stelle
ViewConfiguration.HandwritingGestureLineMargin
für handschriftliche Gesten vor. Unterstützung vonJoinOrSplit
-Geste fürBasicTextField
(Ie6e13, b/325660505) FocusProperties.enter
undFocusProperties.exit
sind nicht mehr experimentell.FocusDirection.Enter
undFocusDirection.Exit
sind nicht mehr experimentell.FocusRequester.Cancel
ist nicht mehr experimentell (I461a1, b/261564106).- Bei der Abfrage von Layoutkoordinaten können Sie jetzt das Argument
excludeDirectManipulationOffset
verwenden, um den Versatz von übergeordneten Layouts auszuschließen, bei denen die untergeordneten Layouts mithilfe vonPlaceable.PlacementScope.withDirectManipulationPlacement
platziert wurden. Ebenso kann ein Layout, bei dem sich die Position seiner untergeordneten Elemente häufig ändert, diese nun mithilfe vonwithDirectManipulationPlacement
platzieren, wie z. B. „Scrollen“, das standardmäßig implementiert ist. Auf diese Weise sind die aufapproachLayout
basierenden Animationen intuitiver. Sie haben jetzt die Möglichkeit zu unterscheiden, welcher Offset animiert werden soll und was direkt angewendet werden soll, wenn es um die Animation des Ansatzes geht. (I60ec7) - Die Funktions-Flag für lange Screenshots wurde entfernt. (I28648, b/329128246)
LazyColumn
rendert fixierte Überschriften in langen Screenshots jetzt korrekt. (I8d239, b/329296635)NestedScroll
-Quellen „Ziehen und Ziehen“ werden durchUserInput
undSideEffect
ersetzt, um die erweiterte Definition dieser Quellen zu ermöglichen, die jetzt Animationen (Seiteneffekt) sowie Mausrad und Tastatur (UserInput
) umfasst. (I40579)ApproachLayoutModifierNode
undModifier.approachLayout
sind jetzt stabil. Das alteisMeasurementApproachComplete()
bzw.isPlacementApproachComplete()
wird durch die neuenisMeasurementApproachInProgress()
undisPlacementApproachInProgress()
ersetzt.- Eingestellter
intermediateLayout
-Modifikator wurde entfernt. (I3e91c) - Benennen Sie
GraphicsLayer#buildLayer
um, damit die Aufzeichnung die „begin“- und „endRecording“-Methoden der in Displaylist unterstützten APIs wieRenderNode
und Picture widerspiegelt. rememberGraphicsLayer
wurde zur Nutzung vonrememberObserver
aktualisiert. (I312c1, b/288494724, b/330758155)UrlAnnotation
wurde verworfen. Verwenden Sie stattdessenLinkAnnotation.Url
. Wenn Sie Material-Designs verwenden, erstellen Sie mit einemTextDefaults
-Objekt die Anmerkung mit angewendeten Material-Designs (I8d180, b/323346545).- Textlinks wurden neben dem normalen Stil auch mit der Gestaltungsoption „Betätigt“ angezeigt (I5f864, b/139312671)
String.parseAsHtml
wurde inAnnotatedString.Companion.fromHtml
umbenannt. (I43dcd)- Stilargumente (
linkStyle
,focusedLinkStyle
,hoveredLinkStyle
) und ein Linkinteraktions-Listener für dieparseAsHtml
-Methode hinzugefügt. Wenn der HTML-getaggte String mit<a>
-Tags geparst wird, erstellt die Methode für jedes dieser Tags einLinkAnnotation.Url
und übergibt die Stilobjekte und den Link-Interaktions-Listener an jede Annotation. (I7c977) LinkAnnotation
verwendet jetzt die zustandsbasierten Stilargumente und einenLinkInteractionListener
. Fügen Sie diese Annotation zumAnnotatedString
hinzu, um einen Hyperlink zu erhalten. Durch die Übergabe vonfocusedState
und/oderhoveredState
können Sie die visuelleconfiguration
für Links definieren, wenn diese hervorgehoben sind und/oder der Mauszeiger darauf bewegt wird. (I81ce4, b/139312671)- Für
ImeOptions.hintLocales
können keine Nullwerte mehr eingegeben werden. Wenn Sie eine leere Gebietsschemaliste übergeben möchten, verwenden SieLocaleList.Empty
. (Ic5bc4)
Fehlerkorrekturen
- Fehlerhafte/beschädigte historische Eingabeereignisdaten werden ordnungsgemäß verarbeitet (fehlerhafte Offsetdaten werden ignoriert).
- Behebt unerwartete Zeigerereignisse, wenn ein Zeigereingabemodifikator dynamisch vor einem anderen Zeigereingabeereignisstream während eines aktiven Zeigereingabeereignisstreams hinzugefügt wird (z. B. zwischen einem Mouseover-Eingabe-Ereignis-Stream und einem Mouseover-Exit [Maus/Eingabestift]).
Version 1.7.0-alpha06
3. April 2024
androidx.compose.ui:ui-*:1.7.0-alpha06
wurde veröffentlicht. Version 1.7.0-alpha06 enthält diese Commits.
Neue Funktionen
- Es wurde die
parseAsHtml
-Methode für Strings mit benutzerdefinierten Stilen hinzugefügt: Sie ermöglicht das Konvertieren eines mit HTML-Tags markierten Strings inAnnotatedString
. Beachten Sie, dass nicht alle Tags unterstützt werden. Zum Beispiel können Sie noch keine Aufzählungslisten anzeigen. (I84d3d, I30626, b/139326648) - Implementierung der experimentellen Unterstützung für lange Screenshots in Scroll-Containern von Compose mit der offiziellen Android API (
ScrollCaptureCallback
). Dies ist eine experimentelle Funktion, die möglicherweise derzeit nicht alle Fälle korrekt verarbeitet. Aus diesem Grund ist sie derzeit standardmäßig deaktiviert. Legen Sie zum Aktivieren das FlagComposeFeatureFlag_LongScreenshotsEnabled
auf „true“ fest. (I2b055, b/329296471)
API-Änderungen
- „
fun ClipEntry.getMetadata()
“ wird in „val ClipEntry.clipMetadata
“ geändert. (I50155) - Die Funktionen
ClipboardManager.getClipMetadata
undClipboardManager.hasClip
wurden entfernt. VerwendeclipEntry.getMetadata()
, um die Metadaten des aktuellen Clipeintrags zu lesen. Prüfen Sie auch das Ergebnis vonClipboardManager.getClip
, wenn es null ist oder nicht, um festzustellen, ob die Zwischenablage einen aktuellen Clip enthält. (I50498) - Jetzt können Sie
GraphicsLayer
-Objekte anplaceable.placeWithLayer()
-Funktionen übergeben (I1b22f). ClipboardManager.setClip
akzeptiert jetzt null, um die Zwischenablage zu leeren. (I7d2e9)- Es wurden Ressourcen-IDs zum Ausblenden von Ansichten hinzugefügt, die als Implementierungsdetails in Build-Tools verwendet werden (I99531).
- Die Anhalten-Methode
GraphicsLayer#toImageBitmap
wurde hinzugefügt, um das Rendern von Bitmap-Inhalten in einemGraphicsLayer
zu unterstützen. Dies ist ein hardwarebeschleunigter Renderingvorgang auf API-Level 22 und höher (einschließlich), der über 99% aller Android-Geräte unterstützt. Bei Android API-Level 21 wird dabei Software-Rendering verwendet. (I9e114) - Hilfsmethode zum Konvertieren eines Android-
RectF
inComposeRect
(I39925, b/325660505) - Alle
KeyboardOptions
-Parameter haben jetzt standardmäßig einen nicht angegebenen Wert. MethodeKeyboardOptions.merge
wurde hinzugefügt. KeyboardOptions.autoCorrect
wurde inautoCorrectEnabled
umbenannt und dafür gesorgt, dass Nullwerte zulässig sind, wobei null bedeutet, dass kein Wert angegeben wurde. (Ia8ba0, b/295951492)- Die Variante „
BasicTextField(state)
“ und „BasicSecureTextField
“ verwenden jetztKeyboardActionHandler
anstelle vonKeyboardActions
, um Aktionen über die Softwaretastatur zu verarbeiten. (I58dda)
Version 1.7.0-alpha05
20. März 2024
androidx.compose.ui:ui-*:1.7.0-alpha05
wurde veröffentlicht. Version 1.7.0-alpha05 enthält diese Commits.
Neue Funktionen
- Einführung der neuen
GraphicsLayer
API zur Aufzeichnung von Zeichenbefehlen in einer Anzeigeliste sowie zusätzlicher Attribute, die sich auf das Rendern der Anzeigeliste auswirken. Dies bietet eine isolierte Grenze, um eine komplexe Szene in kleinere Teile zu unterteilen, die einzeln nacheinander aktualisiert werden können, ohne die gesamte Szene nachzubilden. Transformationen an einemGraphicsLayer
können durchgeführt werden, ohne die Anzeigeliste neu aufzuzeichnen. Im Gegensatz zuModifier.graphicsLayer
ermöglichtGraphicsLayer
das Rendern von zusammensetzbaren Inhalten an anderer Stelle und ist nützlich in animierten Anwendungsfällen, bei denen davon ausgegangen wird, dass Inhalte in verschiedenen Szenen gerendert werden.
API-Änderungen
GraphicsLayer.draw(Canvas)
ist keine öffentliche API mehr. Verwenden Sie stattdessen die ErweiterungsfunktionDrawScope.drawLayer(GraphicsLayer)
, um die Ebene zu zeichnen. (I7a7c0)restrictedConstraints()
in zwei Methoden aufteilen:fitPrioritizingWidth()
undfitPrioritizingHeight()
(I6d7fd)- Einführung des
HardwareCanvas
-Stubs zur Nutzung von Android L (I1c3b5, b/288494724) - Aktualisieren Sie das Editor-Framework, um eine lokale
GraphicsContext
-Komposition zusammen mit aktualisierten Inhaber-,DelegateableNode
- unddrawWithCache
-Modifikatorimplementierungen bereitzustellen, um Zugriff auf dasGraphicsContext
für eingeschränkten Zugriff bereitzustellen.GraphicsLayer
-Instanzen werden automatisch bereinigt, wenn Modifikatoren entfernt werden. (I64a2f, b/288494724) - 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) - Die Erweiterungsfunktion „
GraphicsLayer.setOutline(Outline)
“ wurde hinzugefügt. (Ib81f4) - Funktionskonstruktor
GraphicsContext
einführen, um eine Factory zum Erstellen vonGraphicsLayer
-Instanzen zu erstellen (Ib98d6, b/288494724) - Offengelegte
GraphicsLayer
API, um Entwicklern definierte Flexibilität bei der Erfassung von Zeichenbefehlen zu bieten, die zum Zeichnen an anderer Stelle und zum Anwenden verschiedener visueller Effekte auf das Endergebnis verwendet werden können. (I80245, b/288494724) - Führen Sie
Paragraph#getRangeForRect
ein, das einen Textbereich zurückgibt, der von einem bestimmten Rechteckbereich abgedeckt wird. (Iee516, b/325660505) - Die experimentelle Überschreibung von
BasicText
mit dem ArgumentonLinkClicked
wurde entfernt. In Zukunft wird eine Ersatz-API für die Unterstützung von Hyperlinks folgen. (I107d5)
Fehlerkorrekturen
- Es wurde die erwartete/tatsächliche API-Definition
GraphicsLayer
hinzugefügt, um die Erfassung und Wiedergabe von Zeichenbefehlen mit optionalen visuellen Effekten und Transformationen zu unterstützen. Einführung derGraphicsContext
-Schnittstelle mit Grafikabhängigkeiten, einschließlich der Erstellung und Verwaltung vonGraphicsLayer
-Instanzen. (I4a8d6, b/288494724) - Ein Interoperabilitätsproblem bei der 1D-Fokussuche wurde behoben, bei dem der Fokus in einem
ComposeView
-Element steckenblieb, das zwischen anderen Ansichten eingebettet war. (I08fd4)
Externer Beitrag
LocalLifecycleOwner
wurde von der Compose-UI zulifecycle-runtime-compose
verschoben, damit die auf dem Compose-Tool basierenden Hilfs-APIs außerhalb der Compose-UI verwendet werden können. Vielen Dank an Jake Wharton für den Beitrag. (I6c41b, b/328263448)- Gleitkommazahlen-Eigenschaften für Verzerrungen werden bei allen Untertypen, die auf Verzerrungen basieren, einheitlich dargestellt. (I69f0f, b/328088992)
Version 1.7.0-alpha04
6. März 2024
androidx.compose.ui:ui-*:1.7.0-alpha04
wurde veröffentlicht. Version 1.7.0-alpha04 enthält diese Commits.
API-Änderungen
- Unterstützung der Handschriftfunktion mit Eingabestift für BasicTextField2 auf Geräten nach Android U. (I002e4)
- 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) FocusRequester.createRefs
ist jetzt stabil (I4d92c, b/261436820).DelegatableNode.requireView()
wurde eingeführt, damit Modifikatorknoten das aktuelle Android-View
abrufen können, ohne eine lokale Zusammensetzung zu lesen. (I40768)- Neue API
Path.reverse()
zum Umkehren der Pfadrichtung (I36348) hintLocales
wurde zuKeyboardOptions
hinzugefügt, damitTextFields
IMEs mit bestimmten Sprachen als Hinweis auf eine bevorzugte Sprache angeben kann.- Stellen Sie die
platformLocale
-Property vonLocale
bereit, die das zugrunde liegende Plattformobjekt zurückgibt, z.B.java.util.Locale
(I921c6)
Version 1.7.0-alpha03
21. Februar 2024
androidx.compose.ui:ui-*:1.7.0-alpha03
wurde veröffentlicht. Version 1.7.0-alpha03 enthält diese Commits.
API-Änderungen
- Neu:
ContextualFlowRow
und erweiterteFlowRow
/Column
mit MaxLines und Overflow. Neben der Einführung vonContextualFlowRow
undContextualFlowColumn
gibt es jetzt Verbesserungen an den experimentellenFlowRow
undFlowColumn
, die jetzt maxLines und die Überlauf-Unterstützung umfassen. Dieses Update wurde entwickelt, um Komponenten für eine optimale Leistung bereitzustellen, wobeiContextualFlow*
perfekt für eine große Anzahl von Artikeln mit einer kleinenmaxLines
-Konfiguration und dynamischer +N-Schaltflächen für die Anzeige weiterer Schaltflächen undFlowRow
undFlowColumn
ideal für eine kleine Anzahl von Artikeln, also weniger als 100 Elemente, geeignet ist. Wichtig: Wenn Sie das bestehende Verhalten inFlowRow
oderFlowColumn
beibehalten möchten, bei dem alle Elemente unabhängig davon, ob sie zum Maximum der Querachse passen, zusammengehören, setzen Sieoverflow
während der Initialisierung aufFlowRowOverflow.Visible
oderFlowColumnOverflow.Visible
. Sehen Sie sich die Beispiele für diese neuen Funktionen inContextualFlowRowSample
undFlowRowSample
an. (Ib9135, b/293577082) - Fügen Sie das Semantikattribut
maxTextLength
hinzu, das für Textfelder festgelegt werden soll, mit denen die maximal zulässige Anzahl von Zeichen gefiltert werden soll. (I24d9f, b/170648072) - Der
Modifier.inspectable
-Wrapper wurde eingestellt. Diese API führt zu mehr Entwertungen als notwendig, weshalb von ihrer Verwendung abgeraten wird. Entwicklern wird empfohlen, dieinspectableProperties()
-Methode aufModifierNodeElement
zu implementieren, wenn sie Tools Modifikatoreigenschaften zur Verfügung stellen möchten. (Ib3236) - Neuer Konstruktor für
PopupProperties
, der vollständige Kontrolle überWindowManager.LayoutParams
-Flags ermöglicht. (Ibb33e, b/312485503) DelegatableNode.requireLayoutCoordinates()
wurde eingeführt, um den aktuellenLayoutCoordinates
einerModifier.Node
abzurufen, ohneonPlaced
überschreiben und die Koordinaten selbst in einer Property speichern zu müssen. (Ia8657)DelegatableNode.currentLayoutCoordinates
wurde eingeführt, um den aktuellenLayoutCoordinates
einerModifier.Node
abzurufen, ohneonPlaced
überschreiben und die Koordinaten selbst in einer Property speichern zu müssen. (Iaebaa)BasicTextField2
und zugehörige APIs unter dem Paketandroidx.compose.foundation.text2
werden nachandroidx.compose.foundation.text
verschoben. (I9f635)- Eine neue
ApproachLayoutModifierNode
API wurde hinzugefügt, um die Erstellung benutzerdefinierter Ansatzlogik in einem expliziten Modifikatorknoten zu unterstützen. Es wurde außerdem eine neue experimentelleDeferredTargetAnimation
API für Animationen hinzugefügt, deren Ziel bei der Instanziierung unbekannt ist. (I60745) - Neue
Path
APIs zum Abfragen der Richtung eines Pfads und zum Extrahieren von Konturen aus einemPath
. (I63d04) PathHitTest
undPath.contains(Offset)
wurden hinzugefügt, um zu prüfen, ob einePath
einen bestimmten Punkt enthält. (I3b218)TextLayoutResult
macht jetzt diegetLineBaseline(lineIndex)
-Methode verfügbar. Dadurch kann zusätzlich zu den vorhandenen Convenience-PropertiesfirstBaseline
undlastBaseline
die Baseline einer beliebigen Textzeile gelesen werden. (Ide4e8, b/237428541)- Es wurde eine Methode hinzugefügt, mit der nur die Annotationen von zwei
AnnotatedStrings
verglichen werden können. (I32659)
Fehlerkorrekturen
- Ein Problem mit der Abwärtskompatibilität mit
SemanticsPropertyReceiver.performImeAction
undSemanticsActions.PerformImeAction
wurde behoben. (Id0528, b/322269946)
Version 1.7.0-alpha02
7. Februar 2024
androidx.compose.ui:ui-*:1.7.0-alpha02
wurde veröffentlicht. Version 1.7.0-alpha02 enthält diese Commits.
API-Änderungen
- Ein Problem mit der Binärkompatibilität von
SemanticsPropertyReceiver.performImeAction
wurde behoben. (I65865, b/322269946) - Der
PopupProperties
-Konstruktor, der einenusePlatformDefaultWidth
-Parameter verwendet, ist nicht mehr experimentell. (I8f8d2) - Es wurde eine Überlastung von
ComposeTestRule.waitUntil
hinzugefügt, die eine Stringbeschreibung der Bedingung in die Zeitüberschreitungsnachricht einschließt. (I9413e) - Neue Semantik-API
unset()
zum Entfernen von Semantikeigenschaften, die in derselben Modifikatorkette hinzugefügt werden. Neue SemantikeigenschaftisOpaque
. (I8c583, b/317966058, b/246056649) originalEventPosition
wurde aus der Kopiermethode in der öffentlichen API vonPointerInputChange
entfernt. (I7bead)
Fehlerkorrekturen
- Es wurde ein a11y-Fehler behoben, bei dem Nicht-Tabs und Nicht-Optionsschaltflächen anklickbar waren, wenn sie ausgewählt wurden. (I2181c)
- In
VelocityTracker
wird das Problem behoben, dass Punkte jetzt standardmäßig hinzugefügt werden. Die Fehlerbehebung kann immer noch deaktiviert werden, indem duVelocityTrackerAddPointsFix
auf „false“ setzt, wenn Probleme auftreten. (Ib3877, b/269487059) - Das Problem mit der abwärtskompatiblen Binärinkompatibilität in
TextStyle
undParagraphStyle
wurde behoben. (I179f0, b/320819734)
Externer Beitrag
- Ein neuer
DialogProperties
-Konstruktor ohne plattformspezifische Parameter wurde hinzugefügt. (I45829) - Ein neuer
PopupProperties
-Konstruktor ohne plattformspezifische Parameter wurde hinzugefügt. (I9a038)
Version 1.7.0-alpha01
24. Januar 2024
androidx.compose.ui:ui-*:1.7.0-alpha01
wurde veröffentlicht. Version 1.7.0-alpha01 enthält diese Commits.
API-Änderungen
ClipboardManager
wurde umClipEntry
undClipMetadata
erweitert, um beliebige Inhalte wie Bilder zu unterstützen.- Fügt die
DeviceConfigurationOverride
API zuui-test
hinzu, um lokal zuzulassen die das Verhalten des zu testenden Inhalts überschreiben, z. B. um eine verfügbare Größe, Gebietsschema, Layout-Richtung, Schriftgröße oder Design.
Version 1.6
Version 1.6.8
12. Juni 2024
androidx.compose.ui:ui-*:1.6.8
wurde veröffentlicht. Version 1.6.8 enthält diese Commits.
Fehlerkorrekturen
- Inkonsistenzen in der Schriftskalierung, wenn die Schriftgröße unter der untersten definierten Tabelle lag, wurden behoben. In diesem Fall interpolieren wir nun zwischen der linearen 1x-Skala und der untersten definierten Tabelle, sodass die Schriftgröße mit zunehmenden Skalierungen kontinuierlich zunimmt. (Icbae3)
Version 1.6.7
1. Mai 2024
androidx.compose.ui:ui-*:1.6.7
wurde veröffentlicht. Version 1.6.7 enthält diese Commits.
Version 1.6.6
17. April 2024
androidx.compose.ui:ui-*:1.6.6
wurde veröffentlicht. Version 1.6.6 enthält diese Commits.
Fehlerkorrekturen
- Ein seltener
BasicTextField
-Absturz wurde behoben.
Version 1.6.5
3. April 2024
androidx.compose.ui:ui-*:1.6.5
wurde veröffentlicht. Version 1.6.5 enthält diese Commits.
Version 1.6.4
20. März 2024
androidx.compose.ui:ui-*:1.6.4
wurde veröffentlicht. Version 1.6.4 enthält diese Commits.
Version 1.6.3
6. März 2024
androidx.compose.ui:ui-*:1.6.3
wurde veröffentlicht. Version 1.6.3 enthält diese Commits.
Version 1.6.2
21. Februar 2024
androidx.compose.ui:ui-*:1.6.2
wurde veröffentlicht. Version 1.6.2 enthält diese Commits.
Version 1.6.1
7. Februar 2024
androidx.compose.ui:ui-*:1.6.1
wurde veröffentlicht. Version 1.6.1 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem mit der Abwärtskompatibilität mit
SemanticsPropertyReceiver.performImeAction
undSemanticsActions.PerformImeAction
wurde behoben. (Ie0bb2, b/322269946) - Bei Layouts tritt jetzt beim Messen ein Fehler auf, wenn eine ungewöhnlich große Größe zurückgegeben wird. Diese Art von Fehler tritt normalerweise auf, wenn für die Messung direkt maximale Grenzwerte angewendet werden, ohne nach
Constraints.Infinity
zu suchen. Die Prüfung hilft Entwicklern, Probleme zu finden, bei denen das Layout die falsche Größe hat und nicht das Layout, in dem es enthalten ist. (I339a9)
Version 1.6.0
24. Januar 2024
androidx.compose.ui:ui-*:1.6.0
wurde veröffentlicht. Version 1.6.0 enthält diese Commits.
Version 1.6.0-rc01
10. Januar 2024
androidx.compose.ui:ui-*:1.6.0-rc01
wurde veröffentlicht. Version 1.6.0-rc01 enthält diese Commits.
Fehlerkorrekturen
- Optimierte Implementierung von Vektorgrafiken zur Verbesserung der Leistung durch Minimierung zusätzlicher Neuzusammensetzungen
Version 1.6.0-beta03
13. Dezember 2023
androidx.compose.ui:ui-*:1.6.0-beta03
wurde veröffentlicht. Version 1.6.0-beta03 enthält diese Commits.
Neue Funktionen
- Ein
LayoutCoordinates
kann jetzt getrennt werden, ohne dass der Knoten getrennt wird. Schützen Sie diese im Compose Layout Inspector (If693)
Fehlerkorrekturen
PlatformImeOptions
ist jetzt eine konkrete Klasse anstelle einer Schnittstelle. (If40a4)- Zusätzliche nachgelagerte Neuzusammensetzungen behoben, die verursacht wurden, weil für
LocalSoftwareKeyboardController
undLocalTextInputService
bei jeder Neuzusammensetzung eines Stamms neue Werte bereitgestellt wurden. (I42190, b/310510985)
Version 1.6.0-beta02
29. November 2023
androidx.compose.ui:ui-*:1.6.0-beta02
wurde veröffentlicht. Version 1.6.0-beta02 enthält diese Commits.
Version 1.6.0-beta01
15. November 2023
androidx.compose.ui:ui-*:1.6.0-beta01
wurde veröffentlicht. Version 1.6.0-beta01 enthält diese Commits.
API-Änderungen
- Der
DragAndDropTarget
-Modifikator übernimmt jetzt explizit die empfangendeDragAndDropTarget
und hat eine Lambda-Funktion, um eine Drag-and-drop-Sitzung zu aktivieren. Es gibt jetzt zwei Factory-Funktionen für eineDragAndDropModifierNode
. einen für den Empfang von Übertragungen und einen für die Datenübertragung (I69481) maximumFlingVelocity
wurde so aktualisiert, dass es als Gleitkommazahl dargestellt wird. Die Dokumentation wurde aktualisiert, um klarere Angaben zur EinheitmaximumFlingVelocity
zu machen. (I8adc7)- „
onDragAndDropStart
“ in derDragAndDropModifierNode
-Factory wurde in „acceptDragAndDropTransfer
“ umbenannt.acceptsDragAndDropTransfer
wurde demdragAndDropTarget
-Modifikator hinzugefügt, damit er per Drag-and-drop akzeptiert. Diese Lambda-Funktion gibt einen gültigenDragAndDropTarget
zurück, wenn sie an einer Drag-and-drop-Sitzung interessiert ist. Andere Lambdas für die Verarbeitung von Drag-Events wurden dadurch ersetzt. EineDragAndDropTarget
-Factory-Funktion wurde hinzugefügt, um Daten aus Drag-and-drop-Sitzungen zu empfangen (Iebf3a). Der Typ "
DragAndDropModifierNode.drag
" fürDragAndDropInfo
wurde entfernt und akzeptiert jetzt Parameter für die Lambda-Funktion "transferData
", die Dekorationsgröße und die Lambda-Funktion "Ziehen"DrawScope
DragAndDropTarget
bietet Methoden für bestimmte Drag-and-drop-Ereignisse und keine einzelne abstrakte Methode.onDragAndDropEvent
in der Factory-Funktion für eineDragAndDropModifierNode
wurde inonDragAndDropStart
umbenannt, um besser zu kommunizieren, dass die angegebeneDragAndDropTarget
nur für eine bestimmte Drag-and-drop-Sitzung gültig istDragAndDropEventType
wurde entfernt (I645b1).PlatformTextInputModifierNode.runTextInputSession
wurde inestablishTextInputSession
umbenannt. (I03cd0)Verbessert durchsuchbare Knoten-API-Namen, um sie verständlicher zu machen. (Ia4474)
OriginalText
durchTextSubstitution
ersetzen. (Ifa5a8)PlatformTextInputModifierNode.textInputSession
wurde inrunTextInputSession
umbenannt. (Ie9c6b)Die untergeordneten Elemente von
SubcomposeLayout
(sowie darauf basierende Layouts wieLazyColumn
), die zur späteren Wiederverwendung beibehalten werden, gelten als deaktiviert. Zum Testen solcher Knoten wurde eine neueassertIsDeactivated()
-Test-API eingeführt. Die restlichen Test-APIs filtern deaktivierte Knoten standardmäßig heraus. (I2ef84, b/187188981)FocusDirection.In
undFocusDirection.Out
wurden entfernt, verwenden stattdessenFocusDirection.Enter
undFocusDirection.Exit
(I2f660)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)Der
FontStyle(int)
-Konstruktor wurde verworfen. Verwenden Sie stattdessenFontStyle.Normal
oderFontStyle.Italic
. (I66610)FontScalable
-Schnittstelle wurde inFontScaling
umbenannt (Ie804a)
Fehlerkorrekturen
SoftwareKeyboardController.show()
zeigt die Softwaretastatur nicht mehr an, wenn kein Texteditor mehr im Fokus ist. (I2165a, b/301477279)- Ereignisse mit Aufwärtstaste auf der Hardware für Tasten, die in derselben Schreibansicht kein Down-Ereignis erhalten haben, werden jetzt ignoriert. (Ib37b4, b/305518328)
- Renderer-Unterstützung für „Erledigen“-Gradient in
ArcLine
wurde hinzugefügt. (I4d5bb) - Implementiere Gleichheits- und Hashcode für
PageSize.Fixed
. (Ie3ede, b/300134276) - 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)
TestDispatcher
-Werte, die alseffectContext
-zu-Compose-Tests übergeben wurden, werden jetzt zum Erstellen der Test- und Frame-Uhren verwendet. (Ia7178)
Version 1.6.0-alpha08
18. Oktober 2023
androidx.compose.ui:ui-*:1.6.0-alpha08
wurde veröffentlicht. Version 1.6.0-alpha08 enthält diese Commits.
API-Änderungen
- Bei
Modifier.dragAndDrawSource
wurde die Lambda-FunktiononDrawDragShadow
indrawDragDecoration
umbenannt und beiDragAndDropInfo
wurde der Größenparameter indragDecorationSize
umbenannt. (Id0e30, b/303904810) - Führen Sie
SemanticsNodeInteraction.isDisplayed()
undSemanticsNodeInteraction.isNotDisplayed()
ein, um zu prüfen, ob ein übereinstimmender Knoten sichtbar ist oder nicht, ohne auch auf ihn zu beanspruchen. (I2c196, b/302100809) - Es wurde ein spezieller
Unspecified
-Wert für die FelderTextAlign
,TextDirection
,Hyphens
undLineBreak
vonParagraphTextStyle
eingeführt, umnull
zu ersetzen. Da es sich bei diesen Klassen um Inline-Klassen handelt, vermeiden wir das Boxen primitiver Typen, indem wir die Option "Nullwerte zulässig" durch "UnAngegeben" ersetzen. Konstruktoren, Getter und andere Methoden inTextStyle
und Absatzformat wurden aktualisiert, sodass die erwähnten Parameter als Nicht-Null-Typen akzeptiert werden. (I4197e, b/299490814) - Fügen Sie eine
GoogleFont
-Überlastung zum Lesen einerGoogleFont
aus XML hinzu. (If8f59) LoremIpsum
PreviewParameterProvider
wurde als offener Kurs hinzugefügt. (I41bf5, b/266918816, b/300116360)
Fehlerkorrekturen
FontFamilyResolver
verwendet jetztDispatchers.Main
für Cache-Verwaltungskoroutinen. (Ie8dd9)AndroidViewBinding
entfernt jetzt synchronFragment
-Instanzen, die durch Einbeziehung einesFragmentContainerView
in dein Layout in das Layout vononRelease
mithilfe voncommitNow
(anstelle des zuvor verwendetencommit
) aufgebläht wurden. Dadurch werden Probleme mit der Methode der Live-Bearbeitung behoben, bei der die Komposition bei Änderungen ersetzt wird. (I58fbf)
Version 1.6.0-alpha07
4. Oktober 2023
androidx.compose.ui:ui-*: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) - Fügt den
dragAndDropSource
-Modifikator zum Starten von Drag-and-drop-Sitzungen unddragAndDropTarget
für den Empfang von Drag-and-drop-Sitzungen hinzu. (Ib7828, b/286038936) - Die Sammlungen
ColorList
undColorSet
wurden hinzugefügt, bei denen Zuweisungen vermieden werden. (I744bd) - Temporäres Flag
DisableNonLinearFontScalingInCompose
zum Deaktivieren der nicht linearen Schriftskalierung hinzugefügt. Legen SieDisableNonLinearFontScalingInCompose = true
in Ihren Tests fest, wenn Sie Zeit zum Bereinigen benötigen. Dieses Flag wird in Compose 1.6.0-beta01 entfernt. (IC9486)
Fehlerkorrekturen
- Optimiertes Parsen von XML-Vektor-Drawables. (Ibb015)
Version 1.6.0-alpha06
20. September 2023
androidx.compose.ui:ui-*:1.6.0-alpha06
wurde veröffentlicht. Version 1.6.0-alpha06 enthält diese Commits.
API-Änderungen
- Zusätzliche Optimierungen für Material-Symbole. (I3e08d)
- Bietet die Möglichkeit, einen Modifikatorbaum nach oben/unten zu durchlaufen, um ähnliche Knoten zu finden. (I2d234)
onRestoreFailed()
-Callback zumfocusRestorer()
-Modifikator hinzugefügt (Ie1d43)- Verschiedene Grafik-APIs wurden androidx-Anmerkungen hinzugefügt, um
ColorInt
,FloatRange
,IntRange
,Size
und mehr anzugeben. (Id65c8, b/290950582) showSystemUi=true
zurPreviewScreenSizes
-Definition hinzufügen (Ib61d3)
Ä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)
Version 1.6.0-alpha05
6. September 2023
androidx.compose.ui:ui-*:1.6.0-alpha05
wurde veröffentlicht. Version 1.6.0-alpha05 enthält diese Commits.
API-Änderungen
- Inhaltsaufnahme in
AndroidComposeViewAccessibilityDelegateCompat
aktivieren. (Ib2969) - Die Bewegungsgeschwindigkeiten in Komponenten der Datenansicht wie
ScrollView
undRecyclerView
sind aufViewConfiguration.ScaledMaximumFlingVelocity
begrenzt. „Compose“ enthält jetzt eine eigene Version vonmaximumFlingVelocity
, die jetzt fürDraggable
gilt. (Ibf974) - Fügt ein anfängliches Gerüst hinzu, um Drag-and-drop-APIs auf der Plattform zu unterstützen. (If84ce)
deviceId
zuRotaryScrollEvent
hinzufügen (Iba3bf)- Die
ui-tooling
Devices API wurde aktualisiert, sodass neuere Geräte (Ib25b4) einbezogen werden
Version 1.6.0-alpha04
23. August 2023
androidx.compose.ui:ui-*:1.6.0-alpha04
wurde veröffentlicht. Version 1.6.0-alpha04 enthält diese Commits.
API-Änderungen
- Es wurde eine Methode zum Deaktivieren von
ReusableComposition
hinzugefügt. Dabei werden Beobachtungen entfernt, aber Knoten beibehalten. Die deaktivierte Zusammensetzung kann durch Aufrufen vonsetContent
wieder aktiviert werden. (Ib7f31) ReusableComposition
-Schnittstelle zur Verwaltung des Lebenszyklus und der Wiederverwendung von Unterzusammensetzungen hinzugefügt. (I812d1, b/252846775)Modifier.focusGroup
wurde zu stabilen APIs hochgestuft. (I7ffa3)- Verschiedene Grafik-APIs wurden androidx-Anmerkungen hinzugefügt, um
ColorInt
,FloatRange
,IntRange
,Size
und mehr anzugeben. (I70487, b/290950582) - Die
ColorFilter
API wurde aktualisiert und enthält jetzt konkrete abgeleitete Klassentypen, um die Überprüfbarkeit von Parametern zu verbessern. (I5fe29) - Einführung der Wear-Tooling-Vorschaubibliothek zur Auflistung gültiger Wear-Geräte, die für UI-Vorschauen verwendet werden können (Ib036e)
- Die
FontScalable
-Schnittstelle wurde erstellt, um die Schriftskalierung der Benutzeroberfläche für die Kompaktheitsgrad zu verarbeiten. (I2cf3f)
Version 1.6.0-alpha03
9. August 2023
androidx.compose.ui:ui-*:1.6.0-alpha03
wurde veröffentlicht. Version 1.6.0-alpha03 enthält diese Commits.
API-Änderungen
- Neuer Typ von Übergang zwischen Ein- und Ausblenden, bei dem der Inhalt an die Größe des Animationscontainers beim Betreten und Beenden angepasst wird Beenden Sie die Animation.
LookaheadScope
Der zusammensetzbare Spaß und die Benutzeroberfläche sind jetzt stabil. (Ifb2ce) - Unterstützung für die Konfiguration von
privateImeOptions
hinzugefügt (Idb772)
Fehlerkorrekturen
PopupPositionProvider.calculatePosition
aktualisiert jetzt automatisch die Position des Pop-ups, wenn sich der in der Berechnung gelesene Zustand ändert. (I676a1, b/292257547)- Textfelder, die die Tastatur anzeigen und bearbeitbar sind, wenn
readOnly
auf „true“ gesetzt ist, wurden korrigiert. Außerdem wurde behoben, dass die Tastatur nicht angezeigt wurde, wennreadOnly
im Fokus von "true" zu "false" geändert wurde. (I34a19, b/246909589) - Erweiterte Anwendung globaler Assertions bei UI-Tests. (I1f90d)
Version 1.6.0-alpha02
26. Juli 2023
androidx.compose.ui:ui-*:1.6.0-alpha02
wurde veröffentlicht. Version 1.6.0-alpha02 enthält diese Commits.
API-Änderungen
- Es wurde eine Schnittstelle für die Dienstsuche hinzugefügt, die von Implementierern von Kompositionen implementiert werden kann. Diese ermöglicht eine Implementierung von Kompositionen, die die Suche an einen anderen Kompositionsdelegatdienst auf die ursprüngliche Komposition delegiert. Dies sollte nicht als „directy“ bezeichnet werden und wird verwendet, um in der Laufzeit experimentelle APIs zu erstellen, die in verpackten Versionen des Composers zu finden sind, z. B. im UI-Modul. (I296b9)
- Komplett überarbeitete
PlatformTextInput*
API. (I6c93a, b/274661182, b/267235947, b/277380808) SoftwareKeyboardController
undLocalSoftwareKeyboardController
sind nicht mehr experimentell.LocalSoftwareKeyboardController
ist jetzt auch ein richtigerCompositionLocal
. (I4c364)LookaheadLayout
undLookaheadLayoutScope
wurden für einige Releases eingestellt und sind jetzt entfernt. Die Ersatz-APIs sindLookaheadScope
und funktionieren mit jedem Layout. (I12ac3)SemanticsNodeInteraction.requestFocus
wurde hinzugefügt, um den Fokus bei Tests bequemer und auffindbarer zu machen. (Ie8722)- Fügen Sie experimentelle APIs zum Registrieren globaler Assertions hinzu, um sie in Zukunft für Framework-Tests zu verwenden. (I12d77)
Fehlerkorrekturen
- Der erste Aufruf des
update
-Callbacks vonAndroidView
wird jetzt zurückgestellt, bis die Ansicht angehängt wird. Er wird nicht ausgeführt, wenn die Zusammensetzung, mit derAndroidView
angewendet wird, angewendet wird. Dadurch wird ein Fehler behoben, bei dem derupdate
-Callback nicht ungültig wurde, wenn ein gelesener Status sofort durch einen Effekt geändert wurde. (Ie9438, b/291094055)
Version 1.6.0-alpha01
21. Juni 2023
androidx.compose.ui:ui-*:1.6.0-alpha01
wurde veröffentlicht. Version 1.6.0-alpha01 enthält diese Commits.
Neue Funktionen
- Lookahead in
LazyList
wird unterstützt. Dadurch kannLazyList
im Lookahead-Pass alle Animationen (z. B. Animation der Elementplatzierung,AnimatedVisibility
usw.) umgehen und die Lookahead-Größe und -Position für alle untergeordneten Elemente berechnen. Nach dem Lookahead-Pass können untergeordnete Elemente vonLazyList
unabhängig voneinander animiert werden, wie im Lookahead-Pass dargestellt.
Verhaltensänderung: „includeFontPadding“ ist in „Compose“ jetzt standardmäßig auf „false“ gesetzt
includeFontPadding
ist in „Schreiben“ jetzt standardmäßig auf „false“ gesetzt (21d806).
includeFontPadding
ist ein altes Attribut, das steuert, ob oberhalb der ersten und letzten Zeile des Textes ein zusätzlicher Abstand hinzugefügt werden soll, um Zeichen aufzunehmen, die über oder unter den Grundlinien des Textes stehen.
Wenn Sie diese Version von „Compose“ aktualisieren, wird die Darstellung aller Texte in Ihrer Benutzeroberfläche geändert, indem der zusätzliche Abstand oben in der ersten und letzten Zeile jedes angezeigten Texts entfernt wird.
Je nach Ihren UI-Anforderungen und den verwendeten Schriftmesswerten sollten die Änderungen minimal sein. Es können jedoch Probleme wie die folgenden auftreten: - Fehlerhafte Screenshot-Tests. Korrigieren Sie die Benutzeroberfläche, falls erforderlich, und generieren Sie die goldenen Bilder neu. - Der Text ist nicht korrekt ausgerichtet. Entfernen Sie gegebenenfalls benutzerdefinierte Abstände für ausgeschlossene Elemente oder fügen Sie einen zusätzlichen Abstand hinzu.
Sie können includeFontPadding
aktivieren, indem Sie für jeden Text PlatformTextStyle
verwenden:
Text(
text = myText,
style = TextStyle(
lineHeight = 2.5.em,
platformStyle = PlatformTextStyle(
includeFontPadding = true/false
)
/* … */
)
)
Du kannst includeFontPadding
für alle deine Texte aktivieren, indem du deine Material-Stile konfigurierst. Beachten Sie, dass die Parameternamen zwischen M2 und M3 variieren.
val Typography = Typography(
body1 = TextStyle(
fontFamily = /* … */,
fontSize = /* … */,
platformStyle = PlatformTextStyle(
includeFontPadding = false
)
/* … */
)
)
MaterialTheme(
typography = Typography,
/* … */
)
Weitere Informationen zu „Compose“ includeFontPadding
finden Sie in der Entwicklerdokumentation und in diesem Blogpost.
Sollten im Zusammenhang mit dieser Änderung Probleme auftreten, melden Sie diese bitte über die Problemverfolgung.
API-Änderungen
InputConnection#requestCursorUpdates
unterstützen (I0c69b)FocusRequester.saveFocusedChild
undFocusRequester.restoreFocusedChild
hinzugefügt (Ic557e, b/272302679, b/275157318)- 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) - Optimierte Zugänglichkeit für Leistung und Arbeitsspeicherzuweisung (Iede48)
- Semantikeigenschaften und Aktionen zur Unterstützung der Textübersetzung wurden hinzugefügt. (I4a6bc)
- Neue Property in
IntrinsincMeasureScope
und ihren Implementierungen (z.B.MeasureScope
), die angibt, ob die aktuelle Messungskarte eine Lookahead-Karte ist. (I7a812) - Die
DrawScope
API wurde aktualisiert, um die Möglichkeit zu bieten, das Rendering auf einen anderen Canvas mit alternativer Dichte/Layoutrichtung und Größe zu übertragen. DrawContext
wurde aktualisiert, um die Konfiguration von Dichte und Layoutrichtung zu unterstützen und den Canvas konfigurierbar zu machen. (Ie1f9b, b/225408150)Paragraph#fillBoundingBoxes
wurde hinzugefügt, um Zeichenbegrenzungsrahmen zu berechnen. (If30ee)- Ein Satz gemeinsamer
MultiPreviews
(Ia5a27) wurde hinzugefügt.
Fehlerkorrekturen
- Es wurde eine
FocusTargetModifierNode
-Oberfläche hinzugefügt, die zum Erstellen einer benutzerdefiniertenFocusTarget
verwendet werden kann. (I9790e) - Die
fallback*
-Parameter imTextMeasurer
-Konstruktor wurden indefault*
umbenannt. (I940a5) SemanticsPropertyReceiver.performImeAction
wurde inonImeAction
undSemanticsActions.PerformImeAction
inOnImeAction
umbenannt. (I8e841)- Fügt ein Rad hinzu, um das Scrollen mit der Maus von einem Ziehen bei verschachteltem Scrollen (insbesondere in
NestedScrollConnection
) zu unterscheiden. (Ie57e4) - Es wurde die
asComposePaint
API hinzugefügt, umtoComposePaint
zu ersetzen, da das zurückgegebene Objekt die ursprünglicheandroid.graphics.Paint
umschließt (I22b4c). SemanticsProperties.imeAction
verwerfen und durch einen neuen Parameter fürSemanticsActions.performImeAction
ersetzen. (I4a587)- 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)
Paragraph
-Methoden, die bisherAssertionError
für Offsets außerhalb des gültigen Bereichs ausgelöst haben, geben jetztIllegalArgumentException
wieMultiParagraph
aus. (I549d3, b/243338896)
Version 1.5
Version 1.5.4
18. Oktober 2023
androidx.compose.ui:ui-*:1.5.4
wurde veröffentlicht. Version 1.5.4 enthält diese Commits.
Version 1.5.3
4. Oktober 2023
androidx.compose.ui:ui-*:1.5.3
wurde veröffentlicht. Version 1.5.3 enthält diese Commits.
Fehlerkorrekturen
- (b/301209788)
TextField
hat beim Fokussieren und Eingeben von koreanischer Eingabe gelegentlich falsche Befehle angewendet, wodurch Zeichen verloren gingen.
Version 1.5.2
27. September 2023
androidx.compose.ui:ui-*:1.5.2
wurde veröffentlicht. Version 1.5.2 enthält diese Commits.
Fehlerkorrekturen
- Es wurde eine Problemumgehung für Abstürze hinzugefügt, bei denen über einen Hintergrundthread auf die Accessibility Scroll API zugegriffen wurde.
- Das Hinzufügen nicht angehängter Knoten zur Semantikstruktur wurde behoben.
Version 1.5.1
6. September 2023
androidx.compose.ui:ui-*:1.5.1
wurde veröffentlicht. Version 1.5.1 enthält diese Commits.
Fehlerkorrekturen
- Textfelder, die die Tastatur anzeigen und bearbeitbar sind, wenn
readOnly
auf „true“ gesetzt ist, wurden korrigiert. Außerdem wurde behoben, dass die Tastatur nicht angezeigt wurde, wennreadOnly
im Fokus von "true" zu "false" geändert wurde. (I34a19, b/246909589)
Version 1.5.0
9. August 2023
androidx.compose.ui:ui-*:1.5.0
wurde veröffentlicht. Version 1.5.0 enthält diese Commits.
Version 1.5.0-rc01
26. Juli 2023
androidx.compose.ui:ui-*:1.5.0-rc01
wurde veröffentlicht. Version 1.5.0-rc01 enthält diese Commits.
Fehlerkorrekturen
- Ein Absturz behoben, der bei der Verwendung von
SubcomposeLayout
inmovableContentOf()
auftrat, wurde behoben.
Version 1.5.0-beta03
28. Juni 2023
androidx.compose.ui:ui-*:1.5.0-beta03
wurde veröffentlicht. Version 1.5.0-beta03 enthält diese Commits.
Fehlerkorrekturen
- Es wurde eine FocusTargetModifierNode-Oberfläche hinzugefügt, mit der ein benutzerdefiniertes FocusTarget erstellt werden kann. (Ifb1d6)
- Es wurde ein Problem mit zusammensetzbaren Funktionen für Dialogfelder und Pop-ups behoben, die dazu führten, dass die Größe des untergeordneten Fensters bei
usePlatformDefaultWidth=true
nicht wie erwartet geändert wurde. (I112ee)
Version 1.5.0-beta02
7. Juni 2023
androidx.compose.ui:ui-*:1.5.0-beta02
wurde veröffentlicht. Version 1.5.0-beta02 enthält diese Commits.
API-Änderungen
- Die
asComposePaint
API wurde hinzugefügt, um die Nutzung einerandroid.graphics.Paint
-Instanz zur Verwendung in Compose zu ermöglichen.
Fehlerkorrekturen
- Es wurde die
asComposePaint
API hinzugefügt, umtoComposePaint
zu ersetzen, da das zurückgegebene Objekt die ursprünglicheandroid.graphics.Paint
umschließt (I22b4c).
Version 1.5.0-beta01
24. Mai 2023
androidx.compose.ui:ui-*:1.5.0-beta01
wurde veröffentlicht. Version 1.5.0-beta01 enthält diese Commits.
API-Änderungen
- Zuweisungen bei Neuzusammensetzung, Farbanimationen und
AndroidComposeView
(Ib2bfa) wurden entfernt. - Fügt Hilfsfunktionen wie
CacheDrawModifierNode()
hinzu, um das Delegieren zu ermöglichen (Icf8f9) - Einführung der
isLookingAhead
-Property, die überMeasureScope
zugänglich ist, um Lookahead-Ergebnisse zu beobachten und gegebenenfalls den Hauptpass zu beeinflussen. (Ibf4c3) - Neue Semantikeigenschaft
traversalIndex
, eine Gleitkommazahl zur Neuanordnung von Knoten beimTalkBack
-Durchlauf (niedrigere Werte stehen davor). (I9a81b, b/186443263) - Semantikeigenschaft „
isContainer
“ wird in „isTraversalGroup
“ umbenannt (I121f6) ColorProducer
hat jetztoperator fun invoke
stattproduce
(I4a9a2)- Fügen Sie die Transformation API
Path
hinzu, um Umwandlungs-, Skalierungs- und Rotationstransformationen auf Pfadobjekte anzuwenden. (I23434, b/233772232) - Die Methode von
ColorProducer
heißtproduce
. (I78bde) toFrameworkColorSpace
intoAndroidColorSpace
umbenennen (I4f547)- Benennen Sie
ColorLambda
inColorProducer
um. (I73b1a) - Einführung von APIs zur Konvertierung zwischen den Farbraumtypen „Android“ und „Compose“ (Ie7db4, b/279979665)
BasicText
wurde ein Farbparameter hinzugefügt, um eine effiziente Animierung oder Festlegung der Textfarbe zu ermöglichen. (Iffd88, b/246961787)TextRange.constrain
wurde inTextRange.coerceIn
umbenannt. (I31be2)- Der optimierte
TextStyle.merge(...)
mit vollständiger Parameterliste wurde hinzugefügt. (Iad234, b/246961787) - Viele Text-APIs wie
Brush
,DrawStyle
,TextMotion
,DrawScope.drawText
,Paragraph.paint(Brush)
undMultiParagraph.paint(Brush)
wurden stabilisiert. (I2f740, b/261581564, b/261581931, b/261561245) PlatformTextStyle.includeFontPadding
wurde nicht mehr eingestellt. Ursprünglich wollten wir das Feld entfernen. Das Feedback zeigt jedoch, dass Entwickler diese Konfigurationsoption benötigen. Entfernen Sie daher die Einstellung aus dem Feld (I98e96, b/277703184).- Öffentliche Methode
TextRange.constrain
wurde hinzugefügt. (I97912) UrlAnnotation
-Werte inAnnotatedString
Sek. können jetzt über Bedienungshilfen wieTalkBack
geöffnet werden. (If4d82, b/253292081)- Die Semantikaktion
InsertTextAtCursor
für Textfelder wurde hinzugefügt. (I11ed5) - Der
LineHeightStyle.Alignment(topRatio)
-Konstruktor wird zur Stable API hochgestuft. (I79c32, b/261565383) TextMeasurer
und zugehörige APIs sind nicht mehr experimentell. (I74647, b/261581753)- Die Semantikaktion
PerformImeAction
zum Aufrufen der IME-Aktion auf Texteditorknoten wurde hinzugefügt. (Ic606f, b/269633506) PlatformTextInput
APIs sind nicht mehr experimentell für Android. (I668eb)- Name des Wertparameters für
Enum.valueOf
geändert (Ia9b89) - mehr ausgelöste Ausnahmen von enum valueOf (I818fe)
- Einführung einer neuen Low-Level-
PlatformTextInputAdapter
-API zum Erstellen benutzerdefinierter Texteingabeimplementierungen, die direkt mit Plattform-APIs kommunizieren. (I58df4) - Der
BlendMode
-Parameter wurde den MethodenDrawScope.drawText
,Paragraph.paint
undMultiParagraph.paint
hinzugefügt, um beim Zeichnen von Text auf Canvas verschiedene Mischalgorithmen zu unterstützen. (I57508) - Benennen Sie
Font.MaximumAsyncTimeout
inFont.MaximumAsyncTimeoutMillis
um. Nur umbenennen. (I07af5) - Aktualisierte DPI-Werte von
@Preview
Referenzgeräten (Id6151, b/254528382) - Füge
BasicText
die Parameterbrush
undalpha
hinzu, um den Textpinsel effizient zu animieren oder festzulegen. - Definieren Sie kastenfreie Lambda-Typen für Float, Double, Long, Int und Short in :ui:ui-unit (I6f18d, b/246961787).
Fehlerkorrekturen
- Mehrere Zuweisungen bei der Zeiger-Geschwindigkeitsverfolgung wurden entfernt (I26bae).
- Weniger Zuweisungen bei der Verwaltung von Layout- und Zeigereingabe (I5333a)
- Vektorspeichernutzung und Rendering der ersten Frames optimieren (I2f3c6)
- Zuweisungen beim Zeichnen von Linien und Punkten mit Canvas wurden entfernt (I9f535).
- Dokumente für
AndroidFont.fontVariationSettings
(I7d9e2) hinzufügen
Externer Beitrag
- Leistung verbessert und Zuweisungen in Vector APIs reduziert (I906cb)
Version 1.5.0-alpha04
10. Mai 2023
androidx.compose.ui:ui-*:1.5.0-alpha04
wurde veröffentlicht. Version 1.5.0-alpha04 enthält diese Commits.
Neue Funktionen
- Verbesserte
Modifier.Node
-Delegierung Es wurde eine verbesserte Möglichkeit zum Delegieren an andereModifier.Node
-Instanzen über eineDelegatingNode
hinzugefügt. Dazu können die APIsdelegate
undundelegate
verwendet werden. Vor dieser Änderung musste jede API des delegierenden Knotens explizit an den delegierten Knoten delegiert werden. Nach dieser Änderung werden Knotenschnittstellen implizit delegiert, es sei denn,DelegatingNode
überschreibt sie explizit. (67352bc)
API-Änderungen
- Stell
NestedScrollModifierNode
vor, einNestedScroll Modifier.Node
, das delegiert werden kann. (I69513) - Der zusammensetzbaren Funktion
AndroidViewBinding
wurden die ParameteronReset
undonRelease
hinzugefügt, was die zusammensetzbare FunktionAndroidView
widerspiegelt und die Unterstützung für die Wiederverwendung von Ansichten mitViewBinding
aktiviert wurde. (I00b1e, b/276802519) - Die Compose Path API wurde aktualisiert, um Zurückspulen zu unterstützen, um Anwendungsfälle mit häufiger Pfadbearbeitung mit schnellerer Wiederverwendung zu unterstützen. (I7b797)
- Der optimierte
TextStyle.merge(...)
mit vollständiger Parameterliste wurde hinzugefügt. (Iad234, b/246961787) - Viele Text-APIs wie
Brush
,DrawStyle
,TextMotion
,DrawScope.drawText
,Paragraph.paint(Brush)
undMultiParagraph.paint(Brush)
wurden stabilisiert. (I2f740, b/261581564, b/261581931, b/261561245) PlatformTextStyle.includeFontPadding
wurde nicht mehr eingestellt. Ursprünglich wollten wir das Feld entfernen. Das Feedback zeigt jedoch, dass Entwickler diese Konfigurationsoption benötigen. Entfernen Sie daher die Einstellung aus dem Feld (I98e96, b/277703184).
Fehlerkorrekturen
- 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.ui:ui-*:1.5.0-alpha03
wurde veröffentlicht. Version 1.5.0-alpha03 enthält diese Commits.
Neue Funktionen
- Das neue Standardverhalten für
SubcomposeLayout
inLookaheadScope
:SubcomposeLayouts
ohne bedingte Slots (z. B.TabRow
,Scaffold
,BoxWithConstraints
usw.) funktioniert jetzt gut mit Lookahead-Animationen.
API-Änderungen
- Mit der neuen Standard-
intermediateMeasurePolicy
, die die Messungsrichtlinie aus dem Lookahead-Pass wiederverwendet, könnenSubcomposeLayout
-Untertypen ohne bedingte Slots wieScaffold
,TabRow
undBoxWithConstraints
standardmäßig mit Lookaheads verwendet werden. (Id84c8) - Der für ein Android-Fenster erstellte Recomposer blockiert jetzt nur dann
withFrameNanos
-Aufrufe anstelle aller Kompositionen, wenn eineON_STOP
-Benachrichtigung eingeht. Das bedeutet, dass Fenster, die mit beendeten Aktivitäten verknüpft sind, bei Datenänderungen weiterhin neu zusammengesetzt werden, aber die Animationen oder andere Aufrufer vonwithFrameNanos
werden blockiert. (Id9e7f, b/240975572) - Ändert „
motionEventSpy
“ in „Stabil“. (Ic5ec4, b/261560988) - Öffentliche Methode
TextRange.constrain
wurde hinzugefügt. (I97912) PlatformTextStyle.includeFontPadding
wurde nicht mehr verworfen, um Entwickler zu ermutigen, diese Kompatibilitäts-API zu verwenden, um die EinstellungincludeFontPadding
auf „false“ zu ändern und zu testen. (I98e96, b/277703184)
Version 1.5.0-alpha02
5. April 2023
androidx.compose.ui:ui-*:1.5.0-alpha02
wurde veröffentlicht. Version 1.5.0-alpha02 enthält diese Commits.
API-Änderungen
- Neue
SubcomposeLayout
API, die eine zusätzliche Richtlinie für Zwischenwerte zum Verarbeiten von Mess-/Layoutlogik während Lookahead-Animationen verwendet. (I017d3) - PointerInput ist jetzt faul und verwendet Modifier.Node, um die Leistung zu verbessern. Weitere Informationen zur geringfügigen Verhaltensänderung (15 Tage)
- Ändert experimentelle APIs mit Schlüsselereignissen in stabil. (I9c7d8, b/261566839, b/261567368)
- Ändert experimentelle APIs in
PointerInputChange
in stabil. (I1b543, b/261560988, b/261565762, b/261565749) - Fügt eine Möglichkeit zum Instanziieren einer
SuspendingPointerInputModifierNode
für komplexereModifier.Node
-Implementierungen hinzu. (IC4933) UrlAnnotation
-Werte inAnnotatedString
Sek. können jetzt über Bedienungshilfen wieTalkBack
geöffnet werden. (If4d82, b/253292081)- Es wurde eine API hinzugefügt, um Hardwareschlüssel abzufangen, bevor sie an die Bildschirmtastatur gesendet werden (I4f4c6, b/186800395).
- 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)
Fehlerkorrekturen
- Für Texttestaktionen müssen jetzt Textfelder aktiviert werden. (Iab328)
Version 1.5.0-alpha01
22. März 2023
androidx.compose.ui:ui-*:1.5.0-alpha01
wurde veröffentlicht. Version 1.5.0-alpha01 enthält diese Commits.
API-Änderungen
- Modifier.intermediateLayout erfordert jetzt kein explizites LookaheadScope. Der Messwertblock in „intermediateLayout“ hat „IntermediateMeasureScope“ als Empfänger und bietet damit das praktische CoroutineScope, LookaheadScope und MeasureScope.(Ibe2e5)
- LookaheadLayout wurde durch LookaheadScope ersetzt, das kein Layout mehr ist. Dadurch können Chid-Inhalte in einem LookaheadScope direkt über die MeasurePolicy des übergeordneten Elements gesteuert werden. (Ibe2e5)
- Fügt
Modifier.Node#coroutineScope
hinzu, damit Modifier.Nodes Koroutinen starten kann. (I76ef9) - Modifier.Nodes zum Lesen von CompositionLocals durch Implementieren der CompositionLocalConsumerModifierNode-Schnittstelle zulassen (Ib44df)
- Weitergabe der Klasse "@Veraltet" an eine Property. (I882d1)
Version 1.4
Version 1.4.3
3. Mai 2023
androidx.compose.ui:ui-*:1.4.3
wurde veröffentlicht. Version 1.4.3 enthält diese Commits.
Fehlerkorrekturen
- Es wurde ein Problem behoben, bei dem
AndroidView
bei Verwendung mit bestimmten Modifikatoren nicht korrekt dargestellt wurde. (I4dc77, b/274797771) - Ein Fehler in der 2D-Fokussuche wurde behoben, der
DropDown
-Menüs betraf (b/276811828). - Es wurde ein Fehler in den Eingabe-/Exit-Eigenschaften des benutzerdefinierten Fokus behoben, bei dem der Eingabe-/Exit-Block nur beim ersten Aufrufen der Lambda-Funktion ausgeführt wurde (b/277234245).
- Eine Regression im Fokussystem, die beim Lesen von
focusProperties
zu einem Absturz geführt hat, wurde behoben. (b/271324781, b/274897776)
Version 1.4.2
19. April 2023
androidx.compose.ui:ui-*:1.4.2
wurde veröffentlicht. Version 1.4.2 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem wurde behoben, bei dem
AndroidView
seine Modifikatoren nicht korrekt wiederverwendet hat, was möglicherweise zu unerwartetem Verhalten und Abstürzen führte. (Ib67ee, b/275919849) - Problem behoben, bei dem die Tastatur für Textfelder in nicht mit der zusammensetzbaren
Dialog
-Funktion erstellten Dialogfeldern nicht angezeigt wurde (I82551, b/262140644)
Version 1.4.1
5. April 2023
androidx.compose.ui:ui-*:1.4.1
wurde veröffentlicht. Version 1.4.1 enthält diese Commits.
Fehlerkorrekturen
- Behebt ein Problem mit
ParentDataModifier
, dasAndroidView
nicht betrifft (b/274797771)
Version 1.4.0
22. März 2023
androidx.compose.ui:ui-*:1.4.0
wurde veröffentlicht. Version 1.4.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.3.0
- Es wurde eine neue
PinnableContainer
API hinzugefügt, mit der Lazy-List-Elemente angepinnt werden können, damit sie nicht verworfen werden, wenn sie außerhalb des gültigen Bereichs gescrollt werden.Modifier.focusable()
verwendet diesen Mechanismus beispielsweise, um das Element anzupinnen, auf dem der Fokus gerade liegt. (Ib8881, b/259274257, b/195049010) - Das Fokussystem wird mithilfe der neuen experimentellen
Modifier.Node
APIs neu geschrieben. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/916/914{/151818) - In der
IsContainer
-Semantikeigenschaft auf Oberflächen hinzugefügt. Diese Eigenschaft wird in einer späteren Änderung verwendet, mit der die Durchquerungsreihenfolge basierend auf der semantischen Bedeutung von Elementen wie Oberflächen festgelegt wird. (I63379) - Die neue Bedienungshilfen-Rolle
DropdownList
wurde hinzugefügt. Damit kann das Verhalten vonTalkBack
beim Fokussieren aufandroid.widget.Spinner
repliziert werden. (I177e5, b/236159001) - Du kannst jetzt
PlatformTextStyle(emojiSupportMatch)
verwenden, um die Verarbeitung der Emoji-Unterstützung für einen einzelnen Absatz zu deaktivieren. (Ia7100, b/139326806) - Bei Android Compose-UI-Tests werden jetzt Layoutübergänge für jeden Frame ausgeführt, wenn Frames ausgeführt werden, um inaktiv zu werden (z.B. über
waitForIdle
). Dies kann sich auf Tests auswirken, bei denen die Bestätigung für einzelne Frames von Layoutanimationen durchgeführt wird. (I8ea08, b/222093277) - Die experimentelle Funktion
TextMotion
wurde zuTextStyle
hinzugefügt, um für Text entwederStatic(default)
oder Animiert zu definieren. Verwenden SieTextMotion.Animated
, wenn der Text durch Animation skaliert, übersetzt oder gedreht werden soll. (I24dd7)
Version 1.4.0-rc01
8. März 2023
androidx.compose.ui:ui-*:1.4.0-rc01
wurde veröffentlicht. Version 1.4.0-rc01 enthält diese Commits.
API-Änderungen
- Es wurde eine Überlastung der zusammensetzbaren Funktion
AndroidView
hinzugefügt, die den ParameteronReset
akzeptiert. Damit können View-Instanzen wiederverwendet werden, wenn ihr Knoten in der Zusammensetzung verworfen und auf kompatible Weise wiederverwendet wird. Dies ist besonders nützlich fürLazyRows
undLazyColumns
der Ansichten. (I3f10d, b/230099236) - Einführung einer neuen Low-Level-
PlatformTextInputAdapter
-API zum Erstellen benutzerdefinierter Texteingabeimplementierungen, die direkt mit Plattform-APIs kommunizieren. (I58df4)
Fehlerkorrekturen
- Mit der Semantikaktion
SetText
vonBasicTextField
wird der Textpuffer jetzt mit demselben Codepfad wie IME-Updates und die Testfunktionen (z.B.performTextReplacement
) aktualisiert. - Für Texttestfunktionen
performTextClearance
,performTextReplacement
undperformTextSelection
wird jetztSemanticsActions
verwendet. (I0807d, b/269633168, b/269624358)
Version 1.4.0-beta02
22. Februar 2023
androidx.compose.ui:ui-*:1.4.0-beta02
wurde veröffentlicht. Version 1.4.0-beta02 enthält diese Commits.
API-Änderungen
- Die
modifierElementOf()
API wurde entfernt. Bitte verlängern Sie es stattdessen direkt vonModifierNodeElement
. (I2256b) - Es wurde ein neuer
Modifier.Node.onReset()
-Callback hinzugefügt, mit dem du einen lokalen Status zurücksetzen kannst, um den Fall, dassLayout
wiederverwendet wird, korrekt zu verarbeiten (z. B. als Element vonLazyColumn
). DasFocusTargetModifierNode
-Objekt wurde korrigiert, sodass der Fokus nun korrekt zurückgesetzt wurde. (I65495, b/265201972) - Der
BlendMode
-Parameter wurde den MethodenDrawScope.drawText
,Paragraph.paint
undMultiParagraph.paint
hinzugefügt, um beim Zeichnen von Text auf Canvas verschiedene Mischalgorithmen zu unterstützen. (I57508)
Fehlerkorrekturen
- Der Algorithmus für die Fokusreihenfolge von Bedienungshilfen wurde verbessert. So werden beispielsweise die oberen/unteren Balken häufiger zuerst bzw. zuletzt vorgelesen (74e9c5).
Version 1.4.0-beta01
8. Februar 2023
androidx.compose.ui:ui-*:1.4.0-beta01
wurde veröffentlicht. Version 1.4.0-beta01 enthält diese Commits.
API-Änderungen
PinnableContainer.PinnedHandle.unpin()
wurde inrelease()
(I4667a) umbenanntwaitUntilNodeCount
,waitUntilAtLeastOneExists
,waitUntilExactlyOneExists
undwaitUntilDoesNotExist
wurden als experimentelle API zuComposeTestRule
hinzugefügt, wodurch diewaitUntil
API so erweitert wird, dass sie alle Matcher und eine beliebige Anzahl von Knoten akzeptiert. Weitere Informationen finden Sie unterComposeTestRule
. (Ifa1b9, b/226934294)- Benennen Sie
Font.MaximumAsyncTimeout
inFont.MaximumAsyncTimeoutMillis
um. (I07af5) GoogleFont.Provider.AllFontsListUri
wurde entfernt und stattdessen in ktdoc verknüpft. (I16f29)
Fehlerkorrekturen
- Dokumente für
AndroidFont.fontVariationSettings
(I7d9e2) hinzufügen
Version 1.4.0-alpha05
25. Januar 2023
androidx.compose.ui:ui-*:1.4.0-alpha05
wurde veröffentlicht. Version 1.4.0-alpha05 enthält diese Commits.
API-Änderungen
- Einführung neuer experimenteller Überlastungen für die
runComposeUiTest
- undcreate*ComposeRule
-Funktionen, dieCoroutineContext
-Parameter akzeptieren. Der Kontext wird für die Testzusammensetzung und alleLaunchedEffect
- undrememberCoroutineScope()
-Aufrufe in der Zusammensetzung verwendet. (I10614, b/265177763) - Neue API zum Erfassen der eindimensionalen Geschwindigkeit hinzufügen (If5a82)
FocusRequester
ist jetzt als@Stable
gekennzeichnet. (I580ee)- Entfernen Sie eine experimentelle Annotation aus dem
DialogProperties
-Konstruktor, die einenusePlatformDefaultWidth
-Parameter verwendet. (IC4048) - Funktion zur Berechnung von Position und Tangente in einer Entfernung auf einem Pfad mit
PathMeasure.getPosition()
undPathMeasure.getTangent()
(I3b47c) hinzugefügt - Der versehentlich offengelegte öffentliche Setter wurde am
PlatformParagraphStyle
entfernt. (I07f47) - Mehr Typen/Null-Zulässigkeit von Inline-/eingestellten/verborgenen Funktionen (I24f91)
- Fügen Sie
AnnotatedString.hasStringAnnotations
hinzu, um Annotationen ohne Zuweisungen abzufragen. (I94dfe, b/246960758) - Es wurde eine neue Überlastung für die Funktion
TextMeasurer.measure
hinzugefügt, die eineString
als Text annimmt. (I47b2d, b/242705342) - Die APIs
LineBreak
undHyphens
in TextStyle wurden auf die stabile Version umgestellt. (IC1e1d)
Externer Beitrag
notifyFocusedRect
-Methoden inTextInputSession
undTextInputService
werden nicht mehr verworfen. (I23a04, b/262648050)
Version 1.4.0-alpha04
11. Januar 2023
androidx.compose.ui:ui-*:1.4.0-alpha04
wurde veröffentlicht. Version 1.4.0-alpha04 enthält diese Commits.
Neue Funktionen
- Es wurde eine neue
PinnableContainer
API hinzugefügt, mit der Lazy-List-Elemente angepinnt werden können, damit sie nicht verworfen werden, wenn sie außerhalb des gültigen Bereichs gescrollt werden.Modifier.focusable()
verwendet diesen Mechanismus beispielsweise, um das Element anzupinnen, auf dem der Fokus gerade liegt. (Ib8881, b/259274257, b/195049010) - Das Fokussystem wird mithilfe der neuen experimentellen
Modifier.Node
APIs neu geschrieben. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/916/914{/151818) - In der
IsContainer
-Semantikeigenschaft auf Oberflächen hinzugefügt. Diese Eigenschaft wird in einer späteren Änderung verwendet, mit der die Durchquerungsreihenfolge basierend auf der semantischen Bedeutung von Elementen wie Oberflächen festgelegt wird. (I63379) - Die neue Bedienungshilfe-Rolle
DropdownList
wurde hinzugefügt. Damit kann dasTalkBack's
-Verhalten bei der Fokussierung aufandroid.widget.Spinner
repliziert werden. (I177e5, b/236159001) - Du kannst jetzt
PlatformTextStyle(emojiSupportMatch)
verwenden, um die Verarbeitung der Emoji-Unterstützung für einen einzelnen Absatz zu deaktivieren. (Ia7100, b/139326806) - Bei Android Compose-UI-Tests werden jetzt Layoutübergänge für jeden Frame ausgeführt, wenn Frames ausgeführt werden, um inaktiv zu werden (z.B. über
waitForIdle
). Dies kann sich auf Tests auswirken, bei denen die Bestätigung für einzelne Frames von Layoutanimationen durchgeführt wird. (I8ea08, b/222093277) - Die experimentelle Funktion
TextMotion
wurde zuTextStyle
hinzugefügt, um für Text entwederStatic(default)
oder Animiert zu definieren. Verwenden SieTextMotion.Animated
, wenn der Text durch Animation skaliert, übersetzt oder gedreht werden soll. (I24dd7)
API-Änderungen
- Das Argument
maxSize: IntSize
indrawText
wurde durchsize: Size
ersetzt, um es in andereDrawScope
-Funktionen einzufügen.size
ist standardmäßig aufSize.Unspecified
gesetzt. Das sollte das vorherige Standardverhalten nicht ändern. (Icd27d) - Der eingestellte experimentelle Schriftartkonstruktor wurde entfernt. (I8a724, b/261435386)
- Die UI-Tooling-Datenklasse
Group
hat jetzt das FeldisInline
, das angibt, ob die Gruppe für einen Aufruf einer zusammensetzbaren Inline-Funktion vorgesehen ist. WennisInline
auftrue
gesetzt ist, erfolgt der Aufruf an eine zusammensetzbare Inline-Funktion. Der Wert kann jedoch bei Aufrufen von zusammensetzbaren Inline-Funktionen auf „false“ gesetzt sein, die aus Modulen stammen, die mit einer Version des Compiler-Plug-ins kompiliert wurden, das keine Inline-Funktionsinformationen generiert. (Idb846) - Umstellung einer Reihe zuvor experimenteller APIs auf stabile Version
- Rotary Scroll Event API ist jetzt stabil (I42ad3, b/261561229).
FontVariation
API ist jetzt stabil (I8779f, b/241016309)- Alle
Font()
-Konstruktoren sind jetzt stabile API (I5948b, b/261435386). DeviceFontFamilyName
ist jetzt stabil (I8b640, b/261435386).- Der
AndroidFont
-Konstruktor mitvariationSettings
ist jetzt eine stabile API und kann zum Erstellen neuer Arten von Schriftdeskriptoren verwendet werden. (I5adcc, b/261565807) - Die
createFontFamilyResolver
API ist jetzt stabil. Damit lassen sich beim asynchronen Laden von Schriftarten nicht abgefangene Ausnahmen abfangen. (Ibb481, b/261435386) - Die
Font.loadingStrategy
API ist jetzt stabil. (I5937c, b/261435386) - Die
GoogleFont
API ist jetzt stabil. (IC90b0, b/261435386) TextUnit(float, TextUnitType)
ist jetzt eine stabile API. (I90c84, b/261561612)pluralStringResource
ist jetzt eine stabile API. (I09849, b/261439703)
Version 1.4.0-alpha03
7. Dezember 2022
androidx.compose.ui:ui-*:1.4.0-alpha03
wurde veröffentlicht. Version 1.4.0-alpha03 enthält diese Commits.
API-Änderungen
ExperimentalComposeUiApi
wird ausPointerIcon
entfernt (I23af8)- Stell die Bedienungshilfen für Seiten vor:
PageUp
,PageDown
,PageLeft
,PageRight
. Beachten Sie, dass diese erst ab API 29 verfügbar sind. (Ida4ab) - Die
rememberNestedScrollConnection
-Parameteransicht wurde von der Stammansicht auf die Hostansicht aktualisiert. (Ia5200) - Es wurde eine Modifier-API hinzugefügt, um Scroll-Informationen von Ancestors abzufragen. (I2ba9d, b/203141462)
- Wird in
Clickable
verwendet, um Interaktionen beim Drücken korrekt zu verzögern, wenn Gesten zu Scroll-Ereignissen werden können. - Das Problem, dass
Clickables
bei Verwendung innerhalb vonScrollable ViewGroup
die Ripples nicht korrekt verzögerte, wurde behoben. - Leisten und Tabellen wurden aktualisiert, um das Drücken korrekt zu verzögern, falls Gesten zu Scroll-Ereignissen werden können.
CompositingStrategy.Always
wurde inOffscreen
umbenannt, um anzugeben, dass dasgraphicsLayer
immer in einem Zwischenpuffer gerendert wird (I47dc1).- Layoutüberlastung mit mehreren Inhaltsbereichen ist jetzt stabil (I10566, b/248294649).
- Es wurden experimentelle neue APIs
PerfettoTrace.record {}
undPerfettoTraceRule
hinzugefügt, um Perfetto-Traces (auch als System-Traces bezeichnet) im Rahmen eines Tests zu erfassen und so das Testverhalten und die Leistung zu prüfen. (I3ba16) - Bei UI-Tests mit einer Schreibregel werden Fortsetzungen, die während
withFrameNanos
-Callbacks fortgesetzt werden, erst abgesendet, nachdem alle Frame-Callbacks ausgeführt wurden. Dies entspricht dem Verhalten des Editors bei normaler Ausführung. Tests, die auf dem alten Verhalten basieren, können jedoch fehlschlagen. Dies sollte nur Code betreffen, derwithFrameNanos
oderwithFrameMillis
direkt aufruft und bei dem die Logik außerhalb des Callbacks an die Funktionen übergeben wird, die möglicherweise innerhalb der Callbacks verschoben werden müssen. Beispiele finden Sie in den Änderungen am Animationstest in dieser Änderungsliste. - Ein optionaler
onPerformTraversals: (Long) -> Unit
-Parameter wurde demTestMonotonicFrameClock
-Konstruktor und der Factory-Funktion hinzugefügt, um Code nachwithFrameNanos
-Callbacks auszuführen, aber bevor die Aufrufer fortgesetzt werden Koroutinen. (Idb413, b/254115946, b/222093277, b/255802670) - EmojiCompat wurde zu Compose hinzugefügt (Ibf6f9, b/139326806)
- Neuer Hintergrundparameter für
@Preview
zur Unterstützung dynamischer Farben hinzugefügt (I9f512)
Fehlerkorrekturen
- Benachrichtigungen zum Anwenden von Snapshots werden jetzt gesendet, nachdem
Recomposer
die Änderungen angewendet hat. (Iad6c0, b/222093277) - Es wurden Änderungen in
captureToImage
eingeführt, um die Aufnahme von Screenshots aus mehreren Fenstern zu ermöglichen. Dies ist nützlich für Screenshot-Tests, bei denen Pop-ups zum Erstellen von Pop-ups verwendet werden. (I169c5)
Aktualisierung der Abhängigkeiten
- Die Erstellung der Benutzeroberfläche und das Zusammenstellen von Material hängen jetzt vom Lifecycle 2.5.1 ab. (I05ab0, b/258038814)
Version 1.4.0-alpha02
9. November 2022
androidx.compose.ui:ui-*:1.4.0-alpha02
wurde veröffentlicht. Version 1.4.0-alpha02 enthält diese Commits.
API-Änderungen
GraphicsLayerScope
wurde aktualisiert, um die aktuelle Größe vongraphicsLayer
bereitzustellen. Dies ist nützlich für die Berechnung vongraphicsLayer
-Transformationen als Funktion der zusammensetzbaren Größe. (If8c43,b/181387080)CompositingStrategy
wurde eingeführt, um zu bestimmen, wann eine nicht sichtbare Compositing-Ebene für das Rendern vongraphicsLayer
-Inhalten verwendet werden soll. Mit „Automatisch“ wird das Standardverhalten beibehalten, das bei Anwendung von Alpha oder einerRenderEffect/Overscroll
intern eine Ebene verwendet. Es wird immer ein Offscreen-Zwischenspeicher eingeführt, bei demModulateAlpha
die Verwendung eines Offscreen-Zwischenspeichers verhindert und stattdessen jede der aufgezeichneten Zeichenanweisungen innerhalb desgraphicsLayer
moduliert. DieModulateAlpha
-Nutzung verwendet fürRenderEffect/Overscroll
-Nutzungen weiterhin einen Zwischenspeicher außerhalb des Bildschirms (I25e82, b/256382834).invalidateSubtree()
wurdeModifier.Node
hinzugefügt, damit ganze Hierarchien für Layout und Zeichnungen ungültig werden können. (I4bd90)rememberNestedScrollInteropConnection
auf stabile Version hochstufen. Die Möglichkeit wurde eingeführt, eine Stammansicht anrememberNestedScrollInteropConnection
zu übergeben. So kann die benutzerdefinierte Ansicht besser auf Einschränkungen beim Scrollen reagieren, insbesondere in nicht standardmäßigen Ansichten (z.B.ModalBottomSheetDialog
). (I9e107)- Es wurde eine
ObserverNode
-Schnittstelle hinzugefügt, die vonModifier.Node
-Implementierungen verwendet werden kann, die benachrichtigt werden müssen, wenn sich ein zuvor gelesener Wert geändert hat (I5728b, b/247716483). - Wir haben
Paint
einen neuen Konstruktor hinzugefügt, der einen nativenandroid.graphics.Paint
akzeptiert. Außerdem wurde die ErweiterungsfunktiontoComposePaint()
hinzugefügt, die ein vorhandenes natives Paint-Objekt in Compose Paint konvertiert. (Ica91b) - Neue
FontFamily.Resolver.resolveAsTypeface
zur Verwendung unter Android hinzufügen. (I8950b) ToolingState
hinzufügen, damit Tools den internen Status von Composable ändern können (Ie6614)- Refaktorierungstools, um neu hinzugefügte Animationen besser zu unterstützen (I8677b)
- Der Parameter
minLines
wurde zu material und material3 Text,TextField
undOutlinedTextField
hinzugefügt. Damit kann die Mindesthöhe der Komponente in Bezug auf die Anzahl der Zeilen festgelegt werden (I4af1d).
Version 1.4.0-alpha01
24. Oktober 2022
androidx.compose.ui:ui-*:1.4.0-alpha01
wurde veröffentlicht. Version 1.4.0-alpha01 enthält diese Commits.
API-Änderungen
- Die neue Methode
awaitEachGesture()
für Bewegungsdetektoren wurde hinzugefügt. Sie funktioniert ähnlich wieforEachGesture()
, aber die Loop-over-Gesten erfolgen vollständig innerhalb vonAwaitPointerEventScope
, sodass Ereignisse zwischen Iterationen nicht verloren gehen können. forEachGesture()
wurde zugunsten vonawaitEachGesture()
eingestellt, weil dadurch Ereignisse zwischen Gesten verloren gehen können. (Iffc3f, b/251260206)- Das Recycling von Zugänglichkeitsobjekten in Androidx wird eingestellt. Wir haben festgestellt, dass Leistungsänderungen selbst in den ältesten unterstützten Versionen vernachlässigbar sind. (I0a961)
DrawStyle
wurde zuTextStyle
undSpanStyle
als experimentelles Attribut hinzugefügt, um das Zeichnen von umrandetem Text zu ermöglichen. (If24b8, b/155421273)- Mit
AnnotatedString.Builder
wird jetztkotlin.text.Appendable
implementiert. (I1a061, b/231030444) AnnotatedString.Builder
verfügt jetzt über eineappend(AnnotatedString, start: Int, end: Int)
-Methode, um einen Teilstring vonAnnotatedString
und den sich überschneidenden Stilen anzuhängen.- Der Parameter
DrawStyle
wurde den ZeichenfunktionenParagraph
undMultiParagraph
hinzugefügt, die das Zeichnen von umrandetem Text ermöglichen. (IC8102, b/155421273)
Externer Beitrag
- Vielen Dank, dass du
vighnesh
für das Hinzufügen von TV-Geräten zu Vorschauen hinzugefügt hast (Ie15cd)
Version 1.3
Version 1.3.3
11. Januar 2023
androidx.compose.ui:ui-*:1.3.3
wurde veröffentlicht. Version 1.3.3 enthält diese Commits.
Fehlerkorrekturen
- Behebung eines Absturzes, der manchmal unter Android 9 auftrat, wenn in der Aktivität den Status der Schreibansicht gespeichert wurde (I0b755, b/260322832)
Version 1.3.2
7. Dezember 2022
androidx.compose.ui:ui-*:1.3.2
wurde veröffentlicht. Version 1.3.2 enthält diese Commits.
Fehlerkorrekturen
- Aktualisiert zur Verwendung von Profobuf 3.21.8, wodurch eine Sicherheitswarnung in
protobuf-javalite:3.19.4
vermieden wird (CVE-2022-3171) (b/255545055)
Version 1.3.1
9. November 2022
androidx.compose.ui:ui-*:1.3.1
wurde veröffentlicht. Version 1.3.1 enthält diese Commits.
Version 1.3.0
24. Oktober 2022
androidx.compose.ui:ui-*:1.3.0
wurde veröffentlicht. Version 1.3.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.2.0
- Neue experimentelle API-Suite
LookaheadLayout
(die zuvor unmögliche Animationsverhalten ermöglicht) - Neue experimentelle API-Suite
Modifier.Node
(leistungsstarke Alternative zuModifier.composed
) - Verbesserte Unterstützung für Fenstereinblendungen.
- Unterstützung für Steuerkreuze und Hardwaretastatur in LazyLists
- Die maximale unterstützte Höhe in Dialogfeldern und Pop-ups wurde auf 8 dp reduziert (funktionsgefährdende Änderung bei einigen benutzerdefinierten Designsystemen – Begründung in den Versionshinweisen von Beta01).
- Viele geringfügige, abwärtskompatible API-Verbesserungen
- Viele Fehlerkorrekturen und Leistungsverbesserungen
Version 1.3.0-rc01
5. Oktober 2022
androidx.compose.ui:ui-*:1.3.0-rc01
wurde veröffentlicht. Version 1.3.0-rc01 enthält diese Commits.
API-Änderungen
- Neue experimentelle API-Bindestriche zur Unterstützung der automatischen Bindestrichsetzung in Text hinzugefügt (Iaa869)
Fehlerkorrekturen
- Bei
DeviceFontFamilyName
-Schriftarten werden die Varianteneinstellungenwght
undital
nicht standardmäßig konfiguriert. Stattdessen wird die Plattformeinstellung für das geladeneTypeface
verwendet. (Ia7a6d, b/246989332) LazyColumn
-Speicherleck behoben:onModifierLocalsUpdated
wurde bei der Wiederverwendung von Modifikatoren nicht mit dem Standardwert aufgerufen (b/230168389).
Version 1.3.0-beta03
21. September 2022
androidx.compose.ui:ui-*:1.3.0-beta03
wurde veröffentlicht. Version 1.3.0-beta03 enthält diese Commits.
API-Änderungen
- Optionen zum Anpassen des Zeilenumbruchs im Text hinzufügen. (I86907)
- Das Argument
size:IntSize
wurde in der MethodeTextMeasurer.measure
mitconstraints: Constraints
geändert, um Einschränkungen für die minimale Breite zu unterstützen. (I37530, b/242707525)
Fehlerkorrekturen
- Die
BackHandler
API von AndroidX Activity funktioniert jetzt in einer zusammensetzbarenDialog
-Funktion. (I35342)
Version 1.3.0-beta02
7. September 2022
androidx.compose.ui:ui-*:1.3.0-beta02
wurde veröffentlicht. Version 1.3.0-beta02 enthält diese Commits.
API-Änderungen
- Es wurde eine experimentelle Überlastung für das Layout hinzugefügt, die eine Liste mehrerer zusammensetzbarer Inhalts-Lambdas akzeptiert, wodurch bedrohliche Messbare in verschiedene Content-Lambdas unterschiedlich eingefügt werden können (Ic1b4e).
Änderungen an experimentellen Focus APIs:
FocusDirection.In
undFocusDirection.Out
wurden verworfen und durchFocusDirection.Enter
undFocusDirection.Exit
ersetzt. (Ia4262, b/183746982)- Zwei neue Fokuseigenschaften wurden hinzugefügt, um ein benutzerdefiniertes Verhalten für
FocusManager.moveFocus(Enter)
undFocusManager.moveFocus(Exit)
anzugeben. (I5f3f9, b/183746982) - Sie können jetzt mit
FocusRequester.Cancel
eine Fokusbewegung abbrechen.FocusRequester.Cancel
kann in jeder der folgenden Fokuseigenschaften verwendet werden: „Aufwärts“, „Abwärts“, „Links“, „Rechts“, „Weiter“, „Zurück“, „Start“, „Ende“, „Einstieg“ und „Beenden“. (Ib300f)
Version 1.3.0-beta01
24. August 2022
androidx.compose.ui:ui-*:1.3.0-beta01
wurde veröffentlicht. Version 1.3.0-beta01 enthält diese Commits.
Modifikatorknoten-Refaktorierung
Die Ebene, die Modifier/Modifier.Element
-Instanzen verarbeitet und ihr Verhalten auf LayoutNodes
koordiniert, wurde umfassend refaktoriert. Derzeit handelte es sich um eine Refaktorierung, die sich nicht auf die öffentliche API einer der vielen Modifikatoren in Compose ausgewirkt hat und als reine Implementierungsänderung betrachtet werden kann. Trotzdem ist dies aus verschiedenen Gründen eine wichtige Änderung. (IE4313)
Änderungsübersicht
Die hinzugefügten experimentellen Modifier.Node
APIs bieten eine Abstraktion, die es ermöglicht, den Status einer Instanz zu verwalten, der mit dem Lebenszyklus des Layoutknotens beibehalten wird und pro Layoutknoten und pro Nutzung dem entsprechenden Modifier.Element
, der ihn erzeugt hat, zugewiesen wird.
Im Großen und Ganzen bietet diese Abstraktion einen alternativen Mechanismus zur Erstellung zustandsorientierter Modifikatoren, ohne sich auf die Mechanismen der Modifier.composed
API zu verlassen.
Risiko
Diese Änderung ist strikt binär mit früheren Releases kompatibel und soll im Hinblick auf das beobachtbare Verhalten so weit wie möglich und praktisch möglich sein, wenn sie abwärtskompatibel ist. Allerdings gibt es nur wenige Subsysteme für diese Refaktorierung, die nicht umgesetzt wurden. Wahrscheinlich hat sich das Verhalten in einer Weise geändert, die von unseren Tests nicht abgedeckt wurde und noch nicht gefunden und behoben wurde.
Führen Sie ein Upgrade auf diese Version daher mit Vorsicht durch. Wenn Sie der Meinung sind, dass dadurch ein Fehler aufgetreten ist, teilen Sie uns dies bitte mit.
Experimentelle APIs
Es wurden verschiedene experimentelle APIs hinzugefügt, die sich alle auf das neue Konzept eines "Modifikatorknotens" beziehen. Modifier.Nodes werden als Ergebnis von
fun modifierElementOf(…): Modifier
abstract class ModifierNodeElement
abstract class Modifier.Node
abstract class DelegatingNode
interface LayoutModifierNode
interface DrawModifierNode
interface SemanticsNode
interface PointerInputNode
interface ModifierLocalNode
interface ParentDataModifierNode
interface LayoutAwareModifierNode
interface GlobalPositionAwareModifierNode
interface IntermediateLayoutModifierNode
Änderung des Verhaltens
Die maximal unterstützte Höhe in Dialogfeldern und Pop-ups wurde auf 8 dp reduziert.
Die maximal unterstützte Höhe für Dialogfelder und Pop-ups zum Schreiben wurde von 30 dp auf 8 dp reduziert. Diese Änderung wirkt sich sowohl auf Material als auch auf benutzerdefinierte Dialogfelder und Pop-ups der Benutzeroberfläche aus. Mit dieser Änderung soll ein Fehler in Bezug auf die Bedienungshilfen bei Android-Versionen unter S minimiert und sichergestellt werden, dass Bedienungshilfen in diesen Fenstern mit dem Inhalt des Dialogfelds oder Pop-ups interagieren können.
Sie sind nur von dieser Änderung betroffen, wenn Sie eine benutzerdefinierte Dialog- oder Pop-up-Implementierung mit einer Höhe von mehr als 8 dp erstellen. Ziehen Sie in Erwägung, die Höhe Ihres Dialogfelds oder Pop-ups zu verringern. Wenn Sie dieses neue Verhalten deaktivieren möchten, können Sie Ihr eigenes Dialogfeld oder Pop-up mit der gewünschten Höhe festlegen. Dies wird nicht empfohlen, da die Barrierefreiheit beeinträchtigt werden könnte und der Entwickler dafür sorgt, dass der untere Teil des Dialogfelds oder Pop-ups interaktiv und für Bedienungshilfen lesbar ist.
API-Änderungen
- Es wurde ein Problem behoben, bei dem
painterResource
bei Konfigurationsänderungen nicht aktualisiert wurde (I58e73, b/228862715). rememberTextMeasurer
benötigt die ParameterFontFamily.Resolver
,Density
oderLayoutDirection
nicht mehr. Verwenden Sie denTextMeasurer
-Konstruktor, um benutzerdefinierte Werte für diese Parameter bereitzustellen. (Ia1da3)DialogProperties.decorFitsSystemWindows
-Property hinzugefügt um zuzulassen, dass DialogfelderWindowInsets
unterstützen. (I57742, b/229378542)- Schriftkonstruktoren wurden zurück in die ursprüngliche Kotlin-Datei verschoben, um die Binärkompatibilität aufrechtzuerhalten. Keine Veränderung gegenüber dem letzten stabilen Release. (Ieb2f3)
- Der unnötige Operator wurde aus mehreren Gleichheitsdefinitionen entfernt. Dies hat keine Auswirkungen. (I6c309)
FontVariation.Setting
ist eine versiegelte Schnittstelle, die zukünftige Clamping APIs ermöglicht. (I11021, b/143703328)CompositionGroup.findParameters
zuSlotTree.kt
hinzufügen. Dadurch können Tools Parameter für eineCompositionGroup
abrufen, ohne die gesamte Slot-Tabelle analysieren zu müssen. (I124fe)
Version 1.3.0-alpha03
10. August 2022
androidx.compose.ui:ui-*:1.3.0-alpha03
wurde veröffentlicht. Version 1.3.0-alpha03 enthält diese Commits.
API-Änderungen
LayoutCoordinates.findRootCoordinates()
ist jetzt öffentlich (I7fa37, b/204723384).- Es wurde eine experimentelle API zum Abrufen von
LayoutCoordinates
inPlacementScope
hinzugefügt. Dadurch wissen Entwickler, wo das aktuelle Layout untergeordnete Elemente relativ zu seiner Position platzieren soll. (I5482b, b/238632578) LayoutCoordinates.transformFrom
wurde hinzugefügt, um die Matrixtransformation von einemLayoutCoordinates
zum anderen abzurufen. (Ic5ab1, b/238632578)SemanticsModifier.id
wurde eingestellt und die Semantik-ID wurde nachLayoutInfo.semanticsId
verschoben. (Iac808, b/203559524)- 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) - Schriftkonstruktoren akzeptieren jetzt eine Liste von
FontVariation.Setting
zum Konfigurieren variabler Schriftarten auf O+ Geräten. (I11a9d, b/143703328) - Fügen Sie die
FontVariation
API zum Definieren und Verwenden von variablen Schriftarten hinzu. (I3c40c, b/143703328) LineHeightStyle.Alignment
-Konstruktor ist jetzt öffentlich (experimentell) (I4bbbe, b/235876330)- Der Absatz wird nun für Android und Computer definiert. (Id387e, b/239962983)
- „Interface Paragraph“ ist jetzt mit einer versiegelten Schnittstelle versehen. Es gibt keinen Anwendungsfall für das Erstellen von abgeleiteten Absätzen. Wir empfehlen Ihnen, sich mit uns in Verbindung zu setzen, falls Sie von dieser Änderung betroffen sind. (If5247, b/239962983)
- Die experimentelle Annotation wurde aus
PlatformTextStyle
undLineHeightStyle
entfernt. (I64bef) TextInputService.show|hideSoftwareKeyboard
einstellen. Verwende im App-Code stattdessenSoftwareKeyboardController
und im IME-VerwaltungscodeTextInputSession
. (I14e4c, b/183448615)- Neue API für vorhandene Animationstypen hinzufügen (I26179)
Fehlerkorrekturen
@RequiresPermission
wurde APIs hinzugefügt, für die die BerechtigungPOST_NOTIFICATIONS
ab SDK 33 erforderlich ist. (Ie542e, b/238790278)
Version 1.3.0-alpha02
27. Juli 2022
androidx.compose.ui:ui-*:1.3.0-alpha02
wurde veröffentlicht. Version 1.3.0-alpha02 enthält diese Commits.
API-Änderungen
- Die neue Eigenschaft
PointerInputChange#pressure
wurde hinzugefügt, um die Auslastung abzurufen. (I45a5e, b/205164819) rememberTextMeasurer
wurde hinzugefügt, umTextMeasurer
-Instanzen in der Zusammensetzung einfach zu erstellen und zu speichern. (I8d66e)Rect
,RoundRect
undMutableRect
unterstützen jetzt die Kotlin-Syntaxin
zum Aufrufen dercontains
-Funktion. (Ie42b0, b/238642990)- Entfernen Sie unnötige Funktionen aus
KeyInjectionScope
, da diese mit einfacheren Teilen der API leicht implementiert werden können. Zu den Funktionen, die entfernt wurden, gehörenpressKeys
,keysDown
undkeysUp
. (I81d77) - Überarbeitete Konstanten- und Parameternamen in
KeyInjectionScope
mit dem Suffix „Millis“ wobei die Einheiten dieser Konstanten und Parameter Millisekunden sind. (Iabef5) - Die Methode
toStringForLog()
wurde zuEditCommand
hinzugefügt, um Probleme bei der Textbearbeitung zu beheben. (I53354, b/228862731) - Die Erweiterungsfunktion
drawText
wurde fürDrawScope
hinzugefügt, um eine Möglichkeit zu bieten, Text mit mehreren Stilen für zusammensetzbare Funktionen und Modifikatoren zu zeichnen, die auf einemDrawScope
wieCanvas
unddrawBehind
ausgeführt werden. (I16a62, b/190787898) - Führen Sie eine neue experimentelle API mit dem Namen
TextMeasurer
ein, die die Berechnung eines beliebigen Textlayouts ermöglicht und unabhängig von der Compose-Laufzeit identische Ergebnisse wie fürBasicText
liefert. (I17101) mapTree
zuSlotTree.kt
hinzufügen. Dadurch können Tools dasSlotTree
prüfen, ohne zuerst eine Kopie in den Arbeitsspeicher zu erstellen, wie es bei ATree der Fall ist. Für den Layout Inspector liefert dies eine Leistungsverbesserung von etwa Faktor 10 haben. (I5e113)- Die Funktion „Vorschau anzeigen“ wurde so geändert, dass sie jetzt in binären Ausgabedateien gespeichert wird, damit Entwickler
MultiPreview
-Annotationen aus Bibliotheken schreiben und wiederverwenden können. (I85699, b/233511976)
Fehlerkorrekturen
- Beim Hinzufügen von
InputEventChange
-Ereignissen zumVelocity
-Tracker berücksichtigen wir jetzt Deltas anstelle von Positionen. Dies 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). - Durch
AnnotatedString.toUpperCase
verursachte NPE korrigieren, wenn Anmerkungen vorhanden sind. (I0aca2, b/210899140)
Version 1.3.0-alpha01
29. Juni 2022
androidx.compose.ui:ui-*:1.3.0-alpha01
wurde veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.
API-Änderungen
- Neue
LookaheadLayout
, die eine Lookahead-Passung vor der tatsächlichen Messung/dem tatsächlichen Layout unterstützt. So kann das Layout bei Änderungen vorab berechnet werden. Gleichzeitig kann der Post-Lookahead-Messwert bzw. das Post-Layout die vorab berechnete Größe/Position verwenden, um die Größe und die Positionen in Richtung des Ziels zu animieren.SubcomposeLayouts
wird noch nicht unterstützt, ist aber in einer künftigen Version geplant. (I477f5) - Fügen Sie dem Pinselstil
TextStyle
undSpanStyle
einen optionalen Alpha-Parameter hinzu, um die Deckkraft vonText
zu ändern. (Ic2fac, b/234117635) - Einführung des Annotationstyps
UrlAnnotation
und der zugehörigen Methoden zur Unterstützung vonTalkBack
-Links inAnnotatedString
s. (I1c754, b/231495122) - Dienstprogrammfunktionen zur Laufzeit verschieben (I4f729)
Fehlerkorrekturen
TextLayoutResult.getLineForOffset
wirft nicht. (Idc5d6, b/235876324)
Externer Beitrag
- Neue API
WindowInfo.keyboardModifiers
hinzugefügt, um ihren Status in zusammensetzbaren Funktionen oder über einen SnapshotFlow (Icdb8a) zu beobachten
Version 1.2
Version 1.2.1
10. August 2022
androidx.compose.ui:ui-*:1.2.1
wurde veröffentlicht. Version 1.2.1 enthält diese Commits.
Fehlerkorrekturen
- Ein Nullpointer im Inspector wurde korrigiert (b/237987764)
- Ein Fehler bei der Umwandlung der Klasse beim Erinnern im Prüftool wurde behoben (b/235526153).
Version 1.2.0
27. Juli 2022
androidx.compose.ui:ui-*:1.2.0
wurde veröffentlicht. Version 1.2.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.1.0
Verbesserungen beim Fokusdurchlauf:
- Das fokussierte Scrollen von Lazy-Listen funktioniert jetzt mit der neuen
BeyondBoundsLayout
Core API - Neue APIs zur Verhaltensanpassung in
FocusOrder
undFocusProperties
- Verbesserte Funktionsweise bei Verwendung der physischen Tastatur oder der Fernbedienung des Fernsehers
- Das fokussierte Scrollen von Lazy-Listen funktioniert jetzt mit der neuen
Neue APIs für:
- Fenstereinlagen
- Kernprimitive für gestengesteuerte, unendliche Animationen und Layoutanimationen
GraphicsLayer
Funktionen, darunterRenderEffect
Viele Fehlerkorrekturen und Leistungsverbesserungen
Version 1.2.0-rc03
29. Juni 2022
androidx.compose.ui:ui-*:1.2.0-rc03
wurde 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.ui:ui-*:1.2.0-rc02
wurde veröffentlicht. Version 1.2.0-rc02 enthält diese Commits.
Version 1.2.0-rc01
15. Juni 2022
androidx.compose.ui:ui-*:1.2.0-rc01
wurde veröffentlicht. Version 1.2.0-rc01 enthält diese Commits.
API-Änderungen
- Schnittstellen in Erstellungsbibliotheken werden jetzt mit jdk8-Standardschnittstellenmethoden erstellt (I5bcf1).
- Wir haben
KeyInjectionScope
Funktionen für übergeordnete Elemente zum Einfügen von Tastendrucken hinzugefügt, während andere Tasten gedrückt gehalten oder aktiviert werden. Zu diesen Funktionen gehörenwithKeysDown
,withKeysToggled
usw. Außerdem wurden Eigenschaften hinzugefügt, mit denen geprüft wird, ob eine bestimmte Metataste gedrückt ist, z. B.isCtrlDown
, um zu prüfen, ob eine der Strg-Tasten gedrückt ist. Weitere Informationen zu den einzelnen Funktionen finden Sie inKeyInjectionScope
. (I9f6cd, b/229831515) - Es wurde eine experimentelle
OverscrollEffect
eingeführt, um neben denModifier.scrollable
-Überladungen, die diese Overscroll-Effekte akzeptieren, benutzerdefinierte Overscroll-Effekte zu ermöglichen. - Die experimentelle
LocalOverScrollConfiguration
wurde vonfoundation.gesture
in das Foundation Package verschoben und inLocalOverscrollConfiguration
umbenannt (If19fb, b/204650733) - Benennen Sie
runComposeUiTestWithoutActivity {}
inrunEmptyComposeUiTest {}
um, damit dies mitcreateEmptyComposeRule()
übereinstimmt (I6fed7).
Version 1.2.0-beta03
1. Juni 2022
androidx.compose.ui:ui-*:1.2.0-beta03
wurde veröffentlicht. Version 1.2.0-beta03 enthält diese Commits.
API-Änderungen
pressKeyTimes
sowieisCapsLockOn
und Freunde zuKeyInjectionScope
wurden hinzugefügt. Darüber hinaus unterstützt die API jetzt kombinierte Einschleusungsmuster mit Maus und Tastatur, beispielsweise das Klicken auf eine Maustaste bei gedrückter Metataste. (I4c8da, b/229831515)- Zusätzliche experimentelle Unterstützung für das Einfügen von Schlüsselereignissen. Verwenden Sie
performKeyInput
, um Schlüsselereignisse zu senden, oder senden Sie sie während einer multimodalen Eingabegeste mitperformMultiModalInput
über die Eigenschaftkey
vonMultiModalInjectionScope
. Die API-Dokumentation finden Sie unterKeyInjectionScope
. (IC5000, b/229831515) - Füge eine neue
GoogleFont.Provider.AllFontsListUri
zum Abrufen der kanonischen Internetquelle der von Android unterstützten Google Fonts hinzu. - Verbessern Sie die Fehlermeldungen, die erneut ausgegeben werden, wenn GoogleFonts im Editor nicht geladen werden kann. (I0416c)
Fehlerkorrekturen
- Beim Hinzufügen von
InputEventChange
-Ereignissen zu 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 (I51ec3, b/216582726, b/223440806, b/227709803). - Die Einstellung „
Show Layout Bounds
“ wird jetzt sofort nach dem Wechseln von der Kachel „Schnelleinstellungen“ auf zusammensetzbare Funktionen angewendet, ohne dass Sie die Aktivität verlassen und noch einmal eingeben müssen. (I843d5, b/225937688) - Bei der String-Suche nach Bedienungshilfen wird kein Laden der Schriftart ausgelöst. Zuvor wurde versucht, Schriftarten für
StyleSpans
zu laden, die zu Abstürzen führen, wennFontFamily.Resolver
überschrieben wurde. (I4609d) - Wenn Sie die Vorwärts-Löschtaste drücken, wenn sich der Cursor am Ende eines Textfelds befindet, stürzt dies nicht mehr ab.
- Für
DeleteSurroundingTextCommand
undDeleteSurroundingTextInCodePointsCommand
müssen ihre Konstruktorargumente jetzt nicht negativ sein. (Ica8e6, b/199919707)
Version 1.2.0-beta02
18. Mai 2022
androidx.compose.ui:ui-*:1.2.0-beta02
wurde veröffentlicht. Version 1.2.0-beta02 enthält diese Commits.
API-Änderungen
- Funktionen in anderen Vorschautypen wiederverwenden (I19f39)
Fehlerkorrekturen
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer
wurde inDisposeOnDetachedFromWindowOrReleasedFromPool
umbenannt, um besser widerzuspiegeln, dass Entsorgungen auftreten und nicht nur, wenn sie nicht verfügbar sind. (If15ca)
Version 1.2.0-beta01
11. Mai 2022
androidx.compose.ui:ui-*:1.2.0-beta01
wurde 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 von benutzerdefinierten Implementierungen vonLazyList
verwendet werden kann, wenn Elemente über die sichtbaren Grenzen hinaus angeordnet werden (Ifabfb, b/184670295) - Schlüsselversionen von
Modifier.composed
sind jetzt stabile API (Ie65e4, b/229988420) - Die
rememberNestedScrollConnection
API wurde vereinfacht, um die aktuellen Ansichtsinformationen mithilfe von Kompositionslokalen abzurufen (I67ca7). - Die Annotation
@ComposableTarget
und die mit@ComposableTargetMarker
gekennzeichneten Annotationen können jetzt im Dateibereich mit dem Präfix@file
verwendet werden. Bei Verwendung einer Zielannotation auf Dateiebene geht der Compiler davon aus, dass alle zusammensetzbaren Funktionen in der Datei auf den zugehörigen Applier ausgerichtet sein sollen. Mit@file:UiComposable
wird beispielsweise deklariert, dass alle@Composable
-Funktionen auf den Anwender der Benutzeroberfläche zum Erstellen ausgerichtet sind. Eine Funktion, die auf einen anderen Applier ausgerichtet ist, muss die Zielmarkierungsanmerkung für den gewünschten Applier explizit bereitstellen. (I40804) Einführung einer neuen experimentellen, plattformunabhängigen Test-API:
interface ComposeUiTest
undfun runComposeUiTest(block: ComposeUiTest.() -> Unit)
, mit denen Compose-UI-Tests ausgeführt werden können ohneTestRule
. Um einen Test ohne eineComposeTestRule
, übergeben Sie den Test als Lambda anrunComposeUiTest
und verwenden Sie die Methoden und Mitglieder im EmpfängerbereichComposeUiTest
, die dieselben wie inComposeContentTestRule
.Die Android-spezifischen
interface AndroidComposeUiTest
undfun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit)
sind hinzugefügt, um Zugriff auf die zugrunde liegende Aktivität zu gewähren, ähnlich wieAndroidComposeTestRule
Für noch mehr Kontrolle können Sieclass AndroidComposeUiTestEnvironment
Sie selbst.Die Desktop-Implementierung ist die
class DesktopComposeUiTest
, aber keine Derzeit werden Desktop-spezifische Ausführungsfunktionen angeboten.Sie können einen Test von
ComposeTestRule
zuComposeUiTest
migrieren (Beispiel für Android). Von:@RunWith(AndroidJUnit4::class) class MyTest { @get:Rule val rule = createComposeRule() @Test fun test() { rule.setContent { Text("Hello Compose!") } rule.onNodeWithText("Hello Compose!").assertExists() } }
Sie haben folgende Optionen:
@RunWith(AndroidJUnit4::class) class MyTest { @Test @OptIn(ExperimentalTestApi::class) fun test() = runComposeUiTest { setContent { Text("Hello Compose!") } onNodeWithText("Hello Compose!").assertExists() } }
Derzeit stammen
ComposeContentTestRule
undComposeTestRule
nicht vonComposeUiTest
. Das bedeutet, dass Erweiterungsfunktionen unterComposeUiTest
noch nicht auf derTestRule
-Oberfläche aufgerufen werden können. WennComposeUiTest
auf die stabile API umgestellt wird, werdenComposeContentTestRule
undComposeTestRule
geändert und vonComposeUiTest
erweitert. (Ib4e90)LineHeightBehavior
wird inLineHeightStyle
umbenannt.LineVerticalAlignment
wird inLineHeightStyle.Alignment
umbenannt.„
LineHeightTrim
“ wird umbenannt in „LineHeightStyle.Trim
“Standardkonstruktorwerte aus
LineHeightStyle
werden entfernt (I582bf, b/181155707).Brush
wurde zuTextStyle
undSpanStyle
hinzugefügt, um eine Möglichkeit zum Zeichnen von Text mit Farbverlauf zu bieten. (I53869, b/187839528)trimFirstLineTop
,trimLastLineBottom
Attribute von AusLineHeightBehavior
wurde eine einzelne Aufzählung geändert:LineHeightTrim
.LineHeightTrim
haben die Werte aus vier Zuständen, die durch zwei boolesche Werte definiert werden:FirstLineTop
,LastLineBottom
, Beide und keine (Ifc6a5, b/181155707)LineHeightBehavior
wurde zuTextStyle
undParagraphStyle
hinzugefügt. MitLineHeightBehavior
wird festgelegt, ob die Zeilenhöhe am oberen und unteren Rand der letzten Zeile angewendet wird. Außerdem definiert er die Ausrichtung der Linie in dem durchTextStyle(lineHeight)
vorgegebenen Feld.Es ist beispielsweise möglich, ein Verhalten zu erhalten, das dem CSS-Code ähnelt, definiert über
LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false)
.Konfigurationen mit
trimFirstLineTop
undtrimLastLineBottom
funktionieren nur dann korrekt, wennincludeFontPadding
„false“ ist. (I97332, b/181155707)Die Funktionen
PlatformParagraphStyle.lerp
undPlatformSpanStyle.lerp
wurden in die oberste Ebene geändert. Funktionen (I9a268)
Fehlerkorrekturen
- In der
PointerInputChange::copy
-Dokumentation wird jetzt korrekt angegeben, dass es sich um eine oberflächliche Kopie handelt. (I182f5) - Auslassungspunkte werden unterstützt, wenn die Höhe begrenzt ist und nicht für alle Textzeilen geeignet ist (Ie528c, b/168720622).
includeFontPadding
ist standardmäßig aktiviert. Es ist möglich, dieincludeFontPadding
mit dem AttributTextStyle.platformTextStyle
zu deaktivieren. In naher Zukunft werden wir das Standardverhalten ändern. Bis dahin können wir jedoch Verbesserungen an der Zeilenhöhe (aosp/2058653) besser integrieren undTextField
-Clipping-Probleme beheben. (I01423, b/171394808)
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.ui:ui-*:1.2.0-alpha08
wurde veröffentlicht. Version 1.2.0-alpha08 enthält diese Commits.
API-Änderungen
- Die
pluralStringResource
-Funktionen wurden als experimentell gekennzeichnet, um die zukünftige Internationalisierung für die Weiterentwicklung zu ermöglichen. (If24e4) - Absatz und MultiParagraph akzeptieren jetzt Einschränkungen-Parameter. Wenn
Constraints.maxHeight
übergeben wird, ist dies derzeit nicht möglich, ermöglicht aber zukünftige Berechnungen, z. B. Ellipsen, die auf der Höhe basieren. (I6afee, b/168720622) SubcomposeSlotReusePolicy.getSlotsToRetain()
akzeptiert jetzt eine benutzerdefinierte MutableSet-ähnliche Klasse, mit der keine neuen Elemente hinzugefügt werden können. (ICD314)- PointerIcon ist jetzt eine
@Stable
-Schnittstelle (I9dafe). - Der Teilverbrauch (nach unten ODER in der Position) wurde in
PointerInputChange
eingestellt. Sie könnenconsume()
verwenden, um die Änderung vollständig zu übernehmen. MitisConsumed
können Sie feststellen, ob die Änderung bereits von einer anderen Person übernommen wurde. PointerInputChange::copy()
erstellt jetzt immer eine oberflächliche Kopie. Das bedeutet, dass Kopien von „PointerInputChange
“ genutzt werden, sobald eines der Exemplare verarbeitet wurde. Wenn Sie eine ungebundenePointerInputChange
erstellen möchten, verwenden Sie stattdessen den Konstruktor. (Ie6be4, b/225669674)- Aktivieren Sie die verschachtelte Scroll-Interoperabilität zwischen Schreiben und Ansicht in der Richtung Schreiben > Ansicht. Das bedeutet, dass ein übergeordneter Editor auch verschachtelte Scroll-Deltas aus einer verschachtelten Scroll-Ansicht empfangen kann. (If7949, b/174348612)
- Neue
SemanticsProperty testTagsAsResourceId
, mit der das Schreiben mit UIAutomator-Tests für das View-System übereinstimmt. (I39c20) - 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 Mehrabsatz-Lehrkräfte haben Positionsargumente vor optionalen Argumenten neu angeordnet. (Idafaa)
AndroidFont
verwendet jetzt „typefaceLoader“ als Konstruktorparameter. (I2c971)
Version 1.2.0-alpha07
6. April 2022
androidx.compose.ui:ui-*:1.2.0-alpha07
wurde veröffentlicht. Version 1.2.0-alpha07 enthält diese Commits.
API-Änderungen
- Die neue Funktion
Snapshot.withoutReadObservation { ... }
wurde hinzugefügt. Damit können Nutzer die übergebene Lambda-Funktion ausführen, ohne die Änderungen der Statuswerte zu abonnieren, die während dieses Blocks gelesen werden. Dies kann in Anwendungsfällen nützlich sein, wenn Sie von den Snapshot-basierten Thread-sicheren Schreibvorgängen/Lesevorgängen profitieren möchten, aber den Wert lesen möchten, ohne eine unnötige Neuzusammensetzung oder erneute Messung zu verursachen. (I9f365, b/214054486) - Mit der Erweiterungseigenschaft
consumeWindowInsets
vonComposeView
können Entwickler die Nutzung von AndroidWindowInsets
deaktivieren. Dadurch können separateComposeViews
in der Hierarchie jeweilsWindowInsets
anwenden, ohne sich gegenseitig zu beeinträchtigen. (I0ef08, b/220943142) KeyboardType.Decimal
wurde als Alternative zuKeyboard.Number
hinzugefügt, um speziell ein Dezimaltrennzeichen in IME zu verwenden. (Iec4c8, b/209835363)PointerEventType.Scroll
undPointerEvent.scrollDelta
sind jetzt stabile APIs (I574c5, b/225669674).- Aktiviert die verschachtelte Scroll-Interoperabilität zwischen View und Compose für zusammenarbeitende View-Klassen. Das bedeutet, dass das Editor-Tool jetzt Scroll-Deltas an ein übergeordnetes Element der übergeordneten Datenansicht (mitwirkend) senden kann. (I5d1ac, b/174348612)
FontFamily.Resolver
wurde aktualisiert, um die systemweite Bedienungshilfe für fett formatierten Text zu integrieren (I6c1e7)Font(AssetManager, String, ...)
wurde verworfen und durchFont(String, AssetManager, ...)
ersetzt. Dies ist eine experimentelle API. (I1c7a4)- Fügen Sie den neuen Schriftartdeskriptor
Font(DeviceFontFamilyName)
hinzu, um optional beim Suchen nach vom System installierten Schriftarten während der Fallback-Ketten zu suchen. (I30468, b/219754572) - Es wurde eine temporäre Kompatibilitätskonfiguration für
includeFontPadding
in TextStyle/ParagraphStyle hinzugefügt.includeFontPadding
kann überTextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false))
geändert werden. Dies ist eine temporäre Konfigurationsoption, mit der die Migration aktiviert wird. Sie wird entfernt. (If47be, b/171394808) GoogleFont.Provider.isAvailableOnDevice
-Erweiterung für Hilfe bei der Fehlerbehebung hinzufügen. (I64e31)GoogleFont.Provider
-Konstruktor zur Verwendung mit@ArrayRes
hinzufügen (Ic5ee1, b/225984280)Compose GoogleFont
heißt jetztFont(GoogleFont)
, ansonsten bleibt die API stabil. (I125f2)
Fehlerkorrekturen
- Dem Material/Gerüst wurde eine Lint-Prüfung hinzugefügt, um sicherzustellen, dass der innere Innenrand verwendet wird (Ifb111)
Version 1.2.0-alpha06
23. März 2022
androidx.compose.ui:ui-*:1.2.0-alpha06
wurde 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) - 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) Schatten-/Umgebungsfarben wurden aus Gründen der API-Kompatibilität auf nachgestellte Parameter von
Modifier.graphicsLayer
aktualisiert (I3f864, b/160665122).Der Schatten-/Umgebungsfarbe in
GraphicsLayerScope
wurden Standardimplementierungen hinzugefügt, um abwärtskompatible API-Änderungen zu gewährleisten.Den RSB-Veranstaltungen wurde Ereigniszeit hinzugefügt (Ief8ae)
FocusOrder
wurde mitFocusProperties
zusammengeführt undfocusProperties()
verfügt jetzt über alle Funktionen vonfocusOrder()
.FocusOrder
undfocusOrder()
wurden verworfen.focusOrder()
, derfocusRequester
akzeptiert, sollte durch einenfocusRequester()
-Modifikator in Kombination mitfocusProperties()
ersetzt werden. Dadurch können die Modifikatoren stärker getrennt werden. (I601b7)Das Upgrade von
RecyclerView
undCompose
führt nun zu einer viel besseren Scrollleistung für RecyclerViews mit untergeordneten Erstellungsansichten.ViewCompositionStrategy.Default
als Methode zum Abrufen der integrierten Standardstrategie hinzufügenFügen Sie
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer
hinzu. Dies ist die neue Standardstrategie, die das Pooling von Containern wie RecyclerView wie vorgesehen verarbeitet. (If7282)Zusätzliche Unterstützung für das Hinzufügen von Anmerkungen zu Anmerkungsklassen mit @Preview als erster Schritt zum Hinzufügen der Multipreview-Funktion. Solche Anmerkungen könnten verwendet werden, um zusammensetzbare Methoden oder andere Anmerkungsklassen zu annotieren, die dann als indirekt mit der gegebenen @Preview annotiert angesehen werden könnten. (I12eff)
Referenzgeräte, die der Geräteliste für @Preview (I071c9) hinzugefügt wurden
Fehlerkorrekturen
- Vektorgrafik-APIs wurden aktualisiert und verwenden nun die korrekte zusammensetzbare Anmerkung @VectorComposable anstelle von @UiComposable (I942bc).
- Crossinline aus
AnnotatedString.Builder.withStyle
entfernen (If84d5)
Externer Beitrag
- Compose-UI: Die Properties
ambientShadowColor
undspotShadowColor
zuGraphicsLayerScope
hinzufügen (I1ba1a, b/160665122) - Pluralformen werden jetzt über die
pluralStringResource
-Funktionen unterstützt. (Ib2f23, b/191375123)
Version 1.2.0-alpha05
9. März 2022
androidx.compose.ui:ui-*:1.2.0-alpha05
wurde veröffentlicht. Version 1.2.0-alpha05 enthält diese Commits.
API-Änderungen
TextToolbar
akzeptiert jetzt Lambda-Argumente stattActionCallback
. (Ib2eb9, b/197950089)- Null-Zulässigkeit in Core und Appcompat aktualisiert, um Tiramisu DP2 zu entsprechen (I0cbb7)
- Die Measured Interface zeigt jetzt die „parentData“-Property (I3313f) an
Modifier.onPlaced
und dieOnPlacedModifier
-Schnittstelle sind jetzt stabil. (Ib5482)- Super! Texterstellungsanimationen werden jetzt unterstützt „Animator Duration scale“ (Animator-Dauerskala) in den Entwickleroptionen. (I5a4fc, b/161675988)
- Lokaler
BeyondBoundsLayout
-Modifikator hinzugefügt (If8b51, b/184670295) - Text: 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)
Fehlerkorrekturen
ComposeContentTestRule.setContent
wirft jetzt eineIllegalStateException
, wenn Sie versuchen, Inhalte festzulegen, Inhalte. (I888a5, b/199631334)- Absturz behoben, der durch Inhalte in der Zwischenablage beim Lesen von die Zwischenablage auf Android-Geräten. (I06020, b/197769306)
- Verbessern Sie die Scrollproben für das RSB. (I6a596)
Externer Beitrag
- Aktualisiert für die Verwendung der Kotlinx-Koroutinen 1.6.0 (I3366d)
Version 1.2.0-alpha04
23. Februar 2022
androidx.compose.ui:ui-*:1.2.0-alpha04
wurde veröffentlicht. Version 1.2.0-alpha04 enthält diese Commits.
API-Änderungen
ComposableTarget
,ComposableTargetMarker
undComposableOpenTarget
, mit dem in Berichten zur Kompilierungszeit angegeben wird, Eine zusammensetzbare Funktion wird als Targeting auf eine Anwendung bezeichnet, auf die sie nicht entwickelt wurden.In den meisten Fällen können die Anmerkungen aus dem Editor Compiler-Plug-in. Die direkte Verwendung dieser Annotationen selten . Zu den Fällen, die nicht abgeleitet werden können, gehören das Erstellen und abstrakte zusammensetzbare Funktionen (z. B. -Schnittstellenmethoden), Felder oder globale Variablen, zusammensetzbare Lambdas (lokale Variablen und Parameter werden abgeleitet), oder wenn Sie
ComposeNode
oder ähnliche zusammensetzbare Funktionen verwenden.Bei benutzerdefinierten Anwendungen sind die zusammensetzbaren Funktionen, die Für
ComposeNode
oderReusableComposeNode
muss Folgendes hinzugefügt werden:ComposableTarget
-Annotation für die Funktion und alle zusammensetzbaren Lambda-Parametertypen. Es wird jedoch empfohlen, um eine Anmerkung zu erstellen, die mitComposableTargetMarker
und dann die markierte Anmerkung werden verwendet. statt direktComposableTarget
. Eine zusammensetzbare Anmerkung mitComposableTargetMarker
gekennzeichnet ist, entsprichtComposbleTarget
durch den voll qualifizierten Namen des Attributs als Anwendungsparameter. Ein Beispiel für die Verwendung vonComposableTargetMarker
sieheanroidx.compose.ui.UiComposable
. (I38f11)Font(resId, ...)
übernimmt LoadingStrategy für die stabile API. (Ief3d2)FontLoadingStrategy
ist jetzt eine stabile API. (I1ee35, b/174162090)Asynchrones Laden von Schriftarten in Texten unterstützen (I77057, b/214587005)
Fügen Sie eine Bridge API zum Konvertieren von benutzerdefiniertem
Font.ResourceLoader
inFontFamily.Resolver
hinzu. (Ia0060)
Fehlerkorrekturen
- Angegebene
FontFamily.Resolver
werden an Unterkompositionen übergeben. wie z. B. Pop-up-Fenster. - Angegebene
Font.ResourceLoader
werden an Unterkompositionen übergeben. wie z. B. Pop-up-Fenster. (I48fa5)
Version 1.2.0-alpha03
9. Februar 2022
androidx.compose.ui:ui-*:1.2.0-alpha03
wurde veröffentlicht. Version 1.2.0-alpha03 enthält diese Commits.
API-Änderungen
notifyFocusedRect
-Methoden inTextInputSession
undTextInputService
wurden verworfen und werden nicht aufgerufen. Verwenden Sie StattdessenBringIntoViewRequester
. (Ia4302, b/192043120, b/216842427, b/178211874)- Einführung:
destroyDisplayListData
Methode der Stub-KlasseRenderNode
(I1e659, b/216660268) - Es wurde eine neue API hinzugefügt, mit der untergeordnete Elemente von
SubcomposeLayout
vorab gemessen werden können. (I857ea) movableContentOf
wurde hinzugefügt, um eine zusammensetzbare Funktion zu konvertieren Lambda in eine Lambda-Funktion, die den Status und die entsprechenden Knoten ändert. an jedem neuen Ort, an dem es aufgerufen wird. Wenn der vorherige Anruf beendet wird Die Zusammensetzung wird vorübergehend bewahrt. Wenn ein neuer Aufruf erfolgt, in die Zusammensetzung, dann den Zustand -Knoten an den Standort des neuen Aufrufs verschoben werden. Wenn kein neuer Anruf wurde der Status dauerhaft entfernt. Beachten Sie, dass Beobachter benachrichtigt.Wenn ein
movableContentOf
-Lambda mehrmals im selben Zusammensetzung, neuer Status und Knoten werden für jeden Aufruf erstellt. Anrufe verlassen die Zusammensetzung und neue Anrufe gehen ein. Der Status wird von den ersten Aufrufen bis zu den eingehenden Aufrufen in der Reihenfolge, aufgerufen werden. Alle Status, die nicht von neuen Anrufen beansprucht werden, werden entfernt dauerhaft. (Ib4850)FontFamilyResolver
ist jetzt überLocalFontFamilyResolver.current
verfügbarcreateFontFamilyResolver(context)
undcreateFontFamilyResolver(context, coroutineScope)
hinzugefügt, um ein neues zu erstellen FontFamily-Resolver außerhalb des Editors.Absatz und MultiParagraph nehmen jetzt
FontFamily.Resolver
TextLayoutResult.layoutInput.fontFamilyResolver
enthält jetzt der für dieses Layout verwendete Resolver; eingestelltTextLayoutResult.layoutInput.resourceLoader
, da es nicht mehr verwendet wird. (Id5a45, b/174162090)Unterstützung für asynchrones und optionales Laden von Schriftarten mit Fallback verhalten. Dieser Pfad wird von Text und TextField verwendet und ist über FontFamilyResolver
Vorabladen von Schriftarten über
FontFamilyResolver.preload
wird unterstütztMit
FontFamilyResolver.setAsyncLoadContext
können Sie Folgendes festlegen: globalen Koroutinekontext, der zum Laden asynchroner Schriftarten verwendet wird. (I87fe8, 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. Informationen zum Hinzufügen neuer Schriftarten finden Sie unterAndroidFont
.Font.AndroidResourceLoader
-Erweiterungsfunktion ermöglicht Konstruktion einesFont.ResourceLoader
außerhalb der Komposition.loadingStrategy
-Parameter zu ressourcenbasierten Schriftarten hinzugefügt, um zuzulassen asynchrones Laden, wenn die Ressourcenschriftart auf eine herunterladbare Schriftarten-XML verweist (Ie5aea, b/174162090)Der
Typeface(FontFamily)
-Konstruktor wurde verworfen. Dies war vorab geladen wurden. Dies kann bis zu 10 Sekunden dauern, Schriftarten herunterladen können. Wenn du Schriftarten herunterlädst, wird dieser Anruf möglicherweise für 10 gesperrt Sekunden. Verwende stattdessenFontFamilyResolver.preload
.fontResource(FontFamily): Typeface
wurde verworfen. Dies war vorab geladen wurden. Dies kann bis zu 10 Sekunden dauern, Schriftarten herunterladen können. Verwenden Sie stattdessenFontFamilyResolver.preload
(If8e7c, b/174162090).Der
SubcomposeLayoutState
-Konstruktor, dermaxSlotsToRetainForReuse
akzeptiert, wurde verworfen. Stattdessen gibt es einen neuen Konstruktor, derSubcomposeSlotReusePolicy
akzeptiert – eine neue Benutzeroberfläche, die eine genauere Kontrolle darüber ermöglicht, welche Slots für die zukünftige Wiederverwendung beibehalten werden sollen. (I52c4d)Stellt HSV- und HSL-Funktion in
Color
als nicht experimentell bereit der API erstellen. Der Oklab-Farbraum ist jetzt eine öffentliche API. (I08fb6, b/180731008)Verworfene
AndroidComposeTestRule.AndroidComposeStatement
, die nicht für eine öffentliche API gedacht war und nichts für Sie getan hat. wie auch immer. (Ibc46b)Intern generierte KT-Klasse umbenennen (Ia0b9e, b/174162090)
FontLoadingStrategy.values
(I42a9d, b/174162090) entferntDas globale Ladeprogramm für Schriftarten heißt jetzt
FontFamilyResolver
. (I4f773, b/174162090)Verwende ein neues System zum Laden von Schriftarten für den Desktop. (I9ce5c, b/174162090)
FontFamily.Resolver.resolve
gibtState<Any>
(I4406c, b/174162090) zurück
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)
Version 1.2.0-alpha02
26. Januar 2022
androidx.compose.ui:ui-*:1.2.0-alpha02
wurde veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.
API-Änderungen
Modifier.onRotaryScrollEvent()
undModifier.onPreRotaryScrollEvent()
für Wear-Geräte mit rotierender Seitentaste hinzugefügt (I18bf5, b/210748686)- Experimentelle
View.createLifecycleAwareRecomposer
hinzufügen Erweiterung (I0cde6)
Externer Beitrag
PointerEvent.scrollDelta.y
ist jetzt unter Android umgekehrt. Wenn wir das Mausrad nach rechts neigen, wird 1 statt -1 zurückgegeben (Ia9811).
Version 1.2.0-alpha01
12. Januar 2022
androidx.compose.ui:ui-*:1.2.0-alpha01
wurde veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.
API-Änderungen
FontFamily.canLoadSynchronously
wurde verworfen. Diese Unterkunft hat ohne semantische Bedeutung. (Ica5ef)CompositionData
wurde das Identitätsfeld zum Generieren hinzugefügt im Layout Inspector an. (IC116e)- Wear OS-Geräte-IDs wurden zur Liste der Vorschaugeräte hinzugefügt (I93232).
Aktualisierung der Abhängigkeiten
- Jetzt abhängig von Kotlin-
1.6.10
.
Version 1.1
Version 1.1.1
23. Februar 2022
androidx.compose.ui:ui-*:1.1.1
wurde veröffentlicht. Version 1.1.1 enthält diese Commits.
Fehlerkorrekturen
- Problem mit
NullPointerException
unterandroidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
beheben (aosp/1947059, b/206677462) - Absturz behoben, der durch Inhalte in der Zwischenablage beim Lesen von die Zwischenablage auf Android-Geräten. (I06020, b/197769306)
- RTL-Fehler in
LazyVerticalGrid
behoben (aosp/1931080, b/207510535)
Version 1.1.0
9. Februar 2022
androidx.compose.ui:ui-*:1.1.0
wurde 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
<ph type="x-smartling-placeholder">
- </ph>
- In Bezug auf Compose 1.0 wird der Layoutbereich von Material-Komponenten so erweitert, dass sie den Richtlinien für Bedienungshilfen von Material für die Größe des Berührungszielbereichs entsprechen. Das Berührungsziel der Schaltfläche wird beispielsweise auf eine Mindestgröße von 48 x 48 dp erweitert, auch wenn Sie die Größe der Schaltfläche entsprechend verringern. Dadurch wird das Kompositionsmaterial auf das gleiche Verhalten der Material Design-Komponenten abgestimmt, was ein einheitliches Verhalten ermöglicht, wenn du „View“ und „Compose“ mischst. Durch diese Änderung wird außerdem sichergestellt, dass beim Erstellen der Benutzeroberfläche mit „Material erstellen“-Komponenten die Mindestanforderungen für die Barrierefreiheit auf Berührungszielbereichen erfüllt sind.
- Stabile Unterstützung für den Navigationsschienen
- 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.ui:ui-*:1.1.0-rc03
wurde 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.ui:ui-*:1.1.0-rc01
wurde veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.
Fehlerkorrekturen
- Es wurde ein Fehler behoben, der zu fehlenden Scroll-Aktionen für Bedienungshilfen führte (I7cbfb)
SemanticsNodeInteraction.captureToImage()
funktioniert jetzt auch, wennHardwareRenderer.isDrawingEnabled()
den Wertfalse
hat, indem es für die Dauer des Anrufs aktiviert wird (Idf3d0).
Version 1.1.0-beta04
1. Dezember 2021
androidx.compose.ui:ui-*:1.1.0-beta04
wurde 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
wurde bereinigt (I7078a, b/204917439). - Es wurden experimentelle APIs hinzugefügt, mit denen Nutzer PointerInputchange als Ganzes verwenden oder prüfen können, ob sie verwendet wurde oder nicht. (I2e59d)
- Unterstützt jetzt Scrollrad-Ereignisse auf der UI-Ebene. (Ia14eb, b/198214718)
- Fügen Sie experimentelle
Modifier.composed
-Überlastungen hinzu, die Schlüssel für den Vergleich auf Gleichheit und die Qualifizierung zum Überspringen von Optimierungen. (Ice799, b/205851704) - „
ComposeNotIdleException
“ endet jetzt stattdessen vonException
von direkt vonThrowable
. Beachten Sie, dass Catch-Klauseln dieException
fangen wollten, fangen jetzt vielleichtComposeNotIdleException
, wo sie das vorher noch nicht gemacht haben. (I9c217)
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.ui:ui-*:1.1.0-beta03
wurde veröffentlicht. Version 1.1.0-beta03 enthält diese Commits.
API-Änderungen
- Neuer Modifikator "Modifier.onPlaced" hinzugefügt, der Folgendes zulässt: zu beobachten. Weitere Änderungen an Der Offset des untergeordneten Modifikators kann daher basierend auf die beobachtete Placement-Änderung. (I558fd)
InjectionScope.flush()
undInjectionScope.dispose()
. Löschen aller Termine und Entsorgung der erfolgt jetzt am Ende der aufgerufenen Methode perform*Input() wie vorher. (I2bed8)MultiModalInjectionScope.Touch
undMultiModalInjectionScope.Mouse
. Um Touch- und Maus-Elemente in für multimodale Gesten erstellen,MultiModalInjectionScope.touch()
undMultiModalInjectionScope.mouse()
, die beide ein Lambda akzeptieren, für den Empfängerbereich dieser Modalität gilt. (Idde18)
Fehlerkorrekturen
- Der Standardwert für
durationMillis
inTouchInjectionScope.swipeWithVelocity
wird jetzt so berechnet, dass der Wert Wischen möglich ist. (I19deb)
Version 1.1.0-beta02
3. November 2021
androidx.compose.ui:ui-*:1.1.0-beta02
wurde veröffentlicht. Version 1.1.0-beta02 enthält diese Commits.
API-Änderungen
- 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).
- Neue Animations-APIs zur Unterstützung von Tools Insbesondere Tools zum Prüfen der Animationen und ihre Konfigurationen in einem Übergänge. (I4116e)
Externer Beitrag
- Modifier.pointerHoverIcon (I95f01) wurde hinzugefügt.
Version 1.1.0-beta01
27. Oktober 2021
androidx.compose.ui:ui-*:1.1.0-beta01
wurde veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.
API-Änderungen
- Es wurde eine experimentelle
BringIntoView
API hinzugefügt, mit der Sie eine Anfrage an übergeordnete Elemente senden können, damit diese scrollen, um ein Element sichtbar zu machen (Ib918d, b/195353459). - Neue Animations-APIs zur Unterstützung von Tools Insbesondere Tools zum Prüfen der Animationen und ihre Konfigurationen in einem Übergänge. (I4116e)
Version 1.1.0-alpha06
13. Oktober 2021
androidx.compose.ui:ui-*:1.1.0-alpha06
wurde veröffentlicht. Version 1.1.0-alpha06 enthält diese Commits.
API-Änderungen
ExperimentalComposeUiApi
ausViewRootForInspector
entfernen undLayoutInfo.ownerViewId
(I5c2e3)- Eine Überlastung ohne Kinder für das Layout wurde mit verbesserter Effizienz hinzugefügt (Ib0d9a).
InternalCompilerApi
wurde aus den Composer-Methoden entfernt, die müssen modulübergreifend aufgerufen werden (I1aa0b)SemanticsNodeInteraction.performSemanticsAction
ist jetzt wieder verfügbar DieSemanticsNodeInteraction
, auf der die Funktion aufgerufen wurde. (I9e5db)- LocalInputModeManager CompositionLocal wurde hinzugefügt, um TouchMode/NonTouchMode zu erkennen. (I6a83c, b/175899786)
- „
viewConfiguration: ViewConfiguration
“ zu „LayoutInfo
“ hinzugefügt damit Kunden den richtigen Wert für Dinge wie langes Drücken Timeout festlegen. (I76ca6) <ph type="x-smartling-placeholder">- </ph>
viewConfiguration: ViewConfiguration
hinzugefügt zuInjectionScope
, damit Tests die Eingabeeinschleusung basierend auf zum Beispiel durch langes Drücken der Zeitüberschreitung oder Touch-Slop.- Die Standarddauer für langes Drücken und Doppeltippen wurde geändert
die Eingabe per Touchscreen oder Maus
auf Grundlage der Werte in
InjectionScope.viewConfiguration
- Implementierung von „ExposedDropdownMenu“ basierend auf „ExposedDropdownMenuBox“ mit TextField und DropdownMenu (If60b2)
- „closeOnOutsideClick“ wurde zu PopupProperties hinzugefügt, wodurch die eingestellte Funktion „ „ „distOnOutsideClick“ ersetzt" ersetzt wurde. Die neue Eigenschaft empfängt die Klickposition und die Ankergrenzen und ermöglicht so eine genauere Kontrolle darüber, ob onDismissRequest aufgerufen werden soll oder nicht. So lässt sich beispielsweise verhindern, dass der Anker bei Berührungen geschlossen wird.
- updateAndroidWindowManagerFlags wurde zu PopupProperties hinzugefügt, um eine Low-Level-Steuerung über die Flags zu bieten, die vom Pop-up an Android WindowManager übergeben werden. Der Parameter der Lambda-Funktion sind die Flags, die aus den PopupProperties-Werten berechnet werden, die zu WindowManager-Flags führen: z.B. fokussierbar. Das Ergebnis der Lambda-Funktion sind die endgültigen Flags, die an den Android WindowManager übergeben werden. Standardmäßig lässt updateAndroidWindowManagerFlags die aus Parametern berechneten Flags unverändert. Diese API sollte mit Vorsicht verwendet werden, und zwar nur in Fällen, in denen das Pop-up sehr spezifische Anforderungen an das Verhalten stellt. (I6e9f9)
- „
Recomposer.state
“ wurde verworfen und ersetzt durchRecomposer.currentState
, um seinen Typ in einen StateFlow zu ändern (Ic2ab3, b/197773820) flush()
unddispose()
wurden zuInjectionScope
hinzugefügt. Verwendung wenn Sie alle in der Warteschlange befindlichen Ereignisse sofort löschen möchten und wenn Sie den Umfang beseitigen möchten. (Ifb73a)performScrollToNode(matcher: SemanticsMatcher)
hinzugefügt, die scrollbarer Container zu dem Inhalt, der mit dem angegebenen Matcher. (Ic1cb8)InjectionScope
implementiert jetztDensity
, sodass Sie Folgendes tun können: Umwandlung von px in dp inperformTouchInput
und Freunden einfach. (I8fe1f)
Fehlerkorrekturen
- AndroidView gibt jetzt „LocalLifecycleOwner“ und LocalSavedStateRegistryOwner mit seiner Ansicht über ViewTreeLifecycleOwner und ViewTreeSavedStateRegistryOwner. (I38f96, b/179708470)
- Das Problem mit Wear OS SwipeToDismissBox wurde behoben, wenn das Wischen manchmal nicht funktionierte. (I9387e)
- Die Standardzeit zwischen injizierten Eingabeereignissen von 10 ms auf 16 ms geändert. Dies kann sich auf das Ergebnis von Tests die Eingabegesten wie ein bestimmtes Wischen ausführen. (I829fd)
Version 1.1.0-alpha05
29. September 2021
androidx.compose.ui:ui-*:1.1.0-alpha05
wurde veröffentlicht. Version 1.1.0-alpha05 enthält diese Commits.
API-Änderungen
- Zusätzliche Unterstützung für die Kommunikation zwischen Modifizierern (Id5467, b/198826874)
- Es wurden experimentelle historische Hinweise zu PointerEventChange hinzugefügt. (Ic1fd8, b/197553056, b/199921305)
density: Density
undlayoutDirection: LayoutDirection
wurden zuLayoutInfo
hinzugefügt. Dies ermöglicht Nutzern vonLayoutInfo
um die Abmessungen und Position inLayoutInfo
zu interpretieren ordnungsgemäß funktioniert. (I002f1)- Es wurde experimentelle Unterstützung für das Injizieren von Mausereignissen hinzugefügt. Verwenden Sie
performMouseInput
, um Mausereignisse oder Mausereignisse zu senden über die EigenschaftMouse
vonMultiModalInjectionScope
während eines Multimodale Eingabegeste mitperformMultiModalInput
. Weitere Informationen finden Sie unterMouseInjectionScope
für die Dokumentation der verfügbaren API. (Iaa4a8, b/190493367)
Fehlerkorrekturen
- Die Unterstützung von Bedienungshilfen für scrollbare Elemente wurde korrigiert (sowohl faszinierend als auch nicht lazy) beim Scrollen (I6cdb0)
TouchInjectionScope.swipeWithVelocity
verbessert. Jetzt akzeptiert eine größere Bandbreite an Eingabevariablen und schlägt Änderungen an der Eingabe, wenn kein Swipe erstellt werden kann (I40fbe, b/182477143)
Version 1.1.0-alpha04
15. September 2021
androidx.compose.ui:ui-*:1.1.0-alpha04
wurde veröffentlicht. Version 1.1.0-alpha04 enthält diese Commits.
API-Änderungen
PointerEvent
hat jetzt einenPointerEventType
um Hover-Ereignisse zu unterstützen. (I091fa)- Untergeordnete Elemente dürfen Zeigereingaben außerhalb von akzeptieren der Zeiger-Eingabegrenzen der übergeordneten Einheit. Eltern können diese Daten abfangen. Aufrufe mit der Eigenschaft PointerInputScope.alwaysInterceptChildEvents (I9eae3, b/192479655)
performGesture
undGestureScope
wurden eingestellt, die Folgendes enthalten: wurde durchperformTouchInput
undTouchInjectionScope
ersetzt. (Ia5f3f, b/190493367)touchBoundsInRoot
zuSemanticsNode
hinzugefügt, die die Mindestgröße des Berührungszielbereichs enthält, damit Entwickelnde können Sie sicherstellen, dass Berührungszielbereiche den Mindestanforderungen für die Barrierefreiheit entsprechen. (I2e14b, b/197751214)- Implementierung von Inspectable wiederholen (I927bc, b/191017532)
- Parametername des Inspectable-Tags wurde so geändert, dass es zusammengefügt wird (I3a482, b/191017532)
performTouchInput
undTouchInjectionScope
wurden eingeführt als Ersatz fürperformTouchInput
undTouchInjectionScope
, Pflaster anderen Modalitäten wie der Maus den Weg geben.TouchInjectionScope
hat dieselben Methoden wieGestureScope
, wobei die mit Ausnahme vonmovePointerTo
undmovePointerBy
, die inupdatePointerTo
undupdatePointerBy
umbenannt. Alle anderen Methoden sind identisch.Das Verhalten von
TouchInjectionScope
ist fast identisch mitGestureScope
mit zwei kleinen Details:- Beim Senden eines Down-Ereignisses, während Zeiger ohne Bewegung
Es wurde ein Move-Ereignis gesendet. Mit anderen Worten:
updatePointerTo()
wurde verwendet, aber nichtmove()
und dann wirddown()
aufgerufen), gilt die vorherige wird die Ereigniszeit verschoben und ein Bewegungsereignis gesendet. bevor das Down-Ereignis gesendet wird. Die neue Implementierung sendet weiterhin den Termin verschoben, aber nicht um den Termin in diesem spezifischen Szenario. - Beim Senden eines Aufwärtsereignisses, während Cursor bewegt wurden, ohne dass ein Move-Ereignis senden (ähnlich wie oben), wird die vorherige Implementierung würde die Ereigniszeit verschieben und vor dem Senden des nach oben. Weder noch: Die neuen Positionen der werden die Zeiger nur durch das Ereignis "up" widergespiegelt.
Mit
TouchInjectionScope
wird schließlich eine neue Methode eingeführt,currentPosition(pointerId: Int)
zum Abrufen der aktuellen Position des einen bestimmten Zeiger. (If1191, b/190493367)- Beim Senden eines Down-Ereignisses, während Zeiger ohne Bewegung
Es wurde ein Move-Ereignis gesendet. Mit anderen Worten:
Fehlerkorrekturen
- Erlauben, dass der Clip über die Grenzen des Berührungszielbereichs hinaus erweitert wird Clip-Bereich für eine minimale Berührungszielbereich (I43e10, b/171509422)
- 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.ui:ui-*:1.1.0-alpha03
wurde 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
Modifier.inspectable
zum Einbinden anderer Modifikatoren hinzugefügt. (I1909b, b/191017532)BlurredEdgeTreatment
API wurde hinzugefügt Anwendungsfälle einfacher in häufig verwendete Kombinationen von Clip-Flags und TileModes. Die meisten Anwendungsfälle umfassen können unkenntlich gemachte Inhalte außerhalb der Grenzen des ursprünglichen Inhalts liegen, und Bereiche außerhalb dieser Grenzen unkenntlich machen mit transparentem Schwarz oder Clip-Content bis zur Inhaltsgrenze, bei der das Sampling am nächsten Rand für Unschärfe-Kernels, die über den Inhalt hinausgehen Grenzen festzulegen. (I6b4b7, b/166927547)- RenderEffect wird jetzt unterstützt. in der Desktop-Version. Die Einführung von OffsetEffect sowie mit dem Weichzeichner-Modifikator Visuelle Effekte in einem Bereich weichzeichnen der Kompositionshierarchie. (I0f6aa, b/166927547)
- Einführung der RenderEffect API
die optional auf
Modifier.graphicsLayer
zum Ändern den Inhalt des Layers selbst. Dieses kann verwendet werden, um den Inhalt einer zusammensetzbaren Funktion unkenntlich zu machen, und untergeordnete zusammensetzbare Funktionen innerhalb einer Komposition Hierarchie. (I47c4d, b/166927547) - AwaitPointerEventScope enthält jetzt withTimeout() und withTimeoutOrNull() (I507f0, b/179239764, b/182397793)
- Der ViewConfiguration wurde die Mindestgröße des Berührungszielbereichs hinzugefügt. für die Semantik und die Zeigereingabe, um Barrierefreiheit sicherzustellen. (Ie861c)
- Unterstützung für TileMode.Decal hinzufügen die zum Definieren von Edge- für RenderEffects-Elemente, die auf der Unkenntlichmachung basieren. (I7e8ed, b/166927547)
performScrollToIndex
,performScrollToKey
,hasScrollToIndexAction
undhasScrollToKeyAction
sind jetzt stabile API (I142ae, b/178483889)- Es wurde eine Testmethode zum Abrufen der abgeschnittenen Grenzen hinzugefügt. (I6b28e)
Fehlerkorrekturen
- Methode "isBounded" entfernt von BlurredEdgeTreatment dafür explizit zu prüfen, ob die Form ist null. (I85d68)
Version 1.1.0-alpha02
18. August 2021
androidx.compose.ui:ui-*:1.1.0-alpha02
wurde veröffentlicht. Version 1.1.0-alpha02 enthält diese Commits.
API-Änderungen
- PointerEvent unterstützt jetzt das Lesen Maustasten- und Modifikatorstatus. (I6310c, b/180075467)
- Eingefügte Touch-Gesten nutzen jetzt die Zeit der MainTestClock
für die Zeit. Die aktuelle Zeit für eingefügte Ereignisse in
performGesture
wird mit der aktuellen Zeit des MainTestClock verwendet. (Ifb364, b/192064452) DpRect(DpOffset, DpSize)
-Konstruktor hinzugefügt (I2cf16, b/194219828)- DpSize-Klasse hinzugefügt (I7abb1, b/194219828)
Fehlerkorrekturen
- Aktualisierte XML-Datei mit Vektorgrafiken zur Unterstützung von ColorStateLists als Stammfarbtoneigenschaften für VectorDrawables. (I86915, b/195668138)
Version 1.1.0-alpha01
4. August 2021
androidx.compose.ui:ui-*:1.1.0-alpha01
wurde veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.
API-Änderungen
RelocationRequester.bringIntoView
akzeptiert jetzt ein Rechteck als Parameter, mit dem ein Teil einer zusammensetzbaren Funktion sichtbar wird (Ice2c5, b/194330245).AnimatedImageVector
und die zugehörigen APIs sind jetzt in der neuen Modulandroidx.compose.animation:animation-graphics
. (I60873)- Es wurde ein experimenteller Modifikator zur Verarbeitung von Anfragen für eine Umzugsadresse hinzugefügt. (I65a97, b/178211874)
Einführung der BrushPainter API für das Zeichnen eines beliebigen Pinsels in einem Painter, ähnlich wie bei ColorPainter
Brush API mit einer unveränderlichen Größe aktualisiert Parameter, der in BrushPainter abgefragt wird (Ia2752, b/189466433).
Aktualisierte Methode „DawScope#drawImage“, 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)
Die Methode
GestureScope.advanceEventTime
wurde hinzugefügt, um mehr anzugeben Timing von Ereignissen in einer Geste steuern (Ibf3e2)
Fehlerkorrekturen
- Um die Verkettung von Daten
Modifikatoren zeichnen, achten Sie darauf, dass die Modifier.paint-Implementierung
ruftdrawsContent auf.
Bisher wurde Modifier.paint auf einen Blattknoten in
die Kette der Modifikatoren, wodurch jedoch verhindert wird,
Die Konfiguration in einem zusammensetzbaren Container (z. B. Box) ist nicht möglich.
Verzierungen wie
Modifier.paint().border()
Mit Modifier.paint nach dem Zeichnen des Inhalts der angegebenen haben wir ein einheitlicheres Verhalten mit dem Modifikatormuster. (Ibb2a7, b/178201337, b/186213275) - Dialogfelder folgen jetzt dem Verhalten bei der Plattformgröße. Setzen Sie
usePlatformDefaultWidth
auf „false“, um dieses Verhalten zu überschreiben. (Iffaed, b/192682388) InfiniteAnimationPolicy
wurde nach :compose:ui (I5eb09, b/160602714) verschoben- Das Scrollen über Semantikaktionen für Lazy Listen und Komponenten für reguläres Scrollen ist jetzt animiert (Id9066, b/190742024).
Version 1.0
Version 1.0.5
3. November 2021
androidx.compose.ui:ui-*:1.0.5
wurde veröffentlicht. Version 1.0.5 enthält diese Commits.
Fehlerkorrekturen
- Ein Absturz-Tracking der abgeleiteten StatusOf-Instanzen wurde behoben. (aosp/1792247)
Version 1.0.4
13. Oktober 2021
androidx.compose.ui:ui-*:1.0.4
wurde 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.ui:ui-*:1.0.3
wurde 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.ui:ui-*:1.0.2
wurde 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.ui:ui-*:1.0.1
wurde veröffentlicht. Version 1.0.1 enthält diese Commits.
Aktualisierung der Abhängigkeiten
- Aktualisiert und abhängig von Kotlin-
1.5.21
.
Version 1.0.0
28. Juli 2021
androidx.compose.ui:ui-*:1.0.0
wurde veröffentlicht. Version 1.0.0 enthält diese Commits.
Hauptfunktionen von Version 1.0.0
Dies ist die erste stabile Version von Compose. Weitere Informationen finden Sie im offiziellen Blog „Compose Release“.
Bekannte Probleme
Wenn Sie Android Studio Bumblebee Canary 4 oder AGP
7.1.0-alpha04
/7.1.0-alpha05
verwenden, kann es zu folgendem Absturz kommen:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
Erhöhen Sie in der Datei
build.gradle
vorübergehend Ihre minSdkVersion auf 24 oder höher, um das Problem zu beheben. Dieses Problem wird in der nächsten Version von Android Studio Bumblebee und AGP7.1
behoben. (b/194289155)
Version 1.0.0-rc02
14. Juli 2021
androidx.compose.ui:ui-*:1.0.0-rc02
wurde veröffentlicht. Version 1.0.0-rc02 enthält diese Commits.
Fehlerkorrekturen
- Dialogfelder folgen jetzt dem Verhalten bei der Plattformgröße. Setzen Sie
usePlatformDefaultWidth
auf „false“, um dieses Verhalten zu überschreiben. (Iffaed, b/192682388)
Version 1.0.0-rc01
1. Juli 2021
androidx.compose.ui:ui-*:1.0.0-rc01
wurde veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.
Neue Funktionen
- UI-Tooling-Modul in
ui-tooling
undui-tooling-preview
aufteilen (Iefa28, b/190649014)
API-Änderungen
- Die eingestellten experimentellen
FocusManager#moveFocusIn
undFocusManager#moveFocusOut
(I227d7, b/170154986, b/186567354, b/168510304) wurden entfernt. - Canvas unterstützt jetzt einen contentDescription-Parameter für Barrierefreiheit. (Ib547c)
useDefaultMaxWidth
inPopupProperties
wurde inusePlatformDefaultWidth
umbenannt. (I05710)- Dialogfelder können jetzt die gesamte Bildschirmbreite nutzen. (I83929, b/190810877)
- Experimentelle Unterstützung für HSV- und HSL-Farben hinzugefügt Darstellungen. (Id7cf8, b/180731008)
Änderungen im Verhalten
- Mit der Funktion „Schreiben“
@Preview
können Sie jetztLocalActivityResultRegistryOwner
, mit denen Sie um Composables anzuzeigen, die APIs wierememberLauncherForActivityResult()
, die abhängig sind für diesen Inhaber existieren. (Ib13d1, b/185693006) - Mit der Funktion „Schreiben“
@Preview
können Sie jetztLocalOnBackPressedDispatcherOwner
, mit denen Sie um Composables anzuzeigen, die APIs wieBackHandler
verwenden die von diesem Inhaber abhängen. (Ia1c05, b/185693006)
Fehlerkorrekturen
InfiniteAnimationPolicy
wurde nachandroidx.compose.ui:ui
verschoben (I5eb09, b/160602714)- AnimierteImageVector wurde vorübergehend entfernt, um die Modulstruktur zu ändern. (I41906, b/160602714)
Version 1.0.0-beta09
16. Juni 2021
androidx.compose.ui:ui-*:1.0.0-beta09
wurde veröffentlicht. Version 1.0.0-beta09 enthält diese Commits.
API-Änderungen
- enum Role und LiveRegionMode in Inline-Klassen ändern mit privatem Konstruktor (Id1890)
- KeyboardCapitalization wird in eine Inline-Klasse konvertiert. (Id5a1c)
- Ändern Sie „HapticFeedbackType“ in „Inline-Klasse“. (I255ec)
- Modifier.pointerInteropFilter ist @ExperimentalComposeUiApi. (Iede6c)
- TextAlign, FontSynthesis und TextDirection sind jetzt inline Klassen. (I212fe)
- TextOverflow wurde in eine Inline-Klasse geändert. (I433af)
- FontStyle ist jetzt eine Inline-Klasse. (I9e48b)
Fehlerkorrekturen
- Die Schlüsselkonstanten sind vorerst @ExperimentalComposeUiApi. Wird verarbeitet private Konstanten vor der Stabilisierung deklarieren. (Ia5d48)
- Compose-Tests können jetzt mit Robolectric ausgeführt werden. Die folgenden
wurden bisher folgende Einschränkungen festgestellt:
<ph type="x-smartling-placeholder">
- </ph>
- Es gibt keine native Bitmap, daher führt
ImageBitmap()
zu einem NullPointerException aus. - Es liegt keine Zeichnung vor, daher wartet
captureToImage()
auf unbestimmte Zeit nächsten Zeichnungsdurchlauf (d.h. Deadlocks). - Es ist keine Schriftart geladen, daher wird jeglicher Text falsch gemessen. Alle Zeichen haben eine feste Höhe von etwa 20 Pixel und eine Breite von 1 Pixel.
ComposeTestRule.waitUntil {}
führt den Hauptthread nicht aus, während er wartet. Er ist also praktisch derselbe wieComposeTestRule.mainClock.advanceTimeUntil {}
. In Zukunft sind weitere Einschränkungen zu erwarten. (I284fa)
- Es gibt keine native Bitmap, daher führt
Regeln für Profil hinzugefügt
In diesem Release werden den folgenden Erstellungsmodulen (I14ed6) Profilregeln hinzugefügt:
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometrie
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit.
- androidx.compose.ui.util-
Was sind Profilregeln?
Profilregeln für eine Bibliothek werden in der Textdatei
baseline-prof.txt
imsrc/main
oder einem entsprechenden Verzeichnis angegeben. In der Datei ist eine Regel pro Zeile angegeben, wobei eine Regel in diesem Fall ein Muster für den Abgleich mit Methoden oder Klassen in der Bibliothek ist. Die Syntax für diese Regeln ist eine Obermenge des visuell lesbaren ART-Profilformats, das bei Verwendung vonadb shell profman --dump-classes-and-methods ...
verwendet wird. Für die Ausrichtung auf Methoden oder Klassen gibt es zwei Arten dieser Regeln.Eine Methodenregel hat das folgende Muster:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Und eine Klassenregel hat das folgende Muster:
<CLASS_DESCRIPTOR>
Hier steht
<FLAGS>
für mindestens eines der ZeichenH
,S
undP
, um anzugeben, ob diese Methode als „Hot“, „Startup“ oder „Post Startup“ gekennzeichnet werden soll.<CLASS_DESCRIPTOR>
ist der Deskriptor für die Klasse, zu der die Zielmethode gehört. Die Klasseandroidx.compose.runtime.SlotTable
hätte beispielsweise den DeskriptorLandroidx/compose/runtime/SlotTable;
.<METHOD_SIGNATURE>
ist die Signatur der Methode und enthält den Namen sowie die Parametertypen und Rückgabetypen der Methode. Die Methodefun isPlaced(): Boolean
fürLayoutNode
hat beispielsweise die SignaturisPlaced()Z
.Diese Muster können Platzhalter (
**
,*
und?
) enthalten, damit eine einzelne Regel mehrere Methoden oder Klassen umfasst.
Wozu dienen die Regeln?
Eine Methode mit dem Flag
H
gibt an, dass diese Methode "heiß" ist. und sollten im Voraus kompiliert werden.Eine Methode mit dem Flag
S
gibt an, dass es sich um eine Methode handelt, die beim Start aufgerufen und im Voraus kompiliert werden sollte, um die Kosten für die Kompilierung und die Interpretation der Methode beim Start zu vermeiden.Eine Methode mit dem Flag
P
gibt an, dass es sich um eine Methode handelt, die nach dem Start aufgerufen wird.Eine in dieser Datei vorhandene Klasse gibt an, dass sie beim Start verwendet wird und im Heap zugewiesen werden sollte, um Kosten für das Laden der Klasse zu vermeiden.
So funktioniert's
- Bibliotheken können diese Regeln definieren, die in AAR-Artefakte gepackt werden. Wenn dann eine Anwendung erstellt wird, die diese Artefakte enthält, werden diese Regeln zusammengeführt und die zusammengeführten Regeln zum Erstellen eines kompakten binären ART-Profils verwendet, das speziell für die Anwendung gilt. ART kann dieses Profil dann nutzen, wenn die App auf Geräten installiert wird, um im Voraus eine bestimmte Teilmenge der App zu kompilieren und so die Leistung der App zu verbessern, insbesondere bei der ersten Ausführung. Dies hat keine Auswirkungen auf Debug-fähige Anwendungen.
Version 1.0.0-beta08
2. Juni 2021
androidx.compose.ui:ui-*:1.0.0-beta08
wurde veröffentlicht. Version 1.0.0-beta08 enthält diese Commits.
API-Änderungen
NestedScrollSource
-Enum wird durch eine Inline-Klasse ersetzt. (Ie321b, b/187055290)FocusManager.clearFocus(forcedClear = true)
wird inFocusManager.clearFocus(force = true)
umbenannt (Ia0c41).- Überarbeitete enum-Verwendungen auf Inline-Klassen, um dies zu vermeiden mit ausführlichen Wenn-Aussagen, werden neue enum-Werte hinzugefügt. (I2b5eb)
@ExperimentalComposeUiApi
ausPopupProperties
entfernen. (I01fa6)PointerType
wurde von einer Aufzählung in eine Inline-Klasse geändert (If5058)- Die Properties „ContentDescription“ und „Text“ sind nicht mehr verfügbar als einzelne Werte, aber als Listen. So können Sie sie wie gewohnt zusammenführen. von Verkettungen. Bietet auch bessere Test-APIs zur Nutzung dieser Änderungen (Ica6bf, b/184825850)
Modifier.focusModifier()
wurde verworfen und durchModifier.focusTarget()
(I6c860) ersetztModifier.onSizeChanged()
undModifier.onGloballyPositioned()
sind keine Inline-Funktionen mehr (I727f6, b/186109675).KeyboardType
-Enum wird durch eine Inline-Klasse ersetzt. (I73045, b/187055290)FocusState
-Enum durchFocusState
-Schnittstelle ersetzt (Iccc1a, b/187055290)- ImeAction-Enum wird durch eine Inline-Klasse ersetzt. (I18be5, b/187055290)
PlaceholderVerticalAlign
wird in eine Inline-Klasse konvertiert. (If6290)- TextUnitType ist jetzt eine Inline-Klasse. (I4cba9)
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.
Fehlerkorrekturen
- Der in Beta07 eingeführte Fehler wurde behoben, bei dem LazyColumn-/Row-Elemente nach dem Scrollen teilweise angezeigt wurden (I8c9ac, b/188566058).
- Die Positionsänderung wird jetzt von
detectDragGesures
,detectVerticalGestures
unddetectHorizontalGestures
automatisch übernommen, sodass man change.consumePositionChange in den onDrag-Callbacks nicht aufrufen muss (I42fc4, b/185096350, b/187320697). - LayoutModifiers mit Ausrichtungslinien wurden korrigiert. Ein Fehler, der dazu führte, dass das übergeordnete Element nicht erneut gemessen wurde, als sich die Ausrichtungslinien der untergeordneten Elemente änderten, wurde behoben. (I4401f, b/174315652)
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.ui:ui-*:1.0.0-beta07
wurde veröffentlicht. Version 1.0.0-beta07 enthält diese Commits.
API-Änderungen
ViewRootForInspector
-Schnittstelle zur Verwendung im Inspector hinzugefügt (Ib70df)SubcomposeLayoutState
unterstützt jetzt die Festlegung der Anzahl von wiederverwendbaren Slots. Im Layout bleibt diese Anzahl von Slots aktiv. Sie werden nicht entsorgt, damit sie wiederverwendet werden können, wenn ein neuer Slot benötigt wird (Ieb981).- KeyEventType-Enum durch eine Inline-Klasse ersetzt (Id670a, b/187055290)
FocusDirection
-Enum wird durch eine Inline-Klasse ersetzt. (Ib6d03, b/187055290, b/184086802)- Bietet die Möglichkeit, den SubcomposeLayout-Zustand zu heben, mit der Sie den Inhalt in eine erforderliche Slot-ID vorversetzen können, wodurch der nächste Messwert schneller übergeben wird, da beim nächsten Mal keine Zusammensetzung mit der angegebenen SlotId versucht wird. (I42580, b/184940225)
- Ziehpunkt für Clip-Auswahl hinzugefügt (Iff80d, b/183408447)
- Nicht verwendete APIs für die Unterstützung von LayoutInspector wurden entfernt. (I2ac78)
Fehlerkorrekturen
- In LazyColumn/Row bleiben jetzt bis zu zwei zuvor sichtbare Elemente aktiv (nicht entsorgt), auch wenn sie bereits herausgescrollt werden. Dadurch kann die Komponente die aktiven Unterzusammensetzungen wiederverwenden, wenn ein neues Element erstellt werden muss, was das Scrollen verbessert. (IE5555)
TextGeomerticTransform
undTextDecoration
amAnnotatedString
wie angegeben angewendet. (I61900, b/184760917)
Version 1.0.0-beta06
5. Mai 2021
androidx.compose.ui:ui-*:1.0.0-beta06
wurde veröffentlicht. Version 1.0.0-beta06 enthält diese Commits.
API-Änderungen
- Konflikt mit Navigationsbewegung lösen (I1145e)
@ComposeCompilerApi
nicht mehr@RequiresOptIn
(Iab690)- Die Bedienungshilfen „CollectionInfo“ und „CollectionItemInfo“ wurden hinzugefügt, mit denen eine Sammlung und ihre Elemente für Bedienungshilfen markiert werden können (Id54ef, b/180479017).
- „
SemanticsActions.ScrollToIndex
“ wurde hinzugefügt, um durch eine Liste zu scrollen mit indexierten Elementen mit einem bestimmten IndexSemanticsProperties.IndexForKey
, um den Index eines Elements in einer Liste abzurufen mit Schlüsselelementen. Beide Aktionen werden von LazyList implementiert.SemanticsNodeInteraction.performScrollToIndex
hinzugefügt, die zum angegebenen Index scrollt undSemanticsNodeInteraction.performScrollToKey
, mit dem in einer Liste zum das Element mit dem angegebenen Schlüssel enthält. (I4fe63, b/178483889, b/161584524)
- "ownerViewId" wurde zu GraphicLayerInfo (I19f62) hinzugefügt.
- Font()-Überladungen zum Laden von Schriftarten hinzugefügt aus Assets, File und FileDescriptor (I5d382)
- Die Accessibility API
error
wurde hinzugefügt, mit der ein Knoten markiert werden kann, der eine ungültige Eingabe enthält (I12997, b/180584804, b/182142737). Font()
Überladungen zum Laden von Schriftarten hinzugefügt aus Assets, File und FileDescriptor (I43007)- Speicherunterstützung für AnnotatedString unter
TextFieldValue.Saver
„addTtsAnnotation
“ wurde hinzugefügt und mit Annotation-DienstprogrammfunktionenAnnotatedString.Builder
(I8cbdc, b/178446304) - TextUnit-Konstruktorfunktion hinzugefügt
TextUnit(value: Float, type: TextUnitType)
(I7ecce, b/178446304)
Version 1.0.0-beta05
21. April 2021
androidx.compose.ui:ui-*:1.0.0-beta05
wurde veröffentlicht. Version 1.0.0-beta05 enthält diese Commits.
API-Änderungen
- Experimentelle
FocusManager.moveFocus(In)
undFocusManager.moveFocus(Out)
hinzugefügt (Ic5534, b/183746743) - Experimentelle
performTextInputSelection
API hinzugefügt (I2dcbb, b/178510628) - Die
InputEventCallback
-Oberfläche wurde verworfen. Die Schnittstelle konnte in keinem der Public API; und wurde nicht im Code. (I34a02, b/184003208) - Eingestellt
TextLayoutResult/createTextLayoutResult
. Es handelt sich um eine nicht verwendete öffentliche Funktion, die hinzugefügt wurde für Tests. Die Funktion hat keine brauchbaren APIs zum Schreiben von Text Die Funktion wurde verworfen und wird später entfernt werden. (I80413)
Fehlerkorrekturen
- Korrigiert:
ACTION_SCROLL_FORWARD
,ACTION_SCROLL_BACKWARD
,accessibilityActionScrollLeft
,accessibilityActionScrollUp
,accessibilityActionScrollRight
undaccessibilityActionScrollDown
Scrollaktionen für Bedienungshilfen. Anstatt bis zum Ende der Seite zu scrollen, scrollbar ist, scrollt er jetzt um einen Bildschirm in die angegebene Richtung. (Ieccb0) - Die AndroidManifest-Dateien aus ui-test-manifest und ui-tooling-data sind jetzt mit Android 12 kompatibel (I6f9de, b/184718994).
Version 1.0.0-beta04
7. April 2021
androidx.compose.ui:ui-*:1.0.0-beta04
wurde veröffentlicht. Version 1.0.0-beta04 enthält diese Commits.
API-Änderungen
hideSoftwareKeyboard
undshowSoftwareKeyboard
umbenennen aktiviertSoftwareKeyboardController
inhide()
bzw.show()
.- Stellen Sie die vollständige CompositionLocal-Oberfläche für LocalSoftwareKeyboardController. Damit kann es festgelegt werden (insbesondere nützlich in Tests) (I579a6)
- Die LiveRegion Accessibility API wurde hinzugefügt. Wenn der Knoten als Live-Region markiert ist, informiert den Nutzer automatisch über die Änderungen (Idcf6f, b/172590946).
- TextOverflow.Visible. (Ic8f89)
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. AndroidViewBinding
entfernt jetzt ordnungsgemäß Fragmente, die überFragmentContainerView
aufgebläht wurden,AndroidViewBinding
wird aus dem Editor entfernt Hierarchie. (Ib0248, b/179915946)AndroidViewBinding
ist jetzt korrekt verschachtelt Fragmente, die überFragmentContainerView
aufgebläht wurden, IhrComposeView
liegt innerhalb vonFragment
, das Probleme beim Speichern und Wiederherstellen Fragmenten. (I70eb0, b/179915946)- Compose ViewBinding ist jetzt abhängig von
Fragment
1.3.2
und zeigt nun konsequent Fragmente,FragmentContainerView
nach Konfigurationsänderungen. (I0743d, b/179915946)
Version 1.0.0-beta03
24. März 2021
androidx.compose.ui:ui-*:1.0.0-beta03
wurde veröffentlicht. Version 1.0.0-beta03 enthält diese Commits.
API-Änderungen
- Verzögerte Prüfung auf ViewTree-Abhängigkeiten von ComposeView (I8dbbf, b/182466548)
- Optionale Parameter
startX
/endX
undstartY
/endY
hinzugefügt bisswipeUp
/swipeDown
/swipeLeft
/swipeRight
Funktionen inGestureScope
. (I49e2d, b/182063305)
Version 1.0.0-beta02
10. März 2021
androidx.compose.ui:ui-*:1.0.0-beta02
wurde veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.
API-Änderungen
- 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) - Die folgenden
SemanticsMatcher
s wurden entfernt: <ph type="x-smartling-placeholder">- </ph>
hasWidth(width, tolerance)
hasHeight(height, tolerance)
hasLeftPosition(left, tolerance)
hasTopPosition(top, tolerance)
hasRightPosition(right, tolerance)
hasBottomPosition(bottom, tolerance)
(If16bd)
- Die folgende
SemanticsMatchers
wurde markiert als @ExperimentalTestApi: <ph type="x-smartling-placeholder">- </ph>
hasWidth(width, tolerance)
hasHeight(height, tolerance)
hasLeftPosition(left, tolerance)
hasTopPosition(top, tolerance)
hasRightPosition(right, tolerance)
hasBottomPosition(bottom, tolerance)
(Ia600c)
- Die folgenden
SemanticsMatcher
s wurden hinzugefügt: <ph type="x-smartling-placeholder">- </ph>
hasWidth(width, tolerance)
hasHeight(height, tolerance)
hasLeftPosition(left, tolerance)
hasTopPosition(top, tolerance)
hasRightPosition(right, tolerance)
hasBottomPosition(bottom, tolerance)
(I2f502)
Fehlerkorrekturen
- Einschränkungen für die öffentliche Nutzung experimenteller APIs erzwingen (I6aa29, b/174531520)
androidx.compose.ui:ui
ist nicht mehr von AppCompat oder Fragment abhängig. Wenn Sie in Ihrer Anwendung ein ComposeView-Objekt und Fragment und/oder AppCompat verwenden, stellen Sie sicher, dass Sie AppCompat 1.3 und höher bzw. Fragment 1.3 oder höher verwenden. Diese Versionen sind erforderlich, um den Lebenszyklus und die für ComposeView erforderlichen Inhaber von gespeicherten Status korrekt festzulegen. (I1d6fa, b/161814404)- Behebung des fehlerhaften
rememberSaveable { mutableStateOf(0) }
, der innerhalb eines Ziels von navigation-compose verwendet wurde. (I1312b, b/180042685, b/180701630) - Neue lokale Komposition (
LocalSoftwareKeyboardController
) hinzugefügt API zum Ersetzen der vorherigen SoftwareKeyboardController-Schnittstelle auf Textfeld ein. (I658b6, b/168778053) - Die seltene Ausnahme NoSuchElementException in
ComposeRootRegistry
wurde behoben.tearDownRegistry()
(IdDce1)
Version 1.0.0-beta01
24. Februar 2021
androidx.compose.ui:ui-*:1.0.0-beta01
wurde 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)
- MeasureBlocks wurde in MeasurePolicy umbenannt, eine unterhaltsame Oberfläche. Die Layout-APIs wurden für die Verwendung von MeasurePolicy aktualisiert oder vereinfacht. (Icab48, b/167662468, b/156751158)
- „
InteractionState
“ wurde durch „[Mutable]InteractionSource
“ ersetzt <ph type="x-smartling-placeholder">- </ph>
- Schnittstellen sind für das Ausgeben und Erfassen von Interaktionsereignissen verantwortlich.
- Anstatt
interactionState = remember { InteractionState() }
an Komponenten wieButton
undModifier.clickable()
zu übergeben, verwenden SieinteractionSource = remember { MutableInteractionSource() }
. - Anstelle von
Interaction.Pressed in interactionState
sollten Sie stattdessen die Erweiterungsfunktionen für InteractionSource verwenden, z. B. InteractionSource.collectIsPressedAsState(). - Für komplexe Anwendungsfälle können Sie InteractionSource.interactions verwenden, um den Interaktionsstrom zu beobachten. Weitere Informationen finden Sie in der InteractionSource-Dokumentation und den Beispielen.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- Fügen Sie AccessibilityMananger-Benutzeroberfläche und LocalAccessibilityMananger in CompositionLocals (I53520)
- Die eingestellten LayoutCoordinates-Methoden wurden entfernt. Verwenden Sie anstelle der Eigenschaft für positionInParent und boundsInParent (I580ed, b/169874631, b/175142755) die Funktion
- Durch zugrunde liegende Typen ersetzte Typaliasse:
<ph type="x-smartling-placeholder">
- </ph>
ColorStop
heißt jetztPair<Float, Color>
SpanStyleRange
ist jetzt „AnnotatedString.Range“ ParagraphStyleRange
heißt jetztAnnotatedString.Range<ParagraphStyle>
StringAnnotation
heißt jetztAnnotatedString.Range<String>
- (I8dd1a)
- 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)
Die
defaultFactory
fürcompositionLocalOf
undstaticCompositionLocalOf
ist jetzt erforderlich anstelle von optional.Durch diese Änderung wird ein möglicher Typfehler für Nicht-Nullwerte entfernt Typen, für die keine Standard-Factory angegeben wurde. Vorher würde einen Nullverweis für einen Typ liefern, der keine Nullwerte zulässt.
Für Typen, für die Nullwerte zulässig sind, sollten Sie
{ null }
als Standard festlegen Factory.Wir raten davon ab, lokale Nutzer mit Typen zu verwenden, die keine Nullwerte zulassen können, es sei denn, kann ein sinnvoller Standardwert angegeben werden. Wenn kein sinnvoller Standardwert vorhanden ist, sollte das Lambda
defaultFactory
eine Ausnahme auslösen. Allerdings dass eine Ausnahme ausgelöst wird, eine implizite Abhängigkeit von ihrer Bereitstellung, die nicht erzwungen wird durch das Typsystem. (Ifbd2a)Verworfene Methoden aus UI-Modulen wurden entfernt (I646f6)
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)
Modifier.tapGestureFilter
wurde entfernt. Verwende stattdessenModifier.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)
„imageResource“ und „vectorResource“ sind jetzt Erweiterungsfunktionen für ImageBitmap- bzw. ImageVector-Companions.
load{Image,Vector,Font}Resource
Funktionen wurden gelöscht. (I89130)AnimationClockObservable und Unterklassen wurden entfernt. AnimierteFloat-Anzeige wurde entfernt. (Icde52, b/177457083)
„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 @TestOnly-Funktion „clearRoots“ der obersten Ebene 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)
ComponentActivity.setContent()
wurde aus „Compose:ui“ entfernt. Du kannst die vonandroidx.activity:activity-compose:1.3.0-alpha01
verwenden.viewModel()
undLocalViewModelStoreOwner
wurden aus „Compose:ui“ entfernt. Verwenden Sie die ausandroidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01
(I6f36b).Modifier.scrollable wurde überarbeitet. Jetzt wird die Scrollable-Schnittstelle anstelle der ScrollableController-Klasse verwendet (I4f5a5, b/174485541, b/175294473).
CustomEvens von PointerInputModifier wurde entfernt (I02707, b/175294473)
SnapshotStateObserver ist nicht mehr experimentell (Id2e6a).
Einige zuvor eingestellte APIs wurden gelöscht (Ice5da, b/178633932).
longPressGestenFilter und DoubleClickGestenFilter wurden entfernt. Verwendung von Modifier.pointerInput mit Hilfsfunktionen, z. B. detectTapGestens (I2fedf, b/175294473)
String.format API entfernt refaktorierten Nutzungen in verschiedenen toString-Methoden, die nicht verwendet werden sollen String.format intern. (ID1290)
dp-Assertions entfernt (I798d2)
androidx.compose.runtime:runtime- zwar entfernt (I55feb)
Bei Textaktionen wird der Fokus jetzt automatisch geprüft (I13777, b/179648629).
runBlockingWithManualClock
(I15cdc, b/179664814) entferntDie Scrollposition in Modifier.verticalScroll()/horizontalScroll() wird jetzt mit "Ints" dargestellt (I81298).
FlingConfig wurde in FlingBehavior umbenannt. Sie ermöglicht jetzt die Anpassung von Stoppanimationen anstelle von vordefinierten Decays. (I02b86, b/175294473)
Es wurde eine Hilfsfunktion hinzugefügt, die für Dieselbe Aktion für alle ImeAction-Callbacks festlegen (I63447, b/179226323)
Der SoftwareKeyboardController-Callback wurde aus dem gesamten Text entfernt. werden demnächst durch eine neue API ersetzt. (Iae869, b/168778053)
FontSpan und FontWeigthStyleSpan werden nicht mehr verwendet und entfernt. (Ie5b56, b/177423444)
Folgende Änderungen an der Material API wurden vorgenommen:
- Der Parameter "contentPadding" wurde zu Top/BottomAppBar hinzugefügt, um das Standard-Padding anzupassen.
- Die Parameter in BackdropScaffold wurden neu angeordnet, um den API-Richtlinien für erforderliche Parameter vor optionalen Parametern zu entsprechen.
- Der Parameter
icon
wurde in BottomNavigationItem hinterselected
undonClick
verschoben. - Der Parameter
alwaysShowLabels
in BottomNavigationItem wurde inalwaysShowLabel
umbenannt. bodyContent
-Parameter in einigen Komponenten incontent
umbenannt.- Parameter in
ButtonDefaults.buttonColors()
neu angeordnet. Bitte beachten Sie, dass dies keinen Fehler in Ihrem Code verursacht, da sich der Typ der Parameter nicht geändert hat. Stellen Sie sicher, dass Sie entweder benannte Parameter verwenden oder die Reihenfolge manuell aktualisieren. Andernfalls funktioniert der Code nicht wie zuvor. - Der Parameter
secondaryVariant
wurde zudarkColors()
hinzugefügt. Diese Farbe hat in der Regel die gleiche Farbe wiesecondary
im dunklen Design, sorgt aber für Einheitlichkeit und eine weitere Anpassung. - ElevationDefaults und animateElevation() wurden von der öffentlichen API-Oberfläche entfernt, da sie im Allgemeinen nicht verwendet wurden bzw. nicht nützlich waren.
onValueChangeEnd
inSlider
wurde inonValueChangeFinished
umbenannt und Nullwerte zulässig.- Der Parameter
text
inSnackbar
wurde aus Konsistenzgründen incontent
umbenannt. - Der Parameter
contentPadding
wurde zuDropdownMenuItem
hinzugefügt, um das Anpassen des Standardabstands zu ermöglichen.content
wurde zu einer Erweiterung vonRowScope
. ModalDrawerLayout
wurde inModalDrawer
umbenannt.BottomDrawerLayout
wurde inBottomDrawer
umbenannt.- (I1cc66)
Fehlerkorrekturen
- Es wurde eine API zur Verwendung von animateVectorDrawable-Ressourcen in Compose hinzugefügt. Verwenden Sie
animierteVectorResource, um eine
<animated-vector>
-XML als animateImageVector zu laden und zu animieren mit PainterFor (I8ea91) - 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.ui:ui-*:1.0.0-alpha12
wurde veröffentlicht. Version 1.0.0-alpha12 enthält diese Commits.
API-Änderungen
- ViewGroups werden aus UiApplier nicht mehr unterstützt. Die verworfenen zusammensetzbaren Funktionen von emitView wurden entfernt. (Ifb214)
- Modifier.pointerInput erfordert nun das Speichern von Tasten, um anzuzeigen, wann die Koroutine zur Erkennung der Zeigereingabe für eine neue Abhängigkeiten. (I849cd)
- CompositionReference wurde in CompositionContext (I53fcb) umbenannt
- „Bounds“ wurde in „DpRect“ umbenannt (I4b32a).
- Test-Update: hasText() sucht im Textfeld sowohl nach Eingabe- als auch Label-/Hinweisen/Platzhaltern (Iab803)
- viewModel() zusammensetzbar und LocalViewModelStoreOwner wurden nach androidx.lifecycle.viewmodel.compose verschoben. Jetzt müssen Sie die separate Abhängigkeit „androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01“ hinzufügen, um sie zu verwenden. (I7a374)
- Aktion, für die Nullwerte zulässig sind, in AccessibilityAction zulassen, Aktion ändern in AccessibilityAction und CustomAccessibilityAction von CharSequence in String (I0dc82) ein
- 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)
Modifier.focusOrder()
hinzugefügt, die akzeptiert einen FocusRequester ohne Angabe eines für die benutzerdefinierte Fokussierung eine Lambda-Funktion. Hilfreich wenn wir nur einen Verweis angeben müssen aber keine benutzerdefinierte Fokusreihenfolge für eine zusammensetzbare Funktion (I4f52a, b/179180978).- 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)
- Pop-up wurde zu plattformspezifisch verschoben. AndroidPopupProperties wurde in PopupProperties umbenannt und
isFocusable
wurde inPopupProperties
(Ieeea5) in einenfocusable
-Parameter verschoben. - Dialogfeld wurde zu plattformspezifischen Angaben verschoben. AndroidDialogProperties wurde in DialogProperties umbenannt. (I4ef69, b/179138130)
- LayoutNode intern erstellt (I8a7b1, b/175103944)
- „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).
- InhaberLayer/OwnerScope/OwnerSnapshotObserver intern geändert (I4ffaf, b/175103944)
- toIntPx() wurde inroundToPx() umbenannt. (I9b7e4, b/173502290)
- IntBounds wurde in IntRect umbenannt und die API wurde verbessert. (I1f6ff)
- Die Snapshot API wurde im Hinblick auf Konsistenz mit API-Richtlinie und Ausblenden interner Implementierungsklassen aus der öffentlichen API. (Id9e32)
- Semantikaktionen zum Maximieren und Minimieren wurden hinzugefügt. Hinzugefügt Maximieren und halbMaximieren in ModalBottomSheetState (Ib5064)
- „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)
- Das verworfene BaseTextField wurde entfernt. Verwenden Sie stattdessen BasicTextField. (I71368)
- Auswahl wurde auf Fundament verschoben. (I7892b)
- Ähnlich wie zuvor entfernte die zusammensetzbare Funktion
state { 0 }
und jetzt die Verwendung wieremember { mutableStateOf(0) }
, entfernen wir die zusammensetzbare FunktionsavedInstanceState { 0 }
. Sie sollten stattdessenrememberSaveable { mutableStateOf(0) }
verwenden. Die Speicherung und Wiederherstellung erfolgen automatisch, wenn der im MutableState verwendete Typ im Bundle gespeichert werden kann. Wenn Sie jetzt ein benutzerdefiniertes Saver-Objekt übergeben haben, müssen Sie eine neue Überlastung von „merkSaveable“ mit dem ParameterstateSaver
verwenden. Die Nutzung sieht so aus:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004) - Passwortsemantik für Bedienungshilfen hinzugefügt (I231ce)
- "ProgressBarRangeInfo.Indeterminate" wurde hinzugefügt, um indeterminate Fortschrittsbalken für Bedienungshilfen zu kennzeichnen (I6fe05).
- Die Dienstprogramme
emptyContent()
und(@Composable () -> Unit).orEmpty()
wurden eingestellt, da sie sich nicht mehr positiv auf die Leistung auswirken (I0484d) snapshotFlow
undwithMutableSnapshot
wurden entfernt experimentell (I6a45f)- 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)
- UiSavedStateRegistry wurde in SaveableStateRegistry, AmbientUiSavedStateRegistry in AmbientSaveableStateRegistry umbenannt und beide in das Paket „androidx.compose.runtime.saveable“ verschoben. (I30224)
- 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)
- Outline.*-Klassen sind keine Datenklassen mehr (I4879e, b/178001427).
view.captureToImage()
ohne Ersatz entfernt. (I7fcd2)- Einführung der ColorMatrix API mithilfe von zum Ändern der RGB-Werte des Quellcontents Die ColorFilter API wurde zu einem und die Implementierung von PathEffect. (Ica1e8)
- Fügen Sie den LayoutDirection-Parameter zu createOutline der Form hinzu. Dies ermöglicht das Erstellen von richtungsabhängigen Formen für das Layout. (I57c20, b/152756983)
- „onImeActionPerformed“ wurde eingestellt. Verwenden Sie stattdessen KeyboardActions (If0bbd, b/179071523)
- Der Kontext der Koroutine
InfiniteAnimationPolicy
wurde eingeführt. -Element, das in unendlichen Animationen angewendet wird. Standardmäßig nein Richtlinie installiert ist, außer beim Ausführen von Tests mitComposeTestRule
. (I50ec4, b/151940543) - canDrag wurde aus Modifier.scrollable entfernt. (Id66e7, b/175294473)
- LayoutCoordinates.parentCoordinates wurde umbenannt in LayoutCoordinates.parentLayoutCoordinates, um ein neues parentCoordinates-Eigenschaft. Die Eigenschaft "parentCoordinates" bietet jetzt die LayoutCoordintes des übergeordneten Modifikators an. Dadurch wird umfassendere Anwendungsfälle für onSizeChanged() und onGloballyPositioned() (Idfbfd, b/177926591)
- „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)
- UnregisterProvider von SaveableStateRegistry wurde entfernt. „RegisterProvider()“ gibt jetzt das Objekt „SaveableStateRegistry.Entry“ zurück, mit dem Sie die Registrierung aufheben können (Ic4274, b/178583739).
- memorySavedInstanceState() wurde in „memorySaveable()“ umbenannt und in das Paket „androidx.compose.runtime.saveable“ verschoben. (I1366e, b/177338004)
- CoreText und CoreTextField wurden aus der öffentlichen API entfernt
<ph type="x-smartling-placeholder">
- </ph>
- Veraltete Auswahlcontainer-Überlastung entfernt
- (I99c19)
- Tests, bei denen die Funktion „Compose“ in Hierarchien verwendet wird, die direkt zum WindowManager hinzugefügt/entfernt werden, sind jetzt stabiler. (Ie81ed, b/175765614)
- 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)
- Saver, listSaver(), mapSaver(), autoSaver wurde von androidx.compose.runtime.savedinstancestate nach androidx.compose.runtime.saveable (I77fe6) verschoben
- EditCommands akzeptieren AnnotatedString. Dies ist jedoch und die Textbearbeitung mit mehreren Stilen ist implementiert. (I4c3ea)
- Verfügbarkeit und Dauer wurden entfernt. (Ib9bf4, b/177420019)
- CompositionData.asTree() und zugehörige APIs wurden verschoben. um das Modul „ui-tooling-data“ zu trennen und als experimentell zu markieren (Ic95b8).
- 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)
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)
Unbeabsichtigte öffentliche Funktion StringBuilder.deleteAt (Id6ed9) entfernen
Fehlerkorrekturen
- ComposeViews in Ansichtshierarchien platziert, die untergeordnete Elemente von sind eine andere Komposition hostet jetzt untergeordnete Kompositionen ihrer Vorgänger (I92883).
- imageFromResource aktualisiert API zur Wiederverwendung des Drawable-Cache der Ressource wenn Sie ImageBitmap-Objekte laden. (If3627, b/178751994)
Version 1.0.0-alpha11
28. Januar 2021
androidx.compose.ui:ui-*:1.0.0-alpha11
wurde veröffentlicht. Version 1.0.0-alpha11 enthält diese Commits.
API-Änderungen
- WithConstraints wurde als BoxWithConstraints überarbeitet und zu "foundation.layout" verschoben. (I9420b, b/173387208)
- Key.DPadUp wurde eingestellt. Verwenden Sie stattdessen „Key.DirectionUp“. (Iab335, b/177954892)
- ab jetzt intern. (If8e35)
- Es wurde die API FocusManager.moveFocus() hinzugefügt, um den Fokus programmatisch zu verschieben. (I045cb, b/177681839)
- Ändert PopupPositionProvider so, dass fensterbezogene Koordinaten und keine globalen Koordinaten verwendet werden. Benennt „parentGlobalBounds“ in „anchorBounds“ um und ändert „windowGlobalBounds“ in „windowSize: IntSize“ (I2994a).
- „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)
- AmbientSavedStateRegistryOwner wurde auf ähnliche Weise hinzugefügt wie die bereits vorhandenen AmbientLifecycleOwner und AmbientViewModelStoreOwner (I9a3e8, b/176756365).
- Aktualisierte Vektorgrafiken API zur Unterstützung des Analysierens der Tönung auf die Stammebene der Vektorgrafik angewendet. (Id9d53, b/177210509)
- ToolType wurde zu PointerInputChange zur Unterscheidung von Geräten hinzugefügt (Iac787, b/175142755).
- AmbientWindowManager wurde in AmbientWindowInfo umbenannt (I2686a, b/177084714, b/177084983).
- Die globalen Koordinatenmethoden wurden eingestellt und neuen fensterbasierten Koordinaten. (Iee284)
- Modifier.toolingGraphicsLayer wurde hinzugefügt, der beim Einschalten der Prüfung einen Grafikebenen-Modifikator hinzufügt. (I315df)
- 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)
- 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)
- Aktualisierte GraphicsLayerScope-Implementierung um die Umwandlung von dp in Rohpixel. (Ied528, b/176819695)
- Die Matrix API wurde so aktualisiert, dass sie der Zeile folgt. Hauptsortierung und Indexkonstanten um Conversions zwischen verschiedenen Matrixdarstellungen passend zum Framework Konvertierungslogik zwischen SkMatrix und Matrix4 intern. (I432e6)
- Die experimentellen monotonicFrameAnimationClockOf-Methoden wurden entfernt (Ib753f, b/170708374).
- Verschiebt String.fintPrecedingBreak und String.fingFollowingBreak in InternalTextApi. (I657c4)
- androidx.compose.ui.util.isSurrogatePair wurde aus der öffentlichen API entfernt. (Ia9494)
- TransformedText.transformedText wurde in TransformedText.text umbenannt
<ph type="x-smartling-placeholder">
- </ph>
- TransformedText ist keine Datenklasse mehr (Ie672a).
data class
wurde aus den folgenden Klassen entfernt: <ph type="x-smartling-placeholder">- </ph>
- InlineTextContent
- Gebietsschemaliste (I605c7)
- Die folgenden Klassen sind keine Datenklassen mehr:
<ph type="x-smartling-placeholder">
- </ph>
- AnnotatedString
- Absatzstil
- Span-Stil
- TextStyle
- Schriftstärke
- Textdekoration
- TextGeometricTransform
- Textindex
- TextLayoutErgebnis
- TextLayoutInput (Iaff99)
- VisualTransformation wurde zu einer funktionalen Schnittstelle geändert (I3bba4)
- Ein Funktionsreferenzparametertyp wurde hinzugefügt (I5e1bd).
- Transformierte Grenzen zu InspectorNode (Ice42f) hinzufügen
Fehlerkorrekturen
- onCommit, onDispose und onActive wurden zugunsten der SideEffect und DisposableEffect APIs eingestellt (If760e)
Änderungen an den werkseitigen Funktionen für Schriftart/Schriftartfamilie/Schriftart
- Factory-Funktionen hinzugefügt, die mit einem Großbuchstaben beginnen
- Eingestellte vorherige Factory-Funktionen mit Kleinbuchstaben erste Buchstaben
- Neue Factory-Funktionen geben FontFamily statt abgeleitete Klassen
- Konstruktoren der Unterklassen ausgeblendet, damit sie nur über Factory-Funktionen erstellt werden.
- Font.asFontFamily wurde in Font.toFontFamily umbenannt (I42aa7).
Einführung von
ComposeContentTestRule
, dieComposeTestRule
und definiertsetContent
, das entfernt wurde ausComposeTestRule
. Factory-MethodecreateEmptyComposeRule()
hinzugefügt das eineComposeTestRule
zurückgibt und keine Aktivität für von dir. Verwende diese Option, wenn du deine Aktivität während des Tests starten möchtest, z.B. mitActivityScenario.launch
(I9d782, b/174472899)"animateAsState" ist jetzt "animateFooAsState", wobei Foo für den Wert Typ der animierten Variablen. z.B. Gleitkommazahl, Dp, Offset usw. (Ie7e25)
Der Parameter für die Inhaltsbeschreibung wurde dem Bild und dem Symbol hinzugefügt. Sie wird verwendet, um die Bedienungshilfen zu beschreiben (I2ac4c).
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)
OnSizeChanged meldete die Größe des Layouts Inhalte. Die Größe wird jetzt an ihrer Position im Modifikatorkette. (I36b78, b/177562900)
Die emit() API und alle Überlastungen wurden verworfen und in ComposeNode umbenannt. Die APIs sind identisch, nur unter einem anderen Namen, um den Namenskonventionen in „Compose“ (I4137b) zu entsprechen.
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)
SaveObserver ersetzt CompositionLifecycleObserver und CompositionLifecycleObserver wurde verworfen.
RememberObserver
ist ein Ersatz fürCompositionLifecycleObserver
mit modifizierter Semantik und umbenannten Methoden. Der Wechsel zur neuen API kann mechanisch erfolgen. für Objekte, an die man sich nur einmal erinnert. Das heißt, die empfohlene Vorgehensweise. Wurde jedoch eine Referenz die in einer Komposition mehrfach gespeichert wurden,onRemembered
wird aufgerufen für jede Referenz, bei deronEnter
nur einmal aufgerufen wird.onEnter
mehrfach aufgerufen, wenn das Objekt in Unterzusammensetzungen verwendet wurde, wieWithConstraints
undScaffold
, sodass die SingleonEnter
-Anrufgarantie unzuverlässig und wurde entfernt fürRememberObserver
.RememberObserver
fügtonAbandoned
hinzu. Dies wird aufgerufen, wenn die DieRememberObserver
-Instanz wird von der übergebenen Callback-Funktion zurückgegeben. aufremember
gesetzt, wurde aber im Kompositionsstatus nicht gespeichert und wird daher niemalsonRemembered
aufgerufen. Dies kann tritt auf, wenn die Komposition durch eine Ausnahme beendet wird, bevor sie abgeschlossen ist, oder wird die Komposition verworfen, da der Bundesstaat eine Komposition für nicht mehr aktuell oder anderweitig nicht mehr gültig ist erforderlich. Wenn die Instanz vonRememberObserver
nach dem einzelnen Empfehlung oben: Tracking einer externen RessourceonForgotten
undonAbandoned
zeigen jeweils an, Ressource nicht mehr benötigt. Wenn das Objekt die Tracking-Funktion aktiviert, gestartet oder Ressourcen zugewiesen inonRemembered
,onAbandoned
kann ignoriert werden, da es nicht aufgerufen wird, wennonRemembered
aufgerufen. (I02c36)Verworfene arithmetische Operationen zwischen 2 oder mehr TextUnits. Die veralteten TextUnit.Sp- und TextUnit.Em-Funktionen haben Vorrang vor den Erweiterungsfunktionen wie Int.sp und Int.em. (I48369)
Ressourcen in Bibliotheken ohne explizit deklarierte öffentliche Ressourcen (z. B. über public.xml) sind jetzt standardmäßig privat. (Ia1dcc, b/170882230)
„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 auf die ineffiziente Weise vorgehen, haben wir uns entschieden, ScrollableColumn und ScrollableRow einzustellen und stattdessen LazyColumn und LazyRow zu verwenden. Nutzer können dennoch entscheiden, dass sie kein Lazy-Verhalten benötigen, und die Modifikatoren direkt wie folgt verwenden: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
Neue
items(count: Int)
-Factory-Methode für den Bereich von LazyColumn/LazyRow/LazyVerticalGrid.items(items: List)
unditemsIndexed(items: List)
sind jetzt Erweiterungsfunktionen, die bei Verwendung manuell importiert werden müssen. Neue Erweiterungsüberlastungen für Arrays:items(items: Array)
unditemsIndexed(Array)
(I803fc, b/175562574)Verwende ImeAction.None anstelle von ImeAction.NoAction.
- Verwende „ImeAction.Default“ anstelle von „ImeAction.Unspecific“ (Ie1bcc).
TestCoroutineDispatcher beim Testen nutzen (I532b6)
TextInputService.onStateUpdated wurde in updateState (Id4853) umbenannt.
Die auf „TransitionDefinition“ basierende Umstellung wurde eingestellt (I0ac57)
TextUnitType.Inherit wird entfernt. Verwenden Sie stattdessen TextUnitType.Nicht angegeben. (I9ff64)
Version 1.0.0-alpha10
13. Januar 2021
androidx.compose.ui:ui-*:1.0.0-alpha10
wurde veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.
funktionsgefährdende Änderung
Umstrukturierung des internen Compilers Die API ermöglicht Batchänderungen an den generierten Knoten als Ergebnis der Zusammensetzung Phase der Komposition, nachdem alle
@Composable
-Funktionen abgeschlossen wurden.Dies ist ein Bruch des Verhaltens die sich auf den Anwendungscode auswirken könnten, sind nicht mehr in den internen und experimentelle APIs, bis nach Änderungen angewendet. Das lässt sich in der Regel umgehen, der Code mit solchen Abhängigkeiten in einer
SideEffect
zusammensetzbar, um die Ausführung des erst nach dem Erstellen der Knoten und initialisiert. (I018da)
API-Änderungen
- Modifier.focusOrder() wurde hinzugefügt, um eine benutzerdefinierte Fokusdurchlaufreihenfolge anzugeben (I90cf5, b/175899543, b/170155556, b/170155429).
- Die eingestellte Funktion „fokusObserver“ wurde entfernt. Verwenden Sie stattdessen „onFocusChanged“ oder „onFocusEvent“ (I3ecb9, b/175156387).
- Ä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)
- Nicht verwendete PxSquared, PxCubed und PxInverse wurden entfernt. "Size.center()" wurde zu einer Eigenschaft geändert. (I973f7)
- Im ui-test-Modul kann nun die Erstellung Recomposers für zu testende UIs (Ibebd8)
- Die Geschwindigkeit wurde so geändert, dass sie Bestandteile und mathematische Geschäftsabläufe. (Ib0447)
@ExperimentalTesting
wurde in@ExperimentalTestApi
umbenannt in entspricht ähnlichen Anmerkungen der experimentellen API (Ia4502, b/171464963).- „Color.useOrElse()“ wurde in „Color.takeOrElse()“ umbenannt (Ifdcf5)
- Nicht verwendete Klassen „DpInverse“, „DpSquared“ und „DpCubed“ wurden entfernt. (I4d62b)
- „Constraints#expectedBy“ wurde in „isSatisfiedBy“ umbenannt. (I9cf5c)
- Fügen Sie einen Callback hinzu, um den Inhaber zu benachrichtigen, wenn sich die layoutnode-Grenzen ändern. (I72fd1)
- Hinzugefügt ist angegeben, isUnspezifisch, und useOrElse für Inline-Klassen mit einer Konstante "Nicht angegeben". (I93f7b, b/174310811)
[Zusammenfassung]ComposeView APIs erweitern, um Recycling zu ermöglichen Kompositionsbasierte Ansichten, deren Komposition zur erneuten Erstellung entsorgt wird . APIs zum Installieren und Erkennen von fensterbezogenen Recomposers hinzufügen und CompositionReferences zum Erstellen untergeordneter Kompositionen.
ViewCompositionStrategy zum Konfigurieren der Entsorgung von Kompositionen hinzufügen Strategie von [Zusammenfassung]ComposeViews; Standardverhalten ist Dispose auf Fenster lösen. (I860ab)
Öffentliche Any.identityHashCode() API (I025d7) entfernt
toStringAsFixed entfernt API zugunsten der Verwendung von String.format. stattdessen direkt. (Iaba6b)
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)
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)
Einführung von Outline.bounds Property, um das Begrenzungsrechteck abzurufen für verschiedene Konzepte. (I16e74, b/175093504)
Veralteter TestUiDispatcher. Verwenden Sie stattdessen Dispatchers.Main (Ic171f, b/175385255).
ImeOptions und KeyboardOptions sind keine Datenklasse mehr (I3c898, b/168684531).
Änderungen an der VisualTransformation API
- „OffsetMap“ wurde in „OffsetMapping“ umbenannt
- „OffsetMapping.identityOffsetMap“ wurde in „OffsetMapping.Identity“ umbenannt.
- PasswordTransformation ist keine Data-Klasse mehr
- OffsetMapping wurde in eigene Datei verschoben
- (I0bdf3)
"Position" wurde in "DpOffset" umbenannt und getDistance() entfernt (Ib2dfd).
Dp.isFinite() wurde in val Dp.isFinite (I50e00) geändert.
Fehlerkorrekturen
- Recomposer zeigt jetzt einen Flow des aktuellen Status an, sodass Überwachung der Aktivitäten und der damit verbundenen Auswirkungen. (Ifb2b9)
- Auf das native "keyEvent" kann jetzt über "keyEvent.nativeKeyEvent" (I87c57, b/173086397) zugegriffen werden.
animate()
wird jetzt durchanimateAsState()
ersetzt. wodurchState<T>
anstelle vonT
zurückgegeben wird. Dies ermöglicht eine bessere da der Umfang der Entwertung eingegrenzt werden kann, bis der Wert "State" gelesen wird. (Ib179e)- Semantics Role API und Role als Parameter hinzufügen klickbar, auswählbar und ein-/ausschaltbarer SemanticsModifier. Geändert Modifier.progressSemantics, damit der Slider sie auch verwenden kann. (I216cd)
- Neue koroutinebasierte API
Animatable
, die die gegenseitige Exklusivität sicherstellt zwischen seinen Animationen.- Neue DecayAnimationSpec zur Unterstützung mehrdimensionaler Abklinganimationen
- (I820f2, b/168014930)
Version 1.0.0-alpha09
16. Dezember 2020
androidx.compose.ui:ui-*:1.0.0-alpha09
wurde veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.
API-Änderungen
- Die Einstellung "KeyEvent.Alt" wurde entfernt. Verwenden Sie stattdessen „KeyEvent.isAltPressed“. (Idd695)
- Modifier.keyInputFilter und Modifier.previewKeyInputFilter wurden eingestellt. Verwenden Sie stattdessen Modifier.onKeyEvent und Modifier.onPreviewKeyEvent (Idbf1b, b/175156384).
- „Modifier.focusObserver“ wurde eingestellt. Verwenden Sie stattdessen Modifier.onFocusChanged oder Modifier.onFocusEvent (I30f17, b/168511863, b/168511484).
- Umbenennung von Eingabe-APIs zum Aussetzen von Zeiger. HandlePointerInputScope to AwaitPointerEventScope and handlePointerInput() zu "awaitPointerEventScope()". (Idf0a1, b/175142755)
- 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)
- Benutzerdefinierte Ereignisse wurden aus der angehaltenen Pointer Input API entfernt (Ia54d5, b/175142755).
- Mehrere neue Funktionen in SelectionRegistrar wurden eingeführt und in „onPositionChange“ in „notificationPositionChange“ umbenannt. (Ifbaf7)
- Weitere Mitglieder von LayoutNode, die als intern gekennzeichnet wurden (I443c6)
- LayoutInfo wurde zur Verwendung in Tools und Tests eingeführt (I9b190).
- AndroidOwner intern gemacht (Ibcad0, b/170296980)
- Anmerkung ExperimentalPointerInput entfernt (Ia7a24)
- Verschachteltes Scroll-System hinzugefügt. Weitere Informationen finden Sie unter „Modifier.nestedScroll“ (I36e15, b/162408885).
- subcomposeInto(LayoutNode) intern gemacht (Id724a)
Die Benutzeroberfläche von
Applier
wurde vereinfacht dass Bäume von unten nach oben statt von oben nach unten gebaut werden.Die Methode
insert()
wurde ininsertTopDown()
umbenannt.Die neue Methode
insertBottomUp()
wurde hinzugefügt.Ein Anwender fügt entweder Knoten in den Baum ein, den er bearbeitet. mit
insertTopDown()
oderinsertBottomUp()
, je nachdem, und eine bessere Leistung.Einige Bäume, z. B.
LayoutNode
undView
, sind viel größer ist die Erstellung von Bottom-up-Ansatz effizienter als von Top-down. Vor dieser Änderung für die Bottom-up-Implementierung erforderlich war, in jeden Anwendungsanbieter kopiert werden, wobei ein Bottom-up-Ansatz erforderlich ist für eine optimale Leistung. Mit dieser Änderung hat einApplier
überschreibtinsertBottomUp()
, um eine Baumstruktur für Bottom-up-insertTopDown()
, um den Baum oben nach unten zu bauen. (Icbdc2)AndroidDialogProperties-Eigenschaften wurden zu den Eigenschaften "schließenOnBackPress" und "schließenOnClickOutside" hinzugefügt. Damit kann konfiguriert werden, wann die Lambda-Funktion „onDismissRequest“ des Dialogfelds aufgerufen wird. (If5e17)
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)
Modifier.clearAndSetSemantics wurde hinzugefügt, um den Semantik und legen neue fest. (I277ca)
ContentDrawScope wurde in UI-Grafiken verschoben DrawScope-Modul. (Iee043, b/173832789)
Einführung der PathEffect Graphics API um die gestrichelten Formen mit verschiedenen Mustern zu versehen. Eingestellte Verwendung von NativePathEffect zugunsten der erwarteten/tatsächlichen Implementierung von PathEffect. (I5e976, b/171072166)
IdlingResource-Oberflächen wurden in Compose als Compose-Datei hinzugefügt unterstützte Variante der inaktiven Ressourcen von Espresso. Sie können registriert werden, und über ComposeTestRule abgemeldet (I433f3)
Globale (Aufhebung) der Registrierung von ComposeIdlingResource und entfernt Globale (Nicht-)Registrierung von Uhren in ComposeIdlingResource (I32660)
Fehlerkorrekturen
- Lambdas in Offset-Modifikatoren geben jetzt IntOffset statt Float zurück. (Ic9ee5, b/174137212, b/174146755)
SlotTable, SlotReader und SlotWriter aus der öffentlichen API. Diese wurden markiert als InternalComposeAPI. Jetzt sind sie intern zum Verfassen-Modul.
CompositionData und CompositionGroup wurden als Ersatz für die UI-Tooling-API zum Extrahieren Informationen zur Zusammensetzung. Diese sind öffentlich, sind für die Verwendung außerhalb der UI-Tooling API gedacht, da sie die von der UI-Tooling API interpretierten Rohdaten (I31a9c)
ShaderBrush wurde auf eine Shader-Instanz langsam erstellen, Größeninformationen der Zeichnung verfügbar ist. Dies ist nützlich, um Gradienten zu definieren, die vollständige Zeichnungsgrenzen einer zusammensetzbaren Funktion einnehmen während der Erstellung, ohne benutzerdefinierte DrawModifier-Implementierungen implementieren.
Eingestellte APIs für Gradientenfunktionskonstruktoren zugunsten der Fabrikmethoden für ein Gradient-Objekt. (I511fc, b/173066799)
LazyColumnFor, LazyRowFor, LazyColumnForIndexed und LazyRowForIndexed werden eingestellt. Stattdessen LazyColumn und LazyRow verwenden (I5b48c)
Verworfene BuildCompat.isAtLeastR (Idb37e)
Factory-Funktion „buildAnnotatedString“ in der angegebenen Reihenfolge hinzugefügt um einen AnnotatedString zu erstellen. Verworfener annotatedString Builder-Funktion. (Idfe0b)
Entfernte Erweiterungsmethoden auf Float und Double, um Werte bis Bogenmaß. Zu einer privaten Funktion verschoben im PathParser für die Implementierung Dort wurde es auch nur verwendet (I25f52).
Version 1.0.0-alpha08
2. Dezember 2020
androidx.compose.ui:ui-*:1.0.0-alpha08
wurde veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.
API-Änderungen
- Semantikaktion hinzufügen. Schließen (I2b706)
- DrawModifier-APIs wurden aus der androidx.compose.ui-Paket in den androidx.compose.ui.draw verfügbar. Erstellung der Datei DrawModifierdeprecation.kt in Typaliass/Hilfsmethoden zur Unterstützung bei die Migration von der eingestellten zur aktuellen Version APIs (Id6044, b/173834241)
- „Modifier.drawLayer“ wurde in „Modifier.graphicsLayer“ umbenannt. Ähnliche Klassen für GraphicsLayer wurden ebenfalls gemäß den API-Feedback. (I0bd29, b/173834241)
- Die neuen Methoden „placeable.placeWithLayer()“ und „placeable.placeRelativeWithLayer()“ wurden hinzugefügt, mit denen benutzerdefinierte Layouts und Layoutmodifikatoren ein untergeordnetes Element mit der Einführung einer Grafikebene für seine Zeichnung platzieren können. So können wir zuerst Neuzeichnungen optimieren. Wenn wir also ein untergeordnetes Element verschieben müssen, müssen wir seinen Inhalt nicht neu zeichnen. Zweitens können wir Zeichentransformationen auf ein untergeordnetes Element anwenden (Ibd8f6, b/170296989, b/171493718, b/173030831).
<T>
wurde aus der SubcomposeLayout-Deklaration entfernt. Sie können sie jetzt verwenden, ohne einen Typ anzugeben. (Ib60c8)- Modifier.scale/rotate hinzugefügt
APIs als praktische Funktionen fürdrawLayer.
Modifier.drawOpacity
wurde inModifier.alpha
umbenanntModifier.drawShadow
wurde inModifier.shadow
umbenannt (I264ca, b/173208140)
- 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)
- 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)
- TransformOrigin API aktualisiert
dass eine destruktive Syntax
pivotFractionX
undpivotFractionY
alscomponent1
undcomponent2
(If43c4, b/173586560) - Es wurde eine Lint-Prüfung für die Benennung und Position von zusammensetzbaren Lambda-Parametern hinzugefügt, um die Konsistenz mit den Richtlinien für das Schreiben zu prüfen.
Außerdem wurden einige APIs gemäß der Lint-Prüfung und der Anleitung mit
children
als Namen für das nachgestellte Lambda zucontent
migriert. (Iec48e) - Es wurde eine API hinzugefügt, die überprüft, ob Alt-, Strg-, Meta- oder Umschalttaste-Modifikatortasten bei der Auslösung eines Schlüsselereignisses gedrückt wurden. (I50ed9)
- Neue
Modifier.drawLayer()
-Überlastung hinzugefügt. Dabei wird ein Lambda-Block auf einem neuen GraphicsLayerScope -Element verwendet, bei dem Sie die Ebenenparameter so definieren, dass die Neuzusammensetzung und das Neulayout übersprungen werden können, wenn die Statusänderung erfolgt. DrawLayerModifier ist jetzt intern für die Migration seiner Logik in die Methode "placeable.placeWithLayer()" von LayoutModifier (I15e9f, b/173030831). - 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) androidx.compose.ui.text.Typeface
verschoben nachandroidx.compose.ui.text.font.Typeface
(Ic2b81)- Das Semantik-Argument „mergeAllDescendants“ wurde in umbenannt FusionNachfolger. (Ib6250)
- 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-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)
- Fügen Sie den Parameter „zIndex“ für „place()“ von PlacementScope hinzu, damit Modifier.zIndex() jetzt als LayoutModifier funktioniert und jedes benutzerdefinierte Layout direkt im Placement-Block ZIndexe für die untergeordneten Elemente festlegen kann (I711f7, b/171493718).
- Fundamentsemantikeigenschaften wurden in die Benutzeroberfläche verschoben (I6f05c)
- „place(Offset)“ und „placeRelative(Offset)“ verwerfen. Verwenden Sie stattdessen Überlastungen mit Ganzzahl-Offsets (I4c5e7).
- Zuvor eingestellte APIs wurden entfernt: Modifier.onPositioned wurde entfernt. Verwenden Sie "Modifier.onGloballyPositioned". Modifier.onDraw wurde entfernt. Verwenden Sie "Modifier.onDrawBehind". Modifier.plus wurde entfernt. Verwenden Sie Modifier.then. "Color.Unset" wurde entfernt. Verwenden Sie "Color.Unspecific". Die PxBounds-Klasse wurde entfernt. Verwenden Sie stattdessen Rect. (Ie9d02, b/172562222)
- Die Benutzeroberfläche für die Ausrichtung wurde aktualisiert und funktionsfähig gemacht. (I46a07, b/172311734)
- 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)
id
wurde fürLayoutIdParentData
inlayoutId
umbenannt.Measurable.id
wurde inMeasurable.layoutId
umbenannt. (Iadbcb, b/172449643)- Neuer Multi-Touch-Gestenerkennung, einschließlich Hilfsfunktionen zum Erkennen von Drehung, Zoomen und Schwenken. (IC459d)
- Einführung von SweepGradientShader und SweepGradientBrush APIs. (Ia22c1)
- Die Zeitsteuerung in Tests (TestAnimationClock und ihre Nutzung) ist jetzt experimentell (I6ef86, b/171378521)
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)
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)
Standardimplementierungen von Methoden und Eigenschaften in AnimationClockTestRule, die an die zugehörige
clock
(I7ea3d, b/173399709) delegiert werden kann.AndroidComposeTestRule kann jetzt benutzerdefinierte Aktivitäten akzeptieren Launcher (Ib8288, b/153623653, b/154135019)
„TextLayoutResult.getLineVisibleEnd“ wurde eingestellt. Als Ersatz hat TextLayoutResult.getLineEnd jetzt den neuen Parameter "visibleEnd". (I73282)
Aktualisierte TextFieldValue API
- TextFieldValue.composition ist schreibgeschützt.
- Entfernte Ausnahme wegen ungültiger Auswahlbereich (I4a675, b/172239032)
Unterstützung von TtsAnnotation für die Sprachausgabe-Engine. (I54cc6)
Neue APIs zum Ausführen von Animationen in Koroutinen (Ied662)
Fehlerkorrekturen
- 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)
- Der Parameter "resetInput" wurde zu TextInputService#onStateUpdated hinzugefügt (I3e8f5, b/172239032, b/171860947).
- Lint-Prüfung für Modifikatorparameter in zusammensetzbaren Funktionen wurde hinzugefügt. Bei dieser Lint-Prüfung werden Name, Rückgabetyp, Standardwert und Reihenfolge des Parameters auf Konsistenz mit den Richtlinien zum Schreiben geprüft. (If493b)
- Vorübergehend hinzugefügte Option für TestAnimationClock gesteuert von MonotonicFrameClock (I1403b, b/173402197)
- Android-Schriftart-Wrapper hinzugefügt. Sie können ein Android-Gerät
Schriftart über die Funktion
typeface
, z.B.typeface(Typeface.DEFAULT)
.typefaceFromFontFamily()
auch intypeface()
(I52ab7) umbenannt - 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)
- Entfernen Sie das alte UI-Test-Modul und die zugehörigen Stubs (I3a7cb).
- Recomposer akzeptiert einen EmbeddingContext nicht mehr. erforderlich Planungsabhängigkeiten werden aus „EffectCoroutineContext“ abgerufen. FrameManager wurde eingestellt. Plattformintegrationen sollten initialisiert werden, eigenen globalen Snapshot-Verarbeitung. (I02369)
- Übergeben Sie Stilinformationen an den Barrierefreiheitsknoten. (If5e8d)
- Aus Konsistenz mit anderen Einheiten wurde „TextUnit.Inherit“ in „TextUnit.Nicht angegeben“ umbenannt. (Ifce19)
Compose UI Version 1.0.0-alpha07
11. November 2020
androidx.compose.ui:ui-*:1.0.0-alpha07
wurde veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.
API-Änderungen
- 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)
- Die Faktoren BiasAlignment und BiasAbsoluteAlignment zum Erstellen von Ausrichtungen wurden hinzugefügt. (Iac836, b/169406772)
- Ermöglichen Sie einem Entwickler, den Fokus klar zu definieren. (I90372)
- Ein Fehler, der dazu führte, dass für Views in „Compose“ keine Höhenangaben gezeichnet wurden, wurde behoben. (If7782)
- OnDrawBehind API in ContentDrawScope erstellt um der Namenskonvention mit Modifier.drawBehind zu entsprechen. (I4fc3a, b/171955269)
- Kamera-Entfernung wird unterstützt zur Ergänzung von 3D-Transformationen RotationX/rotationY in Layer-APIs. (I40213, b/171492100)
- "SelectionContainer" wurde ohne den Callback hinzugefügt (Ibfadb).
- Die Annotation ExperimentalSubcomposeLayoutApi wurde entfernt. SubcomposeLayout kann jetzt ohne Hinzufügen von @OptIn (I708ad) verwendet werden.
- FirstBaseline und LastBaseline wurden in das Paket „androidx.compose.ui.layout“ (Ied2e7) verschoben.
- Die Deckkraft wurde aus dem DrawShadow()-Modifikator in der ursprünglichen Form entfernt. verwirrend sein. (I82c62, b/171624638)
- MeasureResult wurde aus MeasureScope verschoben. (Ibf96d, b/171184002)
- Mehrere Layoutsymbole wurden von androidx.compose.ui nach androidx.compose.layout.ui verschoben. (I0fa98, b/170475424)
- Veraltetes FocusState2 (I686cb, b/168686446) entfernt
- ZIndexModifier ist jetzt intern (I1808b, b/171493718)
- Der Rückgabetyp von LRP wurde aktualisiert für die zurückzugebenden Größenparameter eine Größe ungleich null, um unnötige Boxen. (Ib0044)
- TestMonotonicFrameClock wurde hinzugefügt, um Code zu testen, der auf MonotonicFrameClock von Compose zum Warten auf Kompositions-Frame-Ereignisse mit „runBlockingTest“ von kotlinx-coroutines-test (I4402f)
- GestenScope.localToGlobal entfernt (I15299, b/171462785)
onAllNodesWithSubstring
-Finder hinzugefügt (I81dd7, b/171462889)- Das Modul androidx.ui.test wurde eingestellt. Bitte migrieren zu androidx.compose.ui.test und androidx.compose.ui.test.junit4 (I452e8)
Fehlerkorrekturen
- ErfassungToBitmap wurde zu SnapshotToImage verschoben. (I86385)
- 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)
- Textfelder aktualisieren, um KeyboardOptions zu akzeptieren (Ida7f3)
- KeyboardOptions umbenennen in ImeOptions (I82f36)
- KeyboardType und ImeAction wurden in KeyboardOptions verschoben (I910ce).
- „createDefault“ wurde als Alternative zur Bereitstellung von Umgebungswerten hinzugefügt. Damit können Umgebungswerte angegeben werden, die nur festgelegt werden, wenn noch kein Umgebungswert angegeben wurde. (Id6635, b/171024925)
- „BaseTextField“ wurde eingestellt. Verwenden Sie stattdessen BasicTextField. (I896eb)
- Modul ui-test-junit4 (Ib91f8) einführen
relativePaddingFrom
wurde inpaddingFrom
umbenannt. DerpaddingFromBaseline
-Modifikator wurde hinzugefügt, um die Abstände von Layoutgrenzen zu Textbasislinien anzugeben. (I0440a, b/170633813)- "LaunchedTask" wurde aus Konsistenzgründen in "LaunchedEffect" umbenannt SideEffect und DisposableEffect API LaunchedEffect ohne subject params nicht zulässig sind, um Best Practices zu fördern. (Ifd3d4)
- Einführung von zusammensetzbaren Ressourcen, die bei Aktualisierung der Konfiguration neu zusammengefügt werden. (I6387c, b/167352819)
- Recomposer erfordert jetzt bei der Erstellung einen CoroutineContext (Ic4610).
zIndex
-Werte addieren, wenn mehrereModifier.zIndex()
angewendet wurden. Zuvor hat der erste gewonnen. (IC514c, b/170623936)- Änderungen an der internen SlotTable-Implementierung, die sollte sich nicht auf die öffentliche API auswirken. (If9828)
- Auto-Korrektur IME-Option für Tastatur hinzugefügt (I57b8d)
- androidx.ui.test wurde nach androidx.compose.ui.test (I9ffdb) verschoben
- KeyboardOptions.toImeOptions wurden aus der öffentlichen API entfernt. (Ic2e45)
Externer Beitrag
- Die Veröffentlichung des internen Artefakts „androidx.compose.ui:ui-text-android“ (Ib93fa) wurde deaktiviert
Version 1.0.0-alpha06
28. Oktober 2020
androidx.compose.ui:ui-*:1.0.0-alpha06
wurde veröffentlicht. Version 1.0.0-alpha06 enthält diese Commits.
API-Änderungen
- Recomposer ist jetzt eine CompositionReference und eine gültige übergeordnetes Element der Komposition. Expliziter Recomposer ist jetzt an weniger Stellen erforderlich. (I4036f)
- VectorPainter einstellen in Erinnerung zu einem besseren Vektor gibt an, dass die intern zusammensetzbare API verwendet „remember“. um Daten in verschiedenen Kompositionen. (Ifda43)
- Modifier.drawWithCache API aktualisiert um ContentDrawScope als Empfängerbereich verfügbar zu machen statt DrawScope verwenden, um Implementierungen die Möglichkeit, Zeichenbefehle verwendet werden. Dies ist nützlich für das Übereinanderlegen Anwendungsfälle für die Färbung, bei denen Contentpixel zuerst gerendert werden, damit die entsprechenden damit der Mischmodus-Algorithmus korrekt angewendet wird. (Ie7ec8)
- SimpleContainer in PopupTestUtils.kt verschieben (I78c57)
- ConsumedData ist keine Datenklasse mehr. Weitere Informationen finden Sie unter https://android-review.googlesource.com/c/platform/frameworks/support/+/1455219 (I1737f).
- Position des Rtl-Ziehpunkts fixieren. (I6e1e0)
- Refaktoriertes DrawScope und
ContentDrawScope als Schnittstellen,
statt abstrakter Klassen,
<ph type="x-smartling-placeholder">
- </ph>
- CanvasDrawScope-Implementierung erstellt von DrawScope
- Refaktorierte Implementierungen von DrawScope, um stattdessen CanvasScope zu verwenden
- DrawContext wurde zum Zusammenfassen von Abhängigkeiten erstellt für DrawScope
- Verworfene Methoden in DrawScope entfernt (I56f5e)
- Wichtige Änderung: Der Rückgabewert wurde aus
PointerInputFilter.onPointerEvent(...)
entfernt, da der einzige Wert, der in Zeigerereignissen geändert werden sollte, Verbrauchsdaten sind. Anstatt Daten vonPointerInputFilter.onPointerEvent(...)
zurückzugeben, können Sie jetzt einfach die Verbrauchsdaten der übergebenen PointerEvents ändern. (I6acd0) - MeasureScope und IntrinsicMeasureScope wurden als Schnittstellen erstellt. (I1a087, b/170461665)
- Die Zusammenführungsfunktion für "AlignLine" wurde ausgeblendet. (I9da1a, b/170612900, b/170611568)
- Zusätzliche Möglichkeit zur Angabe von Inspector-Informationen in einem zusammengesetzten Modifikator (Idee08, b/163494569)
- Die Option „SelectAll“ wurde dem Auswahlmenü hinzugefügt (Ief02b).
- DrawTransform.rotate wurde so aktualisiert, dass
Standard-Pivot-Parameter von center zum Abgleich
in der Dokumentation.
- DrawScope.rotateRad wurde so aktualisiert, dass ein Offset für die den anderen Transformationsmethoden entsprechen muss.
- Verworfene DrawScope.rotateRad-Überlastung, die verbraucht wurde Gleitkommazahlen für die x- und y-Koordinaten des Drehpunkts.
- (Iffcbb, b/170434992)
Fehlerkorrekturen
- API-Lint-Prüfung für MissingGetterMatchingBuilder ist für Androidx aktiviert (I4bbea, b/138602561).
- Fügen Sie einen Test hinzu. (I6b8ae)
- Übergänge in ComposeTestRule aktivieren Option entfernen, um aktivieren Sie den blinkenden Cursor in ComposeTestRule. (If0de3)
- IME-Option für die Großschreibung der Tastatur wurde hinzugefügt (I8ac38)
- Einzeilige Tastaturoption für CoreTextField (I72e6d) hinzugefügt
- SimpleContainer in PopupTestUtils.kt verschieben (I65c3e)
- 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)
- Verbesserte Android-Interoperabilität, indem weiterhin MotionEvents an untergeordnete Android-Ansichten gesendet werden, die für alle Aktionen außer
ACTION_DOWN
den Wert „false“ zurückgeben (I94c5a, b/170320973) - Für Box wurde eine Inline-Funktion erstellt. (Ibce0c, b/155056091)
Externer Beitrag
- Verschiedene Sprachen für
AnnotatedString.capitalize
undAnnotatedString.decapitalize
unterstützen (I4aa7f)
Version 1.0.0-alpha05
14. Oktober 2020
androidx.compose.ui:ui-*:1.0.0-alpha05
wurde veröffentlicht. Version 1.0.0-alpha05 enthält diese Commits.
API-Änderungen
- DSL zum Angeben von Inspector-Informationen hinzufügen (Ic9a22)
- Langes Drücken in Text verschieben. (Iff2bc)
- Experimental Modifier.pointerInput zum Sperren des Eingabemodifikators (Ia77d2)
- Bedienungshilfen zum Kopieren/Einfügen/Ausschneiden hinzugefügt (I6db4f)
- Öffentlicher Konstruktor für AndroidOwner wurde entfernt (Iacaef).
- Pop-ups und Dialogfelder übernehmen jetzt FLAG_SECURE vom übergeordneten Fenster. Zusätzliche Option zur expliziten Konfiguration (I64966, b/143778148, b/143778149)
Die Verbrauchsdaten können jetzt geändert werden. Ebenfalls Aufrufe von Erweiterungsfunktionen, die Datenverbrauch gibt jetzt keinen neuen PointerInputChange mehr zurück, ändern Sie stattdessen die angegebene PointerInputChange.
Dies ist der erste Schritt in einem zweistufigen Prozess, PointerEvent-Daten änderbar machen, sodass andere Zeigerdaten können nicht vom Nutzercode bearbeitet werden. Die besteht der zweite Schritt darin,
List<PointerInputChange>
-Rückgabetyp vonPointerInputFilter.onPointerEvent(...)
. (Id067e)Deaktivierung der Textauswahl und Demo (Ie7e97)
Über „onGloballyPositioned“ eine Inline-Funktion erstellt (I15830)
OnPositionedModifier wurde in OnGloballyPositionedModifier umbenannt und onPositioned() wird in onGloballyPositioned() umbenannt. (I587e8, b/169083903)
Die Eigenschaft hasPendingMeasureOrLayout wurde zum Eigentümer hinzugefügt. Diese gibt an, ob für den Eigentümer noch Layoutänderungen ausstehen. (I3d9f8, b/169038599)
API zum programmatischen Entfernen des Fokus hinzugefügt (Ie1dc2, b/161487952)
PointerInputFilter.onPointerInput(...)
wurde entfernt. Stattdessen solltePointerInputFilter.onPointerEvent(...)
verwendet werden. (I6f04a)Größenänderungen
- "Size.getFlipped" entfernt
- Size.rem entfernt
- Size.truncDiv (Ief44d, b/169790720) entfernt
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)
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)
Der Bereichsparameter in AnnotatedString.Builder.addStringAnnotation wird aus API-Konsistenz in ein Tag umbenannt. (I7c8cb)
Fehlerkorrekturen
- Die Scrollleistung von LazyColumn/Row wird verbessert, indem bei jedem Scrollen weniger Arbeit an der Unterzusammensetzung ausgeführt wird. Für die Zusammensetzungsklasse wurde die neue has Entwertungs()-Methode hinzugefügt. Die Methode hasPendingChanges() von Recomposer wurde in hasInvalidations() umbenannt (Ib2f32, b/168293643, b/167972292, b/165028371).
- 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)
- Durch die Reihenfolge der „place()“-Aufrufe in benutzerdefinierten Layouts wird jetzt die Zeichenreihenfolge für die untergeordneten Elemente definiert (Ibc9f6).
- Unterstützung der Konvertierung von AnnotatedString in SpannableString für bessere Zugänglichkeit. (Ief907)
- Es wurden Stubs für aktive Android-Klassen hinzugefügt. älteren Plattformen, um Reflexionen nach Möglichkeit zu vermeiden. (Ia1790)
- Behobener Fehler: Die angezeigte Softwaretastatur verursachte werden die Koordinaten der Zeigereingabe zu falsch. (IC4cec, b/163077821)
Version 1.0.0-alpha04
1. Oktober 2020
androidx.compose.ui:ui-*:1.0.0-alpha04
wurde veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.
API-Änderungen
- OwnerScope wurde hinzugefügt, um die Erfassung von zu ermöglichen. um Beobachtungsbereiche zu zeichnen, ist nicht mehr gültig. (Ic4cf8)
- OnRemeasuredModifier und onSizeChanged() wurden hinzugefügt zu einen Callback erhalten, wenn das Inhaltslayout erneut gemessen wurde die Größe geändert hat. (I657cf, b/154108792)
- Semantik für lange Klicks hinzufügen (I6281b, b/156468846)
- FocusManager wurde auf „Privat“ gesetzt. (I7872f)
Implementierung zum Erstellen aktualisiert eine dedizierte DrawCacheModifier-Implementierung statt optional DrawModifier-Eigenschaften hinzuzufügen.
Aktualisierte Dokumentation für verschiedene Methoden (Ibd166)
Erstellen Sie TextRange inline, um das Erstellen von Objekten zu vermeiden. (Id034b)
PlacementScope#parentWidth und PlacementScope#parentLayoutDirection können nicht mehr aus dem Placement-Block eines benutzerdefinierten Layouts gelesen werden. (Icc1ae, b/168295623)
AccessibilityScrollState wird den Semantikeigenschaften hinzugefügt. (Ifeda9)
Einführung von Modifier.drawWithCache das Erstellen eines Zeichenobjekts die Abhängigkeiten bedingt neu erstellt. die von Informationen zur Größe bzw. zum Bundesstaat abhängen (I376dc).
Absatzbeschränkungen wurden entfernt. Die Breite wird jetzt direkt an den Absatz übergeben. (Ica712)
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)
- Foundation.Box wurde eingestellt. Verwende stattdessen „foundation.layout.Box“. (Ie5950, b/167680279)
- Stack wurde in Box umbenannt. Die bisherige Box wird zugunsten der neuen Box 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).
- 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)
- Annotierte-Datei „rootAnimationClockFactory“, „transitsEnabled“, blinkingCursorEnabled und textInputServiceFactory mit @VisibleForTesting, machen Sie sie in eine interne API und verbergen Sie ihr kdoc (I554eb, b/168308412).
- Entfernen Sie SelectionContainer aus dem oberen Bereich, um die Standardauswahl zu deaktivieren und unerwartetes Verhalten zu vermeiden. Speziell kann ein SelectionContainer-Element verwendet werden, um den Inhalt zu kapseln, der stattdessen auswählbar sein muss. (I8dfe0, b/158459594)
Version 1.0.0-alpha03
16. September 2020
androidx.compose.ui:ui-*:1.0.0-alpha03
wurde veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.
API-Änderungen
- Semantikaktionen zum Vor- und Zurückscrollen wurden entfernt. Hinzugefügte Schritte in AccessibilityRangeInfo. (Ia47b0)
onInvalidate()
wurde ausOwner
–OwnedLayer
entfernt die Entwertung behandelt. (Ica72b, b/162061312)Operatormethoden für Größe entfernt API, die Offset-Parameter nutzen. Die das Ergebnis dieser Maßnahmen unklar ist, und die Art des Ergebnisses ist unerwartet. für diese. Beispiel: should size - offset return ein Offset- oder Größenergebnis mit dem Unterschied?
Außerdem wurden eingestellte Methoden aus der Klasse "Size" entfernt. (Iec902, b/166514214)
Fehlerkorrekturen
- Ein Fehler wurde behoben, durch den LazyColumn-Elemente manchmal falsch gezeichnet wurden. Dies führte auch zu Abstürzen unter bestimmten Bedingungen. (Ibcf17, b/163066980, b/165921895)
- DpConstraints und APIs, die es verwenden, wurden eingestellt. (I90cdb, b/167389835)
createAndroidComposeRule
undAndroidInputDispatcher
verschoben vonandroidx.ui.test.android
nachandroidx.ui.test
(Idef08, b/164060572)- Die Verwendung der Schwerkraft wurde konsequent zur Ausrichtung oder Ausrichtung in Layout-APIs umbenannt. (I2421a, b/164077038)
- onNode und andere globale Methoden zu ComposeTestRule hinzugefügt als die aktuellen globalen werden nicht mehr unterstützt. (Ieae36)
Version 1.0.0-alpha02
2. September 2020
androidx.compose.ui:ui-*:1.0.0-alpha02
wurde veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.
API-Änderungen
- Entfernen Sie den Callback, um den Inhaber zu benachrichtigen, wenn sich die layoutnode-Grenzen ändern. (If654e, b/166106882)
- Unterstützung für „filltype“ hinzugefügt Parameter in Vektorgrafikpfaden um Formen entsprechend der oder „non-null“-Pfadfüllregeln. (I43dd2)
- Verfügbarkeitsdiagnose und Velocity sind jetzt Inline-Klassen (I48f4a).
- Die Dauer ist jetzt eine Inline-Klasse (I565eb).
- Fügen Sie einen Callback hinzu, um den Inhaber zu benachrichtigen, wenn sich die layoutnode-Grenzen ändern. (IC40b3)
Ein Problem wurde behoben, bei dem Rect-Funktionskonstruktoren aufgetreten sind. mit Offset und Radius erstellen wir das Rechteck im Reihenfolge von links, rechts, oben, unten statt links, oben, rechts, unten.
Eingestellte Companion-Methoden für Rect entfernt in Funktionskonstruktoren zu bevorzugen.
Es wurden Tests zur Überprüfung von Methoden in Rect.kt hinzugefügt (I08460, b/165822356).
Fehlerkorrekturen
- MutableRect hinzugefügt, ein Rechteck, das geändert werden kann. (I71bd2, b/160140398)
- Matrix4 wurde durch Matrix ersetzt. Alle anderen Teile des vectormath-Pakets wurden entfernt. (Ibd665, b/160140398)
Die Aufrufkonvention für zusammensetzbare Funktionen enthält geändert. Dies ist eine funktionsgefährdende Änderung des Binärprogramms. Alle Bibliotheken müssen um mit dieser Version des Compiler-Plug-ins zu arbeiten.
Diese Änderung führt nicht zu einer funktionsgefährdenden Änderung auf Quellebene, da Nur APIs, die geändert wurden, sind Compiler-APIs mit einer expliziten aktivieren können. (I7afd2, b/158123185)
Absturz behoben, der auftreten konnte, wenn kann die Weiterleitung an einen PointerInputFilter dazu führen, den PointerInputFilter, der synchron entfernt werden soll. (I58f25)
Version 1.0.0-alpha01
26. August 2020
androidx.compose.ui:ui-*:1.0.0-alpha01
wurde 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.ui:ui-*:0.1.0-dev17
wurde veröffentlicht. Version 0.1.0-dev17 enthält diese Commits.
API-Änderungen
- „
emitView
“ wurde eingestellt. Verwenden Sie nach Möglichkeit stattdessenAndroidView
, um Ansichten innerhalb von „Compose“ auszugeben. Beachten Sie, dass das direkte Erstellen von Ansichten und ViewGroups in Zukunft nicht mehr unterstützt wird, es sei denn, es handelt sich dabei um Blätter im Erstellungsbaum. Dies ist dann der Fall, wenn dies mit AndroidView möglich ist. (I29b1e, b/163871221) FocusState2
wurde verworfen und durchFocusState
ersetzt (Ia8b79, b/160822876, b/160923332).- Die veralteten AndroidView-Überlastungen wurden entfernt. (I946b9, b/163802393)
- Benutzerdefinierte Emissions können jetzt deklarieren, dass einer oder mehrere ihrer Setter unabhängig von der Emit übersprungen und neu zusammengesetzt werden. (Ibbd13)
Vektorklassen wurden zu Vektorklassen geändert und sind nun nicht mehr verfügbar. Datenklassen wie dieselbe Objektinstanz für die Komposition verwendet werden.
mutableStateOf-Flag für VectorPainter hinzugefügt um bedingt neu zu zeichnen, wenn Vektoränderung.
Überarbeitete VectorComponent-Instanz jetzt Teil von VectorPainter, da es wiederverwendet wird. für alle Kompositionen.
GroupComponent und PathComponent aktualisiert um ihre Namensfelder änderbar zu machen (Ieae45, b/151378808)
onChildPositioned
undOnChildPositionedModifier
wurden entfernt. Entwickler solltenonPositioned
undOnPositionedModifier
verwenden stattdessen im untergeordneten Layout. (I4522e, b/162109766)Der Offset ist jetzt eine Inline-Klasse (Iaec70).
Ein Modifikatorparameter wurde zu AuswahlContainer hinzugefügt (I4aada, b/161487952).
Veraltete FocusModifier (I0b4ba, b/160922116, b/160821157, b/162441435, b/160822875, b/160921940) entfernt
mergePolicy
Lambda wurde zuSemanticsPropertyKey
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)Einschränkungen sind jetzt Inline-Klasse (I88736)
FocusManager wurde hinzugefügt, der eine allgemeine Fokuslogik aus AndroidComposeView verschiebt (I528ef, b/161487952, b/162206799).
PointerEventPass-Namen für die Alpha-Version wurden aktualisiert. (Ifda6f)
IntOffset ist jetzt eine Inline-Klasse (Iac0bf).
IntSize ist jetzt eine Inline-Klasse (I2bf42).
PlacementScope.placeAbsolute()
wurde inPlacementScope.place()
umbenannt und die vorherigePlacementScope.place()
wurde inPlacementScope.placeRelative()
umbenannt. Daher spiegelt die MethodePlacementScope.place()
die Position in Rechts-nach-links-Kontexten nicht mehr automatisch wider. Verwenden Sie stattdessenPlacementScope.placeRelative()
. (I873ac, b/162916675)AlertDialog verwendet jetzt FlowRow für Schaltflächen (I00ec1, b/161809319, b/143682374).
Einige Test-Dienstprogramme wurden erstellt, weil sie nicht dort sind, gehören. Wird in Zukunft veröffentlicht. (I32ab1)
Refaktorierte Organisation der Zeigereingabe Code. (Ie3f45)
Eingestellte PxBounds in Rekt. Alle Nutzungen wurden aktualisiert von PxBounds mit Rechteck und addiert ordnungsgemäße Einstellung/Ersetzen durch Vermerken, die bei der Migration. (I37038, b/162627058)
Das verworfene KeyEvent2 wurde entfernt. Verwenden Sie stattdessen „KeyEvent“. (Ied2d0, b/162097587)
KeyEvent hat ein Unicode-Attribut, mit dem das Unicode-Zeichen abgerufen werden kann, das von der angegebenen Kombination aus Schlüssel und Meta-Schlüsselstatus (If3afc) generiert wurde.
Erstellung des benutzerdefinierten Ereignisses DelayUp und verwandten Klassen ein Opt-in-API, wird sich höchstwahrscheinlich ändern. (I56d6f)
2 PointerEventPasses entfernt, die nicht mehr verfügbar sind erforderlich. (I3dd9d)
Parameter color, shadow und TextDecoration zu Paragraph.paint hinzufügen. Diese Funktion hilft, die unnötige Neuerstellung von Absätzen zu vermeiden. (I81689)
Fehlerkorrekturen
- 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).
Die eingestellten FrameManager-Aufrufe wurden entfernt.
Interne APIs zum Verfassen wurden geändert, um die Anzahl der zur Verfolgung von Zustandsobjekten wie
mutableStateof()
(I80ba6)VerticalScroller und HorizontalScroller wurden entfernt. Verwenden Sie stattdessen „ScrollableColumn/Row“. Modifier.drawBackground wurde entfernt. Modifier.background (I73b0d, b/163019183) verwenden
Absturz, wenn ein Problem behoben wurde, das den Status in der For-Schleife speichert. Da nun derselbe Schlüssel in savedInstanceState() zulässig ist, ist die API von UiSavedStateRegistry an diese neue Anforderung angepasst (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561).
Die zusammensetzbare Funktion
state { ... }
wurde zugunsten von explizite Aufrufe anremember { mutableStateOf(...) }
zur Verdeutlichung. Dadurch wird die API-Oberfläche insgesamt reduziert und die Anzahl der Konzepte für den Status wird reduziert. Verwaltung und entspricht dem Musterby mutableStateOf()
für die Klasse Property-Delegierung. (Ia5727)RRect wurde in RoundRect umbenannt. um besser zum Erstellen von Benennungsmustern Ähnliche Funktionskonstruktoren erstellt RRect- und verworfene RRect-Funktion Konstruktoren (I5d325)
Version 0.1.0-dev16
5. August 2020
androidx.compose.ui:ui-*:0.1.0-dev16
wurde veröffentlicht. Version 0.1.0-dev16 enthält diese Commits.
API-Änderungen
- „OnChildPositioned“ wurde eingestellt. OnPositioned verwenden auf das untergeordnete Element. (I87f95, b/162109766)
- „setViewContent“ wurde eingestellt. Stattdessen sollte „setContent“ verwendet werden. (I7e497, b/160335130)
- Die AndroidViewBinding API zum Aufblähen und Zusammenstellen von Layoutressourcen basierend auf ViewBinding wurde hinzugefügt. (I081c6)
- KeyEvent2 wird durch KeyEvent ersetzt (I2d770, b/162097585).
- Unterstützung für Alt-Hardwaretaste hinzugefügt (I9036b)
- FocusManager wurde eingestellt. Verwenden Sie stattdessen Modifier.focus(), Modifier.focusObserver() und Modifier.focusRequester() . (I74ae4, b/162211322)
- "loadVectorResource" unterstützt "trimmPath"-Attribute (I808fe).
- Dialogfeld in Benutzeroberfläche verschieben (I47fa6)
- 2 PointerEventPasses entfernt, die nicht mehr verfügbar sind erforderlich. (I33ca7)
- PointerInteropModifier wurde implementiert, die Möglichkeit, MotionEvents zu empfangen und mit Compose zu interagieren als Implementierung von Android View. (Ieb08c)
- Der eingestellte Tag-Modifikator wurde entfernt. Verwenden Sie stattdessen die Layout-ID. (Idaa05, b/162023919)
- 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)
- Das Zuschneiden von Pfaden in Vektorgrafiken wird unterstützt (Ie16c9, b/158188351)
- Modifier.layout() wurde hinzugefügt, mit dem Sie bequem einen benutzerdefinierten Layoutmodifikator erstellen können (I73b69, b/161355194).
- Eine neue AndroidView API wurde hinzugefügt und die vorhandenen wurden eingestellt. (I5bcfd)
- 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). - [Zusammenfassung]ComposeView-Unterklassen für das Hosten von Compose hinzufügen in einer Ansichtshierarchie. (I46357)
Row
undColumn
sind jetzt erheblich Inline-Funktion und reduziert den Aufwand. (I75c10)- SubcomposeLayout hinzugefügt. Es handelt sich um ein Low-Level-Primitive, mit dem die untergeordneten Elemente während der Messung zusammengefügt werden können, wenn wir einige Werte verwenden möchten, die erst später während des Messwerts für die Unterstrukturzusammensetzung verfügbar sind. WithConstraints wird beispielsweise nicht mit SubcomposeLayout implementiert. (I25cc8)
SemanticsNode.positionInRoot
wurde hinzugefügt, um die Position eines SemanticsNode relativ zum Stamm der Compose-Hierarchie (Icdf26, b/161336532)- MotionEvents wurden vollständig übergeben von Android bis hin zu Compose und auf Android übertragen. (I14be8, b/158034713)
- „Drop-down-Pop-up“ wurde entfernt. (I00430)
- Pop-up-Position in ausgeschnittenen Displays wurde fixiert. (Idd7dd)
- Bedienungshilfen-Aktion hinzufügen, um TextLayoutResult abzurufen (I9d6e6)
- RemeasurementModifier wurde hinzugefügt. kann das Layout synchron erneut gemessen werden. Im Allgemeinen benötigen Sie dies nie, da die Neumessung/das Layout automatisch erfolgt. Wir verwenden sie jedoch beim Scrollen in LazyColumnItems. (I5f331, b/160791058)
- Entfernen Sie getLineEllipsisOffset/getLineEllipsisCount. Verwenden Sie getLineVisibleEnd/getLineEnd/isLineEllipsize. (I85aa2)
- Füge als Best Practice einige Markierungen/Anmerkungen hinzu. (I66b20)
- werden in TextLayoutResult weitere Zeilen-APIs angezeigt. (I79bd2)
- Integrierte Vektorkonverter zur Umwandlung von integrierten Einheiten sind jetzt über Foo.VectorConverter zugänglich. z.B. Dp.VectorConverter, Color.VectorConverter Float.VectorConverter usw. (I3e273)
Fehlerkorrekturen
- Umfassende API-Fehler beheben (I077bc)
<ph type="x-smartling-placeholder">
- </ph>
- Nicht verwendete OffsetBase-Schnittstelle entfernen
- Richtet die Offset- und IntOffset-Klassen so aus, dass eine einheitliche API-Oberfläche haben,
- Benennen Sie IntOffset.Origin in IntOffset.Zero um. für Konsistenz mit der Offset API
- Die nativeCanvas-Methode wurde aus Canvas verschoben um Kunden bei der Erstellung eigene Canvas-Instanzen
- EmptyCanvas-Stub-Klasse zum Refaktorieren erstellt DrawScope darf kein Null-Parameter sein, lateinit und Sicherstellen, dass das Feld keine Null-Zulässigkeit aufweist
- ClipOp-Enums wurden in Pascal Case umbenannt
- FilterQuality-Enums wurden in Pascal Case umbenannt
- StrokeJoin-Enums wurden in Pascal Case umbenannt
- PointMode-Enums wurden in Pascal Case umbenannt
- PaintingStyle-Enums wurden in Pascal Case umbenannt
- PathFillType-Enums wurden in Pascal Case umbenannt
- StrokeCap-Enums wurden in Pascal Case umbenannt
- Die DrawCache-Implementierung wurde entfernt Lateinit-Parameter verwenden
- DrawScope wurde so aktualisiert, dass die verzögerte Delegierung nicht mehr verwendet wird. für die internen Parameter „fillPaint“ und „strokePaint“
- Das zusammensetzbare Bild wurde aktualisiert, um die Verwendung von Box zu vermeiden für weniger Aufwand
- Outline-Klasse wurde aktualisiert und enthält jetzt @Unveränderliche Annotationen.
- PathNode wurde mit @Unveränderlichen Annotationen aktualisiert für jede Pfadanweisung
- Die Vektorunterzusammensetzung wurde aktualisiert, um redundante Elemente zu entfernen. Bedingte Prüfungen auf Gleichheit, da die Schnittstelle „Compose“ bereits verwendet wird sie
- Verworfene Konstruktormethoden für Rect-Companions zugunsten von Funktionskonstruktoren
- Aktualisierte Brush-Klassen und Funktionskonstruktoren mit @Unveränderliche und @Stable APIs
- VertexMode-Enum wurde auf PascalCase aktualisiert
- Die DrawScope selectPaint-Methode wurde auf bedingt aktualisiert. Strichparameter für die Farbe überschreiben, geändert
- Größe aktualisiert, um destruktive API hinzuzufügen, umbenennen "Nicht spezifiziert" in "Nicht angegeben" geändert und nicht verwendete Methoden entfernt
- Aktualisierter Verbrauch der Compose BlendMode API um korrekt zwischen den BlendModes des Android-Frameworks und PorterDuff, je nach API-Ebene. Einführung der BlendMode#isSupported API zum Handeln als Funktionsabfrage verwenden, um festzustellen, ob der BlendMode auf dem Gerät unterstützt wird, bevor es verwendet wird. (I0ef42)
- 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)
SemanticsNodeInteraction.performPartialGesture
wurde entfernt. Verwenden Sie StattdessenSemanticsNodeInteraction.performGesture
. (Id9b62)LazyColumnItems
wurde inLazyColumnFor
umbenannt.LazyRowItems
wurde inLazyRowFor
umbenannt (I84f84).foundation.shape.corner
-Paket wurde auffoundation.share
reduziert (I46491, b/161887429)AndroidComposeTestRule
wurde increateAndroidComposeRule
umbenannt. (I70aaf)TextLayoutResult
wurden weitere APIs hinzugefügt. (Id7e04)- Material
FilledTextField
wurde inTextField
umbenannt und die grundlegendeTextField
wurde inBaseTextField
umbenannt, um die einfachste gewünschte API einfach zu finden und zu verwenden (Ia6242, b/155482676). - "Modifier.drawBackground" wurde in "Modifier.background" umbenannt (I13677).
Version 0.1.0-dev15
22. Juli 2020
androidx.compose.ui:ui-*:0.1.0-dev15
wurde veröffentlicht. Version 0.1.0-dev15 enthält diese Commits.
Abhängigkeiten aktualisieren
- Wenn Sie die
0.1.0-dev15
-Version von Compose verwenden möchten, müssen Sie Ihre Abhängigkeiten aktualisieren gemäß den neuen Code-Snippets, die oben unter Abhängigkeiten angeben aufgeführt sind.
API-Änderungen
- 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).
- Ein Modifikator wurde hinzugefügt, um Veränderungen des Fokuszustands zu beobachten. (I05866, b/160924455, b/160923326)
- Es wurde ein Modifikator hinzugefügt, um Fokusänderungen anzufordern (I8dd73, b/161182057, b/160924778).
- Verschieben Sie das Symbolleisten-Menü an die gewünschte Position, um die Optionen zum Kopieren, Ausschneiden und Einfügen richtig anzuzeigen. (ID3955)
- Für Einzelwert-Semantikeigenschaften wird jetzt ein Aufrufstil verwendet.
Beispiel: „Semantik {hidden = true}“ wird jetzt geschrieben als:
semantics { hidden() }
(Ic1afd, b/145951226, b/145955412) - Modifier.focus wurde hinzugefügt, der FocusModifier ersetzt. (Ib852a, b/160924778)
- Fügen Sie FloatingToolbar für die TextField-Auswahl hinzu. (Ie8b07)
- Es wurde eine experimentelle API-Anmerkung für die API zur Schlüsseleingabe hinzugefügt (I53c0a).
- Es wurde eine experimentelle API-Anmerkung für alle Focus-bezogenen APIs hinzugefügt (I53b24, b/160903352).
- FocusState2 wurde hinzugefügt und ersetzt FocusdetailState (I0a3ba, b/160822595).
- ExperimentalFocus wurde hinzugefügt, eine @OptIn-Anmerkung für die Focus API. (I1544b, b/160820961)
- Es wurde eine IntBounds-Einheitenklasse hinzugefügt, die Ganzzahl-Pixelgrenzen aus dem Layout darstellt. Die API von PopupPositionProvider wurde für die Verwendung aktualisiert. (I0d8d0, b/159596546)
- Applier erfordert jetzt eine Clear()-Methode für die Entsorgung Kompositionen (Ibe697)
- KeyEvent wurde eingestellt und durch KeyEvent2 (I68730) ersetzt
- Für Test-Finder wurde das optionale Flag „useUnmergedTree“ hinzugefügt. (I2ce48)
- Experimentelle LayoutNode-API erstellt (I4f2e9)
Kopiermethoden für verschiedene Inline-Klassentypen, einschließlich:
- Offset
- Größe
- Radius
- Bewegung
TransformOrigin
Eingestellte Methode für das Companion-Objekt "Size.copy" Bevorzugung der Kopiermethode der Instanz (Ife290, b/159905651)
Pop-ups, Dialogfelder und Menüs übernehmen jetzt das kontextbezogene MaterialTheme (Ia3665, b/156527485).
TextDirection wurde in ResolvedTextDirection umbenannt (I3ff38).
Der Layout-Richtungsparameter wurde aus dem Messblock der Layout()-Funktion entfernt. Die Layoutrichtung ist jedoch innerhalb des Callbacks über das Messungsbereichsobjekt verfügbar (Ic7d9d).
Auswahlgriffe zur Wiederverwendung refaktorieren. (I420e0)
Anklickbar wurde entfernt. Modifier.clickable verwenden (I84bdf)
TestTag und Semantik wurden gelöscht. Verwenden Sie stattdessen Modifier.testTag und Modifier.semantics (I15ff0, b/158841414).
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.
„Modifier.tag“ wurde in „Modifier.layoutId“ umbenannt, um eine Verwechslung mit „Modifier.testTag“ zu vermeiden. (I995f0)
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)
Der zusammensetzbaren AndroidView-Funktion wurde ein Modifikatorparameter hinzugefügt. (I48a88, b/158746303)
Semantics() wurde eingestellt. Verwenden Sie stattdessen Modifier.semantics(). (I72407, b/158841414)
Fügen Sie die zusammensetzbare Funktion viewModel() hinzu, um ViewModel ähnlich wie in Activity oder Fragment (I5fdd1) zu erstellen oder bereits vorhandene ViewModel-Modelle zu erstellen.
Verwendung von IntPx durch Int.- IntPxPosition ersetzt mit IntOffset. "IntPxSize" wurde durch "IntSize" ersetzt. (Ib7b44)
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)
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)
TestTag wurde eingestellt. Verwenden Sie stattdessen Modifier.testTag. (If5110, b/157173105)
Die standardmäßige No-op-Implementierung von ParentDataModifier#modifyParentData wurde entfernt. Dies entsprach eigentlich der gar keiner Implementierung der Schnittstelle. (I0deaa)
Zuvor eingestellte ScaleFit-Version als entfernt. Verwenden Sie stattdessen ContentScale. (Ifbc5b)
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)
Die Komponente "Dropdown-Menü" wurde zu UI-Material hinzugefügt, einer Implementierung des Material Design-Menüs. (I9bb3d)
Das verworfene LayoutTag() wurde entfernt. Verwenden Sie stattdessen „Modifier.tag()“. Die eingestellte Funktion „Modifier.matchParent()“ wurde entfernt. Verwenden Sie stattdessen „Modifier.matchParentSize()“. (If8044)
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)
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).
DoubleTapGestenFilter jetzt unterscheidet „SingleTapTouchFilter“. über den Baum. (If92b1)
Ausrichtungs-API wurde aktualisiert und Unterstützung für die absolute Ausrichtung hinzugefügt (die im Rtl-Kontext nicht automatisch gespiegelt wird) (I38cd3).
Die DrawLayer-Modifikator-API wurde geändert: outlineShape wurde in Form umbenannt, hat den Standardwert für RectangleShape und kann jetzt keine Nullwerte annehmen. "clipToOutline" wurde in "Clip" umbenannt. „clipToBounds“ wurde entfernt, da das Element „clip == true“ mit RectangleShape ist (I7ef11, b/155075735)
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)
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 eingestellte Layout-Modifier-Oberfläche wurde entfernt. (I2a9d6)
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)
Untergeordnete Layout- und LayoutModifier-Elemente können mit einer anderen Layout-Richtung gemessen werden. (Ibd731)
Neu wurde Modifier.zIndex() hinzugefügt, um die Zeichenreihenfolge der untergeordneten Elemente innerhalb desselben übergeordneten Layouts zu steuern. Die Höheneigenschaft von DrawLayerModifier wurde in shadowElevation umbenannt und steuert nicht mehr die Zeichenreihenfolge. Die Reihenfolge der Parameter in DrawShadow wurde geändert: Die Höhe ist jetzt die erste und die Form ist die zweite. Die Standardform lautet RectangleShape. (I20150, b/152417501)
"onSizeChange" und "onPositionChange" im Inhaber entfernt. (I5c718)
Einschränkungen2 hinzugefügt, eine Kopie von unterstützt nur Werte für Int-Beschränkte anstelle von IntPx. IntPx wird entfernt und alle ganzzahligen Einschränkungen Pixel wie Android.
- Hinzufügung von "IntSize", das IntPxSize irgendwann ersetzen wird. (I4b43a)
Die Ausrichtung kann mit beliebigen Werten instanziiert werden. 1D-Ausrichtungen wurden hinzugefügt. (Ia0c05)
„alignToSiblings“ akzeptiert jetzt „Measured“ anstelle von „Placeable“. (I5788d)
-
- 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
Rtl-Unterstützung für Zeichenmodifikatoren. (I0aaf9)
Veröffentlichung einer API zum Aufblähen von Android Views aus XML. Weitere Informationen finden Sie in der ViewInCompose-Demo. (I42916)
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).
PositionInParent und boundsInParent für LayoutCoordinates wurden hinzugefügt. (Icacdd, b/152735784)
„DawLayerModifier“ und „drawLayer()“ sind jetzt standardmäßig „clipToBounds“. und „clipToOutline“ auf „false“. (I0eb8b, b/152810850)
LayoutResult wurde in MeasureResult umbenannt. (Id8c68)
LayoutModifier2 wurde hinzugefügt, ein neues API zum Definieren von Layoutmodifikatoren. eingestellter LayoutModifier (If32ac)
Modifikator plus Operator durch Factory-Erweiterungsfunktionen ersetzt (I225e4)
Unterstützung für TranslationX/Y-Properties hinzugefügt der Anzeigeliste der Zeichenbefehle für einem bestimmten Layer. Dies ist nützlich, um Inhalte als Reaktion auf Animationen oder Touch-Ereignisse. (I8641c)
Die Parameter pivotX und pivotY wurden hinzugefügt. zu Layer APIs, um Rotation und Skalierung zu unterstützen um einen bestimmten Punkt auf einer Ebene (Icf7c3)
OnPositionedModifier und OnChildPositionedModifier hinzufügen um die zusammensetzbare Funktion „OnPositioned“ und „OnChildPositioned“ Funktionen. (I2ec8f)
Wir haben LayerModifier hinzugefügt, einen Modifikator, der Ein RenderNode für ein Layout wird hinzugefügt. Sie können damit Beschnitt, Deckkraft, Drehung, Skalierung und Schatten. Dadurch wird RepaintBoundary ersetzt. (I7100d, b/150774014)
Die Layoutrichtung wird vom übergeordneten Layoutknoten auf die untergeordneten Elemente übertragen. Modifikator für Layoutrichtung wurde hinzugefügt. (I3d955)
Die Stack-Komponente unterstützt die Schreibrichtung von rechts nach links (Ic9e00).
Erste Unterstützung für Rtl im Compose-Layout (Ia5519)
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)
LayoutCoordinates geändert, um providedAlignmentLines zu erstellen ein Set anstelle einer Karte und haben LayoutCoordinates die Implementierung des get() verwenden, um einen Wert abzurufen. Dadurch wird es einfacher, für Modifikatoren, um einen oder mehrere Werte des Datasets ohne und erstellen für jeden Modifikator eine neue Sammlung. (I0245a)
LayoutCoordinates verfügt nicht mehr über eine Positionseigenschaft. Die ist bei der Berücksichtigung von LayoutModifiers, Rotation oder Skalierung. Stattdessen sollten Entwickler das Element „parentCoordinates“ verwenden undchildToLocal(), um die Transformation aus einem LayoutCoordinate an ein anderes gesendet.
LayoutCoordinates verwendet IntPxSize für die Größeneigenschaft anstelle von PxSize. Layouts verwenden ganzzahlige Pixelgrößen für Layouts, sodass alle Layoutgrößen sollten Ganzzahlen und keine Gleitkommawerte verwendet werden. (I9367b)
Verbesserungen an der API-Oberfläche von Einschränkungen (I0fd15)
Es wurde eine CanvasScope API erstellt, die eine Canvas-Objekt zur Bereitstellung eines zustandslosen, deklarativen der Zeichen-API-Oberfläche. Transformationen sind enthalten vom eigenen Empfängerumfang und den Größeninformationen wird auch den entsprechenden Einsatzgrenzen zugeordnet. Es ist für den Nutzer nicht erforderlich, seinen eigenen Paint-Status beizubehalten. zum Konfigurieren von Zeichenvorgängen.
- CanvasScopeSample sowie hat die Demo-App aktualisiert, sodass sie eine deklarative Grafik Demo (Ifd86d)
Nicht verwendete MaskFilter API entfernt da sie nur eingeschränkt genutzt und nicht optimiert sind. für Hardwarebeschleunigung in den meisten Anwendungsfällen (I54f76)
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)
Zusätzliches optionales Rechteck einfügen -Parameter zu ImagePainter, damit dieser Zeichnen eines Unterabschnitts des zugrunde liegenden Bild-Assets (I0ea9e)
"Farbe festlegen" wurde hinzugefügt, um einen nicht festgelegten Wert ohne Boxen Farben. (If901a)
Canvas.rotate und Canvas.scale-Erweiterungsmethoden, optionale Pivot-Koordinaten Transformationen. Diese Standardeinstellungen oben links im aktuelle Canvas-Übersetzung.
Außerdem ist Canvas.rotateRad jetzt eine Erweiterungsmethode für Konsistenz (Ibaca6)
Erstellung einer PixelMap-API zur Unterstützung Abfragen von Pixelinformationen aus einem ImageAsset (I69ad6)
Umbenannt inFrameworkRect/toFrameworkRectF in toAndroidRect/toAndroidRectF entsprechend der Namenskonvention für Objektkonvertierungen zwischen Compose und Android Framework-APIs, auf denen sie basieren. Ebenfalls aktualisiert Dokumente zu diesen APIs (I86337)
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.
Die 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)
Umbenennung von Bild in ImageAsset, um den Unterschied zwischen den Bilddaten und der zukünftigen zusammensetzbaren Funktion für das Layout und die Zeichnungen besser zu unterscheiden _Body:Erweiterungsmethode auf android.graphics.Bitmap erstellt Bitmap.asImageAsset(), zum Erstellen einer Instanz eines Nützliches ImageAsset für die Kombination herkömmlicher Android- Anwendungsentwicklung mit dem Framework „Compose“ (Id5bbd)
TextDirection.Content wurde hinzugefügt (I48f36)
Der Operator TextDecoration.plus (I0ad1a) wurde hinzugefügt.
Force
wird aus den Aufzählungswerten von TextDirectionAlgorithm (Icc944) entferntTextDirectionAlgorithm wurde in TextDirection (I75ce8) umbenannt
Implementiert „LongPressAndDrag“ für die Textfeldauswahl. (I17919)
AnnotatedString.getStringAnnotations hinzugefügt, die alle Annotationen innerhalb des Bereichs zurückgibt. (I1fa00)
Der Paketname für Locale und LocaleList wurde geändert von androidx.ui.text zu androidx.ui.intl (I8132c)
Der Cursor von TextField blinkt (Id10a7).
API-Änderung: AnnotatedString(builder: Builder) wurde in annotatedString(builder: Builder) umbenannt. (Ia6377)
API-Änderung: AnnotatedString.Item wurde in AnnotatedString.Range umbenannt. (I2d44d)
Benennen Sie AnnotatedString.Builder.addAnnotationString in addStringAnnotation um. (I5059e)
Softwaretastatur lässt sich jetzt mit SoftwareKeyboardController, bereitgestellt von onTextInputStarted Callback (I8dc44, b/151860051)
Plus-Operator für (Text/Paragraph/Span)Style hinzugefügt, der delegiert sie an die Funktion „merge()“. (Ia1add)
FontWeight.lerp rastet nicht mehr ein. Es ist immer noch eine Datenklasse. (I521c2)
Der FontWeight-Konstruktor ist jetzt öffentlich, er ist keine Datenklasse mehr. (Id6b1f)
Fügen Sie getLineStart, getLineEnd, getEllipsisOffset und getEllipsisCount zu TextLayoutResult (Ibc801) hinzu.
Modul ui-text wurde in ui-text-core umbenannt (I57dec).
Nicht verwendete Klasse „Size“ entfernt da es eine doppelte Size-Klasse gibt, im UI-Geometrie-Modul, das konsumiert wird. (I1b602)
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)
Abstände, Rahmen, Form und Hintergrundparameter zu Box hinzufügen (I05027, b/148147281)
Fehlerkorrekturen
- "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)
runOnIdleCompose
umbenannt inrunOnIdle
(I83607)- Mehrere Test-APIs wurden umbenannt, um die Intuitivität zu verbessern. Alle Die APIs „findXYZ“ wurden in „onNodeXYZ“ umbenannt. Alle doXYZ APIs wurden umbenannt in PerformXYZ. (I7f164)
- Die Benutzeroberfläche zum Erstellen kann jetzt in ViewGroups erstellt werden, ohne dass eine neue Komposition erforderlich ist. Ein Beispiel finden Sie unter ViewInteropDemo. (I9ab0b, b/160455080)
- "sortWith" und "removeRange" wurden zu MutableVector hinzugefügt (Icccf7).
- Implementieren Sie Ziehpunkte zum Ziehen, um die Auswahl für das Textfeld zu ändern. (I27032)
- Shader-Inline-Klasse entfernt, die die NativeShader-Erwartungsklasse umschlossen NativeShader wurde in Shader umbenannt. Die umschlossene Shader-Inline-Klasse keine wertvollen Informationen zur API-Oberfläche hinzufügen. und war eine Inline-Klasse. Verwenden Sie daher den NativeShader . (I25e4d)
Refaktorierter Maler-Modifier eine Skalierung basierend auf die gegebenen Einschränkungen und „ContentScale“ . Painter-Implementierungen ihre Zeichnungsinhalte auf Basis der gegebenen Größe den DrawScope, in den sie einzeichnen.
Ein Problem wurde behoben, durch das der Cache von VectorPainter Bitmap wurde an ihre Standardgröße angepasst statt der vorgegebenen Größe.
ImagePainter wurde aktualisiert, um seine Größe zu skalieren statt PainterModifier zu verwenden, dies für ihn zu tun. (I6ba90)
Übergeordnete withFrameNanos-Funktion für das Animations-Timing hinzufügen (Ie34c5)
Die Anmerkung „@Untracked“ wurde eingestellt. Durch @ComposableContract(tracked=false) ersetzen (Id211e)
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)
Ein Problem wurde behoben, bei dem die Zeigereingabe einen Absturz verursachen würde, PointerInputFilters wurden über entfernt. Unterzusammensetzung beim Entfernen. Dieser Fehler wurde jetzt behoben. (I1f48b, b/157998762)
Ein Problem wurde behoben, durch das bei der Weiterleitung von Zeigereingabe verursacht einen Absturz, wenn PointerInputFilters über Unterzusammensetzung beim Entfernen. Dieser Fehler wurde jetzt behoben. (Iab398, b/157998762)
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)
Die zusammensetzbare Funktion „Neu zusammensetzen“ ist keine nützliche Abstraktion mehr. Die Neuzusammensetzung sollte in der Regel als Ergebnis von MutableState-Zuweisungen erfolgen. Für alle anderen Bereiche wird empfohlen, die
invalidate
-Funktion zu verwenden, um eine Neuzusammensetzung des aktuellen Bereichs auszulösen. (Ifc992)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)
Ändert die Strategie zur Codegenerierung des Compose-Compilers. Vor der Änderung hat der Compiler Aufrufe in zusammensetzbare Funktionen transformiert. Mit dieser Änderung transformieren wir jetzt den Text einer zusammensetzbaren Funktion und lassen die Aufrufsite (meistens) unverändert.
Das bedeutet, dass die meiste Logik der Kommunikation mit der Compose-Laufzeit am Anfang des Funktionstexts und nicht auf der Aufrufseite stattfindet.
Die Änderung sollte mit der Quelle kompatibel sein, wenn Sie den Editor verwenden. Die meisten Nutzer des Editors sollten aufgrund dieser Änderung keinen Code aktualisieren müssen.
Um diese Arbeit zu unterstützen, wurde die JVM-Signatur aller zusammensetzbaren Funktionen geändert. Eine zusammensetzbare Funktion, die einen einzelnen Parameter akzeptiert, wird in eine Funktion umgewandelt, die drei Parameter akzeptiert. Die zusätzlichen Parameter sind der Composer, eine „Schlüssel“-Ganzzahl. Eine Bitmasken-Ganzzahl, die zur Weitergabe von Metadaten durch Aufrufe verwendet wird.
„Compose“ wandelt jetzt auch Standardargumente in eine zusammensetzbare Funktion um. Dies geschieht, ohne eine zusätzliche synthetische Standardüberlastung der Funktion selbst einzuführen, sodass diese Änderung dazu führt, dass weniger Funktionen definiert werden.
Bekannte beabsichtigte Verhaltensänderungen, die sich daraus ergeben:
- Einige Anrufe werden an der Stelle übersprungen, an der sie vorher nicht gekommen wären
- Zusammensetzbare Ausdrücke in Standardargumentausdrücken werden jetzt korrekt abonniert und verarbeitet
Im Rahmen dieser Arbeit wurden einige Optimierungen vorgenommen: 1. Das Ergebnis von Vergleichen von Parametern wird über die Aufrufgrafik an andere zusammensetzbare Funktionen weitergegeben. Dies führt zu weniger Vergleichen während der Laufzeit, verringert die Größe der Slottabelle und es werden häufiger zusammensetzbare Funktionen übersprungen, die zuvor nicht übersprungen wurden. 2. Parameter, die zum Zeitpunkt der Kompilierung als „statisch“ eingestuft werden, werden nicht mehr in der Laufzeit verglichen oder gespeichert. Dies reduziert die Anzahl der Vergleiche und verringert die Größe der Slot-Tabelle. 3. Die Ablaufstruktur des Funktionskörpers wird verwendet, um die Anzahl der generierten Gruppen zu minimieren. Dadurch wird die Größe der Slottabelle verringert und die Laufzeit reduziert 4. Nicht verwendete Weiterleitungs- und Empfängerparameter für Funktionen werden bei der Bestimmung der Überspringbarkeit der Funktion nicht berücksichtigt, wenn sie nicht innerhalb des Hauptteils der Funktion verwendet werden.
Die meisten funktionsgefährdenden Änderungen betreffen APIs, auf die der Compiler direkt abzielt. Die typische Verwendung des Editors ist davon nicht betroffen: 1. Composer::startExpr wurde entfernt. 2. Composer::endExpr wurde entfernt. 3. Composer::call wurde eingestellt 4. Die Nicht-varargs-Überlasten von
key
wurden entfernt. Verwende ab sofort dievararg
-Version. 5. Die Pivotal-Anmerkung wurde eingestellt. Du kannstkey
als Ersatz verwenden. 6. ScopeUpdateScope::updateScope wurde geändert und erwartet nun eine Function3-Funktion anstelle von Function1. 7. neustartableFunction und erneutstartableFunctionN wurden aktualisiert, um zusätzliche Kompilierungszeitparameter aufzunehmen. (I60756, b/143464846)Die eingestellten LayoutAlign-Modifikatoren wurden entfernt. (I10877)
"RepaintBoundary" wurde zugunsten von DrawLayerModifier (I00aa4) entfernt.
Button, FloatingActionButton und Clickable haben jetzt einen separaten
enabled
-Parameter. Einige der Parameter der Schaltfläche wurden umbenannt oder neu angeordnet. (I54b5a)Ersetzen von ButtonStyle durch eigene Funktionen und entfernte Textüberlastung (Zeichenfolge). Informationen zur Nutzung finden Sie in den aktualisierten Beispielen. (If63ab, b/146478620, b/146482131)
Nicht abwärtskompatible Änderungen an der Ambients API. Weitere Informationen finden Sie in der Protokoll- und
Ambient<T>
-Dokumentation (I4c7ee, b/143769776).Das Verhalten der Standardeinstellung „TextDirection“ wurde geändert. nach LayoutDirection. d.h., wenn LayoutDirection RTL ist, Standard Bei „TextDirection“ wird RTL verwendet. Zuvor war sie TextDirection.ContentOrLtr/Rtl (I4e803)
Fehlerkorrektur: Wenn Schriftstärke und -stil in einem AnnotatedString verschachtelt sind, wird der Text nicht richtig gerendert. (I77a9d)
Fügt häufig verwendete Parameter zu Text() hinzu. Wenn Sie derzeit einen lokalen Textstil erstellen, um eine kleine Anzahl dieser Parameter zu übergeben, z. B. Text(style = TextStyle(textAlign = TextAlign.Center)), können Sie die Parameter jetzt einfach direkt angeben: Text(textAlign = TextAlign.Center) (I82768).
Das Modul „ui-android-text“ wurde in „ui-text-android“ (I68cbe) umbenannt