Componi materiale
androidx.compose.material
androidx.compose.material.icon
(Consulta la documentazione di riferimento delle API per tutti i pacchetti di scrittura)
Aggiornamento più recente | Release stabile | Candidato per l'uscita | Versione beta | Release alpha |
---|---|---|---|---|
21 agosto 2024 | 1.6.8 | 1.7.0-rc01 | - | - |
Struttura
Compose è una combinazione di 7 ID gruppo Maven all'interno di androidx
. Ogni gruppo
contiene un sottoinsieme di funzionalità target, ciascuna con il proprio insieme di funzionalità
note.
Questa tabella illustra i gruppi e i link a ciascun insieme di note di rilascio.
Gruppo | Descrizione |
---|---|
compose.animation | Crea animazioni nelle applicazioni Jetpack Compose per arricchire l'esperienza utente. |
compose.compiler | Trasforma le funzioni @Composable e abilita le ottimizzazioni con un plug-in del compilatore Kotlin. |
compose.foundation | Scrivi applicazioni Jetpack Compose con componenti di base pronti all'uso ed estende le basi per creare i tuoi componenti di sistema di progettazione. |
compose.material | Crea UI di Jetpack Compose con componenti Material Design pronti per l'uso. Si tratta del punto di ingresso di livello superiore di Compose, progettato per fornire componenti corrispondenti a quelli descritti all'indirizzo www.material.io. |
compose.material3 | Crea UI di Jetpack Compose con Material Design 3 Components, la prossima evoluzione di Material Design. Material 3 include temi e componenti aggiornati, nonché funzionalità di personalizzazione di Material You, come il colore dinamico, ed è progettato per essere coerente con il nuovo stile visivo e la nuova UI di sistema di Android 12. |
compose.runtime | Componenti di base di base del modello di programmazione e della gestione dello stato di Compose, nonché del runtime principale per il targeting del plug-in Compose Compiler. |
compose.ui | I componenti fondamentali dell'interfaccia utente di scrittura erano necessari per interagire con il dispositivo, tra cui layout, disegno e input. |
Dichiarazione delle dipendenze
Per aggiungere una dipendenza su Compose, devi aggiungere il Repository Maven di Google al tuo progetto. Consulta il Repository Maven di Google per ulteriori informazioni.
Aggiungi le dipendenze per gli artefatti necessari nel file build.gradle
per
l'app o il modulo:
Alla moda
dependencies { implementation "androidx.compose.material:material:1.6.8" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.6.8") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Per saperne di più sulle dipendenze, consulta Aggiungere dipendenze build.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Non esitare a contattarci in caso di nuovi problemi o idee per migliorare questa raccolta. Dai un'occhiata alle problemi esistenti in questa raccolta, prima di crearne uno nuovo. Puoi aggiungere il tuo voto a un problema esistente tramite facendo clic sul pulsante a forma di stella.
Consulta la documentazione di Issue Tracker per ulteriori informazioni.
Versione 1.7
Versione 1.7.0-rc01
21 agosto 2024
Viene rilasciato androidx.compose.material:material-*:1.7.0-rc01
. La versione 1.7.0-rc01 contiene questi commit.
Versione 1.7.0-beta07
7 agosto 2024
Viene rilasciato androidx.compose.material:material-*:1.7.0-beta07
. La versione 1.7.0-beta07 contiene questi commit.
Versione 1.7.0-beta06
24 luglio 2024
Viene rilasciato androidx.compose.material:material-*:1.7.0-beta06
. La versione 1.7.0-beta06 contiene questi commit.
Versione 1.7.0-beta05
10 luglio 2024
Viene rilasciato androidx.compose.material:material-*:1.7.0-beta05
. La versione 1.7.0-beta05 contiene questi commit.
Versione 1.7.0-beta04
26 giugno 2024
Viene rilasciato androidx.compose.material:material-*:1.7.0-beta04
. La versione 1.7.0-beta04 contiene questi commit.
Versione 1.7.0-beta03
12 giugno 2024
Viene rilasciato androidx.compose.material:material-*:1.7.0-beta03
. La versione 1.7.0-beta03 contiene questi commit.
Versione 1.7.0-beta02
29 maggio 2024
Viene rilasciato androidx.compose.material:material-*:1.7.0-beta02
. La versione 1.7.0-beta02 contiene questi commit.
Modifiche alle API
- API Update per l'applicazione di stili ai link: spostamento
TextLinkStyles
inTextStyle
e rimozione diTextDefaults
dal materiale (I5477b)
Versione 1.7.0-beta01
14 maggio 2024
Viene rilasciato androidx.compose.material:material-*:1.7.0-beta01
. La versione 1.7.0-beta01 contiene questi commit.
Modifiche alle API
- È stata aggiornata l'API per ottenere link con temi Material in Testo. In particolare, sono stati rimossi i metodi da
TextDefaults
per la creazione diLinkAnnotations
a tema e l'analisi dell'HTML con link a tema. È stata invece aggiunta una classeTextLinkStyles
che consente di definire lo stile dei link come parametro del Testo componibile. (I31b93)
Versione 1.7.0-alpha08
1° maggio 2024
Viene rilasciato androidx.compose.material:material-*:1.7.0-alpha08
. La versione 1.7.0-alpha08 contiene questi commit.
Modifiche alle API
- Correggi il problema che
backgroundColor
non si applica aTextFieldDecorationBox
eOutlinedTextFieldDecorationBox
. I riquadri decorativi ora accettano un parametroshape
. (I371c2, b/307694651) RippleConfiguration#isEnabled
è stato rimosso eLocalRippleConfiguration
è stato reso null. Per disattivare un eco, invece di fornire unRippleConfiguration
conisEnabled = false
, specificanull
aLocalRippleConfiguration
. (I22725)- I link di testo hanno un'opzione di stile con stato premuto, oltre allo stile normale, con passaggio del mouse e elemento attivo. I metodi
TextDefaults
hanno ciascuno un argomentopressedStyle
a supporto. (Ic473f, b/139312671)
Correzioni di bug
- La spaziatura interna superiore
OutlinedTextField
per l'etichetta ora tiene conto delle dimensioni dei caratteri del sistema. (Idc781)
Versione 1.7.0-alpha07
17 aprile 2024
Viene rilasciato androidx.compose.material:material-*:1.7.0-alpha07
. La versione 1.7.0-alpha07 contiene questi commit.
Modifiche alle API
- Per i link di testo è stata attivata l'opzione di stile per lo stato selezionata, oltre allo stile normale, con il passaggio del mouse e lo stato attivo. (I5f864, b/139312671)
- È stato aggiunto un oggetto
TextDefaults
contenente metodi per creare unaLinkAnnotation
e analizzare la stringa con tag HTML che applicaMaterialTheme
ai link. (I98532, b/139312671)
Versione 1.7.0-alpha06
3 aprile 2024
Viene rilasciato androidx.compose.material:material-*:1.7.0-alpha06
. La versione 1.7.0-alpha06 contiene questi commit.
Annuncio
androidx.compose.material
non richiede più l'utilizzo della stessa versione di ogni artefatto è questo gruppo di esperti. Gli utenti possono combinare le versioni delle librerie di base di Compose (Ie5fba)
Modifiche alle API
- Altri valori predefiniti
ModalDrawer
eBottomDrawer
spostati nell'oggettoDrawerDefaults
. (Ib5b2e).
Versione 1.7.0-alpha05
20 marzo 2024
Viene rilasciato androidx.compose.material:material-*:1.7.0-alpha05
. La versione 1.7.0-alpha05 contiene questi commit.
Modifiche alle API
- Il flag
ScaffoldSubcomposeInMeasureFix
è stato rimosso. (I67363)
Versione 1.7.0-alpha04
6 marzo 2024
Viene rilasciato androidx.compose.material:material-*:1.7.0-alpha04
. La versione 1.7.0-alpha04 contiene questi commit.
Nuove funzionalità
- È stato aggiunto un nuovo artefatto
androidx.compose.material:material-navigation
che aggiunge il supporto per i fogli inferiori come destinazioni quando si utilizza Scrittura di navigazione. Questo sostituisce la libreria del materiale di navigazione accompagnato. (d65d57, b/180247978)
Versione 1.7.0-alpha03
21 febbraio 2024
Viene rilasciato androidx.compose.material:material-*:1.7.0-alpha03
. La versione 1.7.0-alpha03 contiene questi commit.
Modifiche alle API
BottomDrawer
è stato promosso da sperimentale a stabile.BottomDrawerState
ora mostra l'avanzamento come funzione, consentendo di eseguire query sull'avanzamento tra target specifici.BottomDrawerState
ora consente di personalizzare le specifiche dell'animazione econfirmStateChange
non è più una lambda finale. (I9c029, b/261423850)BackdropScaffold
è stato promosso da sperimentale a stabile. Secondo le linee guida, la specifica dell'animazione è ora una specificatween
. Il parametrosnackbarHost
diBackdropScaffold
non è più l'ultimo parametro per evitare confusione con le lambda finali.BackdropScaffoldState
espone un'APIprogress(from, to)
per l'avanzamento della query tra gli ancoraggi. (I73f48, b/261423218)- I fogli inferiori standard sono stati promossi da sperimentale a stabile. I costruttori deprecati sono stati rimossi. La specifica dell'animazione è ora una specifica di interpolazione secondo le linee guida. (I3c1a8, b/278692145, b/261409034)
- I fogli inferiori modali sono stati promossi da sperimentali a stabili. I costruttori deprecati sono stati rimossi. Secondo le linee guida, la specifica dell'animazione è ora una specifica
tween
. (Ic53f4, b/278692145, b/266780235, b/261409034)
Correzioni di bug
- È stato risolto un problema per cui
BackdropScaffold
poteva arrestarsi in modo anomalo in scenari specifici in combinazione conLookaheadScope
. (I51396) - Rimossa la sottocomposizione all'interno di
BottomSheetScaffold
per migliorare le prestazioni. È stato risolto un problema per cuiBottomSheetScaffold
si arrestava in modo anomalo in scenari specifici in combinazione conLookaheadScope
. (I2f90c) - Rimossa la sottocomposizione all'interno di
ModalBottomSheetLayout
, per migliorare il rendimento. (I7a025)
Versione 1.7.0-alpha02
7 febbraio 2024
Viene rilasciato androidx.compose.material:material-*:1.7.0-alpha02
. La versione 1.7.0-alpha02 contiene questi commit.
Versione 1.7.0-alpha01
24 gennaio 2024
Viene rilasciato androidx.compose.material:material-*:1.7.0-alpha01
. La versione 1.7.0-alpha01 contiene questi commit.
Cambiamenti del comportamento
- È stata eseguita la migrazione dei componenti Material per utilizzare le nuove API Ripple e non eseguire più query su
RippleTheme
.
Modifiche alle API
rememberRipple
eRippleTheme
sono stati deprecati da material-ripple, con nuove API ripple eRippleConfiguration
aggiunte alle librerie dei sistemi di progettazione dei materiali e di altro tipo.I componenti del materiale che in precedenza accettavano un valore
MutableInteractionSource
e che per impostazione predefinita ricordavano{ MutableInteractionSource() }
ora accettano un valoreMutableInteractionSource
con valore null e lo utilizzano per impostazione predefinita. Se non stai sollevando e utilizzandoMutableInteractionSource
, devi passare null. Ciò consente ad alcuni componenti di creare un'istanza in modo lento solo quando necessario, migliorando le prestazioni. È inoltre consigliabile apportare modifiche simili nei tuoi componenti.
Versione 1.6
Versione 1.6.8
12 giugno 2024
Viene rilasciato androidx.compose.material:material-*:1.6.8
. La versione 1.6.8 contiene questi commit.
Versione 1.6.7
1° maggio 2024
Viene rilasciato androidx.compose.material:material-*:1.6.7
. La versione 1.6.7 contiene questi commit.
Versione 1.6.6
17 aprile 2024
Viene rilasciato androidx.compose.material:material-*:1.6.6
. Nessuna modifica dall'ultima release.
Versione 1.6.5
3 aprile 2024
Viene rilasciato androidx.compose.material:material-*:1.6.5
. La versione 1.6.5 contiene questi commit.
Versione 1.6.4
20 marzo 2024
Viene rilasciato androidx.compose.material:material-*:1.6.4
. La versione 1.6.4 contiene questi commit.
Versione 1.6.3
6 marzo 2024
Viene rilasciato androidx.compose.material:material-*:1.6.3
. La versione 1.6.3 contiene questi commit.
Correzioni di bug
- Correggi la regressione in
ExposedDropdownMenu
per renderla di nuovo attivabile. (c0e0ed, b/323694447)
Versione 1.6.2
21 febbraio 2024
Viene rilasciato androidx.compose.material:material-*:1.6.2
. La versione 1.6.2 contiene questi commit.
Versione 1.6.1
7 febbraio 2024
Viene rilasciato androidx.compose.material:material-*:1.6.1
. La versione 1.6.1 contiene questi commit.
Versione 1.6.0
24 gennaio 2024
Viene rilasciato androidx.compose.material:material-*:1.6.0
. La versione 1.6.0 contiene questi commit.
Versione 1.6.0-rc01
10 gennaio 2024
Viene rilasciato androidx.compose.material:material-*:1.6.0-rc01
. La versione 1.6.0-rc01 contiene questi commit.
Versione 1.6.0-beta03
13 dicembre 2023
Viene rilasciato androidx.compose.material:material-*:1.6.0-beta03
. La versione 1.6.0-beta03 contiene questi commit.
Versione 1.6.0-beta02
29 novembre 2023
Viene rilasciato androidx.compose.material:material-*:1.6.0-beta02
. La versione 1.6.0-beta02 contiene questi commit.
Versione 1.6.0-beta01
15 novembre 2023
Viene rilasciato androidx.compose.material:material-*:1.6.0-beta01
. La versione 1.6.0-beta01 contiene questi commit.
Versione 1.6.0-alpha08
18 ottobre 2023
Viene rilasciato androidx.compose.material:material-*:1.6.0-alpha08
. La versione 1.6.0-alpha08 contiene questi commit.
Modifiche alle API
- Ritirare una funzione
materialIcon
in favore del suo sovraccarico che accetta un parametroautoMirror
. (Ia338d)
Correzioni di bug - Aumento automatico dell'altezza dell'elemento di navigazione per contenuti di grandi dimensioni. (0c4ecc, b/272336962)
Versione 1.6.0-alpha07
4 ottobre 2023
Viene rilasciato androidx.compose.material:material-*:1.6.0-alpha07
. La versione 1.6.0-alpha07 contiene questi commit.
- Aggiornamenti delle dipendenze
Versione 1.6.0-alpha06
20 settembre 2023
Viene rilasciato androidx.compose.material:material-*:1.6.0-alpha06
. La versione 1.6.0-alpha06 contiene questi commit.
Cambiamento che determina un'interruzione del comportamento
- Funzionalità relativa al riquadro a scomparsa rimossa da
BottomSheetScaffold
. AvvolgiBottomSheetScaffold
in un componibile a cassetto per ottenere la funzionalità precedente. VediBottomSheetScaffoldWithDrawerSample
per un esempio. (I1dcc8)
Modifiche alle API
- È stato introdotto un flag temporaneo per stabilire se lo strumento Scaffold deve misurare gli elementi secondari durante la misurazione o il posizionamento. Per impostazione predefinita, viene eseguita la misurazione. Se stai riscontrando problemi con il nuovo comportamento, segnalalo. (If6e3b).
Versione 1.6.0-alpha05
6 settembre 2023
Viene rilasciato androidx.compose.material:material-*:1.6.0-alpha05
. La versione 1.6.0-alpha05 contiene questi commit.
Nuove funzionalità
- È stato aggiunto il supporto delle icone con mirroring automatico quando vengono visualizzate in layout da destra a sinistra. Le icone nei moduli material-icon-core e material-icone estese ora forniscono set di icone aggiuntivi per supportare il mirroring automatico quando l'icona lo consente. I nuovi set contengono il prefisso
Icons.AutoMirrored.Filled...
e così via e le icone di blocco verranno visualizzate automaticamente nei layout RTL. Consulta l'elenco delle icone Material per consultare l'elenco delle icone che possono (e devono) essere speculari per la visualizzazione.
Modifiche alle API
- È stato aggiunto il supporto delle icone con mirroring automatico quando vengono visualizzate in layout da destra a sinistra. Le icone nei moduli material-icon-core e material-icone estese ora forniscono set di icone aggiuntivi per supportare il mirroring automatico quando l'icona lo consente. I nuovi set contengono il prefisso
Icons.AutoMirrored.Filled...
e così via e le icone di blocco verranno visualizzate automaticamente nei layout RTL. Consulta l'elenco delle icone Material per consultare l'elenco delle icone che possono (e devono) essere speculari per la visualizzazione. Le proprietà fornite in precedenza per queste icone sono ora contrassegnate come deprecate e viene fornito un suggerimento di blocco sostitutivo per facilitare la migrazione. Se non disponi di una gestione speciale per le icone di mirroring su RTL, ti consigliamo di eseguire la migrazione al nuovo insieme di icone. Ad esempio, è necessario eseguire il refactoring diIcons.Filled.ArrowBack
inIcons.AutoMirrored.Filled.ArrowBack
. (I4b511).
Versione 1.6.0-alpha04
23 agosto 2023
Viene rilasciato androidx.compose.material:material-*:1.6.0-alpha04
. La versione 1.6.0-alpha04 contiene questi commit.
Correzioni di bug
- È stato risolto un problema per cui alcuni componenti che utilizzano
Subcomposition
(ad es.BottomSheetScaffold
) all'interno di un'impalcatura all'interno di unLookaheadScope
tentavano di leggere troppo presto le proprie dimensioni. (If2c5d). - È stato corretto il calcolo del valore
offset
diDropdownMenu
in modo che gli offset x dipendano esclusivamente dalla direzione del layout locale e gli offset y non vengano più invertiti quando il menu si trova nella parte inferiore dello schermo. (ICC74, b/294103942) - Sono stati ottimizzati gli interni del layout di
BottomSheetScaffold
e risolto un potenziale problema relativo aBottomSheetScaffold
all'interno di unLookaheadLayout
. (Ic0afa)
Versione 1.6.0-alpha03
9 agosto 2023
Viene rilasciato androidx.compose.material:material-*:1.6.0-alpha03
. La versione 1.6.0-alpha03 contiene questi commit.
Modifiche alle API
- I componenti Material2 ora hanno un'API separata per passare
windowInsets
al supporto della funzionalità edge-to-edge in Android. A differenza dei componenti material3, i componenti material2 non supportano gli inserti per impostazione predefinita e il valore deve essere passato manualmente. Per indicazioni, consulta gli esempi corrispondenti. (I655e8)
Versione 1.6.0-alpha02
26 luglio 2023
Viene rilasciato androidx.compose.material:material-*:1.6.0-alpha02
. La versione 1.6.0-alpha02 contiene questi commit.
Modifiche alle API
- Sposteremo la dipendenza della densità a livello di componente. Questo vale per i seguenti componenti:
SwipeToDismiss
e componenti basati su Fogli. Utilizza il nuovo sovraccarico fornito in cui la densità è un parametro. (I1846e) - Annotazioni aggiuntive per specificare gli input consentiti per i componibili (I51109)
- File API aggiornati per annotare l'eliminazione della compatibilità (I8e87a, b/287516207)
- È stato aggiunto un nuovo allineamento Avvia per
FabPosition
(Ib7aea, b/170592777) TextFieldColorsWithIcons
in Material 2 è stato ritirato e sostituito conTextFieldColors
. Quando esegui l'override dileadingIconColor
otrailingIconColor
, esegui l'override anche dell'overload coninteractionSource
. (Id57ed, b/199377790)
Versione 1.6.0-alpha01
21 giu 2023
Viene rilasciato androidx.compose.material:material-*:1.6.0-alpha01
. La versione 1.6.0-alpha01 contiene questi commit.
Cambiamenti del comportamento
includeFontPadding
ora èfalse
per impostazione predefinita nella tipografia Material 2. Anche lo stile predefinito di altezza della riga è stato modificato inTrim.None
eAlignment.Center
elineHeight
esplicito (in sp) è stato aggiunto aiTextStyle
diTypography
. Consulta la documentazione relativa all'API se vuoi personalizzare questi valori e il post del blog per una spiegazione approfondita di queste modifiche. (Icabc3, I3f801, I04c03)
Modifiche alle API
- Le API
Swipeable
di Material sono state ritirate. Fai riferimento alle APIAnchoredDraggable
di Foundation, ottimizzate per casi d'uso semplici e complessi. (I732e0)
Correzioni di bug
BottomSheetState
,ModalBottomSheetState
eBottomDrawerState
ora mostrano una proprietà di avanzamento che indica lo stato di avanzamento tra l'ancoraggio corrente (stabilito) e l'ancoraggio più vicino nella direzione di scorrimento. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
Versione 1.5
Versione 1.5.4
18 ottobre 2023
Viene rilasciato androidx.compose.material:material-*:1.5.4
. La versione 1.5.4 contiene questi commit.
Versione 1.5.3
4 ottobre 2023
Viene rilasciato androidx.compose.material:material-*:1.5.3
. Questa versione non presenta modifiche
Versione 1.5.2
27 settembre 2023
Viene rilasciato androidx.compose.material:material-*:1.5.2
. La versione 1.5.2 contiene questi commit.
Versione 1.5.1
6 settembre 2023
androidx.compose.material:material-*:1.5.1
viene rilasciato senza modifiche. La versione 1.5.1 contiene questi commit.
Versione 1.5.0
9 agosto 2023
Viene rilasciato androidx.compose.material:material-*:1.5.0
. La versione 1.5.0 contiene questi commit.
Modifiche importanti dalla versione 1.4.0
Modifiche alle API
- Modifiche incorporate nelle API Swipeable1 in
BottomSheetScaffold
. Il parametroconfirmStateChange
diBottomSheetState
è stato rinominato inconfirmValueChange
.progress
è ora esposto come valore in virgola mobile.animateTo
esnapTo
sono interni. Usa inveceexpand()
ecollapse()
.direction
eoverflow
sono stati rimossi.offset
è stato sostituito conrequireOffset()
. I323B4 - Contrassegna la funzione
snapTo
in Riquadro a scomparsa come API non sperimentale. (Ib9c18, b/261425368) - È stato aggiunto un parametro per il colore della traccia per gli indicatori di avanzamento circolari e un parametro per il limite del tratto per gli indicatori di avanzamento circolari e lineari. (Ie668c, b/216325962, b/222964817)
ModalBottomSheetState
,ModalBottomSheetState.Saver
econfirmStateChange
dirememberModalBottomSheetState
sono stati rinominati inconfirmValueChange
. (Ib48d1).- Aggiungi
Modifier.minimumInteractiveComponentSize
. Può essere utilizzato per prenotare una dimensione di almeno 48.dp per distinguere le interazioni di tocco nel caso in cui l'elemento abbia dimensioni inferiori. (I33f58, b/258495559) - Modifiche incorporate nelle API Slideable in
ModalBottomSheetLayout
. L'elemento animatoTo diModalBottomSheetState
non accetta più un parametroanimationSpec
e l'offset esposto è ora annullabile. UtilizzarequireOffset
per richiedere l'offset. (Ia2e79) - Aggiunta dell'annotazione
@JvmDefaultWithCompatibility
(I8f206) - Le modifiche incorporate nelle API scorrevoli in
animateTo
diModalDrawer. DrawerState
sono state sostituite dai metodi di apertura e chiusura e ora l'offset è annullabile. UtilizzarequireOffset
per richiedere l'offset. (I3de9e) - Aggiornati cassetti e fogli per ritardare correttamente le pressioni nel caso in cui i gesti possano diventare eventi di scorrimento.
- È stato aggiunto il parametro
minLines
in material e testo material3,TextField
eOutlinedTextField
che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d)
Correzioni di bug
- È stato risolto un problema per cui
pullRefresh
non consumava la velocità, causando la visualizzazione dell'overscroll. È stata anche modificata la firma dell'API della lambdaonRelease
inModifier.pullRefresh
per restituire un valore in virgola mobile per la velocità consumata (I7db65, b/266874741) BottomSheetState
,ModalBottomSheetState
eBottomDrawerState
ora mostrano una proprietà di avanzamento che indica lo stato di avanzamento tra l'ancoraggio corrente (stabilito) e l'ancoraggio più vicino nella direzione di scorrimento. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)- È stato risolto il problema che mostrava l'azione di ignorare
AlertDialog
sotto l'azione di conferma quando queste si sovrapponevano tra loro per rientrare nella larghezza della finestra di dialogo. Questa correzione allinea l'implementazione alle specifiche di Material Design. (I029de, b/235454277) BottomSheetScaffold
non parteciperà più allo scorrimento nidificato quandogesturesEnabled
è impostato su false. (I634f3, b/215403277)- È stato corretto un bug per cui
BottomSheetScaffold
avrebbe avuto un arresto anomalo se fornito con contenuti vuoti per le aree annuncio. (Ib24a5, b/235588730) - Corregge
PullRefreshIndicator
che intercetta clic/eventi del puntatore. (2494256, b/271777421) - È stato risolto un problema per cui
ModalBottomSheetLayout
si arrestava in modo anomalo in un caso limite a seguito di un cambiamento di orientamento. Ora le animazioni di layout (ad es.Modifier.animateContentSize
) nei contenuti del foglio funzionano senza problemi. (I2f981, b/266780234)
Versione 1.5.0-rc01
26 luglio 2023
Viene rilasciato androidx.compose.material:material-*:1.5.0-rc01
. La versione 1.5.0-rc01 contiene questi commit.
Versione 1.5.0-beta03
28 giugno 2023
Viene rilasciato androidx.compose.material:material-*:1.5.0-beta03
. La versione 1.5.0-beta03 contiene questi commit.
Correzioni di bug
BottomSheetState
,ModalBottomSheetState
eBottomDrawerState
ora mostrano una proprietà di avanzamento che indica lo stato di avanzamento tra l'ancoraggio corrente (stabilito) e l'ancoraggio più vicino nella direzione di scorrimento. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
Versione 1.5.0-beta02
7 giugno 2023
Viene rilasciato androidx.compose.material:material-*:1.5.0-beta02
. La versione 1.5.0-beta02 contiene questi commit.
Versione 1.5.0-beta01
24 maggio 2023
Viene rilasciato androidx.compose.material:material-*:1.5.0-beta01
. La versione 1.5.0-beta01 contiene questi commit.
Modifiche alle API
- Per gli offset di
DrawerState
eBottomDrawerState
non è più possibile specificare valori null. Restituiscono inveceFloat.NaN
per indicare l'assenza dell'offset. (Ie9855) - È stata aggiunta un'opzione da passare in un
ScrollState
durante la creazione di unDropdownMenu
o di unExposedDropdownMenu
per controllare lo stato di scorrimento verticale delle voci di menu visualizzate. (Idb009, b/185304441) - Aggiungi il supporto per attivare/disattivare il gesto di
ModalBottomSheetLayout
in modo che l'utente possa configurarlo per un riquadro inferiore più in primo piano (I40af0) - È stato aggiunto un parametro di colore a
BasicText
per consentire di animare o impostare in modo efficiente il colore del testo. (Iffd88, b/246961787) - Ridenominazione della proprietà semantica
isContainer
inisTraversalGroup
(I121f6)
Correzioni di bug
- È stato risolto il problema che mostrava l'azione di ignorare
AlertDialog
sotto l'azione di conferma quando queste si sovrapponevano tra loro per rientrare nella larghezza della finestra di dialogo. Questa correzione allinea l'implementazione alle specifiche di Material Design. (I029de, b/235454277)
Versione 1.5.0-alpha04
10 maggio 2023
Viene rilasciato androidx.compose.material:material-*:1.5.0-alpha04
. La versione 1.5.0-alpha04 contiene questi commit.
Modifiche alle API
- Sposteremo la dipendenza della densità a livello di componente. Questo vale per i seguenti componenti:
BottomDrawer
,ModalBottomSheetLayout
,BottomSheetScaffold
,Switch
,ModalDrawer
. Utilizza il nuovo sovraccarico fornito in cui la densità è un parametro. (I8fbd8)
Versione 1.5.0-alpha03
19 aprile 2023
Viene rilasciato androidx.compose.material:material-*:1.5.0-alpha03
. La versione 1.5.0-alpha03 contiene questi commit.
Modifiche alle API
- Aggiorna i componenti interni di
BottomDrawer
per utilizzare le nuove APISwipeableV2
. Per questo motivo,BottomDrawerState
ora avrà solo API definite a livello di classe e non erediterà metodi/proprietà daSwipeableState
. Stiamo utilizzando la composizione con un elementoSwipeableV2State
interno. Offset è ora una proprietà con rappresentazione in virgola mobile null. Il valore corrente e un valore target di scorrimento è ancora accessibile tramite le proprietà currentValue e targetValue. I metodi a livello di classe precedenti, come apertura/espansione/chiusura e proprietà comeisOpen/isClosed
, continuano a essere supportati. (Iad40c, b/178529942, b/220676296)
Correzioni di bug
- Sono stati aggiornati i componenti interni del componente Switch. L'opzione ora mostrerà l'anteprima più vicina (stato target) durante il trascinamento. (ID90d4)
- I contenuti animati dei fogli (ad es.
Modifier.animateContentSize
nei contenuti del foglio) inBottomSheetScaffold
sono stati ottimizzati e ora funzionano senza problemi. (Ia913c, b/270518202, b/254446195) BottomSheetScaffold
non parteciperà più allo scorrimento nidificato quandogesturesEnabled
è impostato sufalse
. (I634f3, b/215403277)
Versione 1.5.0-alpha02
5 aprile 2023
Viene rilasciato androidx.compose.material:material-*:1.5.0-alpha02
. La versione 1.5.0-alpha02 contiene questi commit.
Correzioni di bug
- È stato corretto un bug per cui
BottomSheetScaffold
avrebbe avuto un arresto anomalo se fornito con contenuti vuoti per le aree annuncio. (Ib24a5, b/235588730) - Corregge
PullRefreshIndicator
di intercettazione di clic / eventi puntatore (2494256, b/271777421)
Versione 1.5.0-alpha01
22 marzo 2023
Viene rilasciato androidx.compose.material:material-*:1.5.0-alpha01
. La versione 1.5.0-alpha01 contiene questi commit.
Correzioni di bug
- Aggiungi un esempio di ripetizione flusso del gruppo di chip. Aggiorna la spaziatura interna orizzontale tra i chip secondari nell'esempio di chipgroup a riga singola in modo che corrisponda alle specifiche. (I3b155).
- È stato risolto un problema per cui
ModalBottomSheetLayout
si arrestava in modo anomalo in un caso limite a seguito di un cambiamento di orientamento. Ora le animazioni di layout (ad es.Modifier.animateContentSize
) nei contenuti del foglio funzionano senza problemi. (I2f981, b/266780234)
Versione 1.4
Versione 1.4.3
3 maggio 2023
androidx.compose.material:material-*:1.4.3
viene rilasciato senza modifiche (solo un bumper di versione).
Versione 1.4.2
19 aprile 2023
Viene rilasciato androidx.compose.material:material-*:1.4.2
. La versione 1.4.2 contiene questi commit.
Versione 1.4.1
5 aprile 2023
Viene rilasciato androidx.compose.material:material-*:1.4.1
. La versione 1.4.1 contiene questi commit.
Versione 1.4.0
22 marzo 2023
Viene rilasciato androidx.compose.material:material-*:1.4.0
. La versione 1.4.0 contiene questi commit.
Modifiche importanti dalla versione 1.3.0
Modifiche alle API
- Aggiungi
Modifier.minimumInteractiveComponentSize
. Può essere utilizzato per prenotare una dimensione di almeno 48.dp per distinguere le interazioni di tocco nel caso in cui l'elemento abbia dimensioni inferiori. (I33f58, b/258495559) - Modifiche incorporate nelle API Slideable in
ModalDrawer
. Il valoreanimateTo
diDrawerState
è stato sostituito dai metodi di apertura e chiusura e ora l'offset è annullabile. UtilizzarequireOffset
per richiedere l'offset. (I3de9e) - È stato aggiunto il parametro
minLines
in material e testo material3,TextField
eOutlinedTextField
che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d) - Parametro
minLines
aggiunto aBasicText
eBasicTextField
. Consente di impostare l'altezza minima di questi componibili in termini di numero di righe (I24294, b/122476634)
Versione 1.4.0-rc01
8 marzo 2023
androidx.compose.material:material-*:1.4.0-rc01
viene rilasciato senza modifiche. La versione 1.4.0-rc01 contiene questi commit.
Versione 1.4.0-beta02
22 febbraio 2023
Viene rilasciato androidx.compose.material:material-*:1.4.0-beta02
. La versione 1.4.0-beta02 contiene questi commit.
Modifiche alle API
- Modifiche incorporate nelle API Slideable in
BottomSheetScaffold
. Il parametroconfirmStateChange
diBottomSheetState
è stato rinominato inconfirmValueChange
.progress
è ora esposto come valore in virgola mobile.animateTo
esnapTo
sono interni. Usa inveceexpand()
ecollapse()
.direction
eoverflow
sono stati rimossi.offset
è stato sostituito conrequireOffset()
. (I323b4)
Correzioni di bug
- Sono stati rimossi i ruoli semantici dalle piattaforme selezionabili e selezionabili, sono stati aggiornati i componenti che li utilizzavano per impostare i ruoli utilizzando modificatore.semantics (Ibb4ba)
- Aggiornamento di minore entità alle icone Material estese che modifica le icone riempite
desktop_mac
,directions
ekitchen
. (I65f5e).
Versione 1.4.0-beta01
8 febbraio 2023
Viene rilasciato androidx.compose.material:material-*:1.4.0-beta01
. La versione 1.4.0-beta01 contiene questi commit.
Modifiche alle API
- È stato risolto un problema per cui
pullRefresh
non consumava la velocità, causando la visualizzazione dell'overscroll. È stata anche modificata la firma dell'API della lambdaonRelease
inModifier.pullRefresh
per restituire un valore in virgola mobile per la velocità consumata (I7db65, b/266874741) - Il getter
LocalMinimuTouchTargetEnforcement
della proprietà ripristinato e la contrassegna come deprecata e reindirizza aLocalMinimumInteractiveComponentEnforcement
. (I60dd5)
Versione 1.4.0-alpha05
25 gennaio 2023
Viene rilasciato androidx.compose.material:material-*:1.4.0-alpha05
. La versione 1.4.0-alpha05 contiene questi commit.
Correzioni di bug
- È stato risolto un problema per cui lo stato
ModalBottomSheetLayout's HalfExpanded
veniva calcolato in modo errato e il foglio sembrava mobile. (I8c615, b/265610459) - È stato corretto un bug in
ModalBottomSheetLayout
per cui, in alcune circostanze, il foglio si arrestava in modo anomalo passando da nascosto a uno stato visibile. (Ia9265, b/265444789)
Versione 1.4.0-alpha04
11 gennaio 2023
Viene rilasciato androidx.compose.material:material-*:1.4.0-alpha04
. La versione 1.4.0-alpha04 contiene questi commit.
Modifiche alle API
- Aggiunta nella proprietà semantica di
IsContainer
sulle piattaforme. Questa proprietà verrà utilizzata in una modifica successiva che determina l'ordine di attraversamento in base al significato semantico di elementi come le superfici. (I63379) - Contrassegna la funzione
snapTo
in Riquadro a scomparsa come API non sperimentale. (Ib9c18, b/261425368) - È stato aggiunto un parametro per il colore della traccia per gli indicatori di avanzamento circolari e un parametro per il limite del tratto per gli indicatori di avanzamento circolari e lineari. (Ie668c, b/216325962, b/222964817)
ModalBottomSheetState
,ModalBottomSheetState.Saver
econfirmStateChange
dirememberModalBottomSheetState
sono stati rinominati inconfirmValueChange
. (Ib48d1).- Altri tipi di output nulli per le funzioni nascoste deprecate (Ibf7b0)
- Aggiungi
Modifier.minimumInteractiveComponentSize
. Può essere utilizzato per prenotare una dimensione di almeno 48.dp per distinguere le interazioni di tocco nel caso in cui l'elemento abbia dimensioni inferiori. (I33f58, b/258495559) - Modifiche incorporate nelle API Slideable in
ModalBottomSheetLayout
. Il valoreanimateTo
diModalBottomSheetState
non utilizza più un parametroanimationSpec
e il valore esposto dioffset
è ora annullabile. UsarequireOffset
per richiedereoffset
. (Ia2e79)
Correzioni di bug
- Ora un foglio di
ModalBottomSheetLayout
ha una larghezza massima di 640 dp. (I71a4f, b/234927577) - Corregge un problema per cui
rememberPullRefreshState
non aggiornavarefreshThreshold
erefreshingOffset
nel tempo. (Ifed10, b/263159832) - Lo stato di avanzamento degli indicatori è ora correttamente limitato all'intervallo previsto. (I8a7eb, b/262262727)
- Se
ModalBottomSheetState
non ha ancora ricevuto alcun ancoraggio, aggiorneràcurrentValue
senza un'animazione quando vengono chiamatisnapTo
oanimateTo
anziché generare un'eccezione. (I2c91b). - È stato corretto lo stato di attivazione nell'implementazione
FilterChip
di Material 2. (Id326a, b/261329817) - È stato corretto un bug per cui
ModalBottomSheetLayout
si arrestava in modo anomalo se fosse statoHalfExpanded
durante la rotazione da verticale a orizzontale. Assicurati di trasmettere il valoreinitialValue
corretto, ad esempio controllando la configurazione. (Ie8df7, b/182882364) - Risolto un problema per cui
ModalBottomSheetLayout
si arrestava in modo anomalo se i contenuti del foglio erano vuoti.ModalBottomSheetLayout
ora consente i contenuti di fogli vuoti. Se i contenuti del foglio sono vuoti, avranno solo lo stato Nascosto. (Ic2288, b/200980998, b/216693030)
Problema noto
- Durante l'aggiornamento da
androidx.compose.foundation:1.4.0-alpha03
aandroidx.compose.foundation:1.4.0-alpha04
, potresti riscontrare un errorejava.lang.NoSuchFieldError
. Qui è indicato in origine il problema. È stata inviata una correzione che sarà disponibile nel prossimo aggiornamento di Compose. Come soluzione, aggiorna le librerieandroidx.compose.material
eandroidx.compose.material3
alla versione più recente(1.1.0-alpha04) o esegui il downgrade diandroidx.compose.foundation
a 1.4.0-alpha03.
Versione 1.4.0-alpha03
7 dicembre 2022
Viene rilasciato androidx.compose.material:material-*:1.4.0-alpha03
. La versione 1.4.0-alpha03 contiene questi commit.
Modifiche alle API
- Aggiunta dell'annotazione
@JvmDefaultWithCompatibility
(I8f206) - Modifiche incorporate nelle API
Swipeable
inModalDrawer
. Il valoreanimateTo
diDrawerState
è stato sostituito dai metodiopen
eclose
e ora è possibile specificare un valore null per l'offset. UtilizzarequireOffset
per richiedere l'offset. (I3de9e) - È stata aggiunta un'API Modifier per eseguire query sulle informazioni di scorrimento dei predecessori. (I2ba9d, b/203141462)
- Utilizzato in
Clickable
per ritardare correttamente le interazioni con la pressione, quando i gesti potrebbero diventare eventi di scorrimento. - È stato corretto il problema di
Clickables
che non ritardava correttamente le eco, se utilizzato all'interno di unScrollable ViewGroup
. - Aggiornati cassetti e fogli per ritardare correttamente le pressioni nel caso in cui i gesti possano diventare eventi di scorrimento.
Correzioni di bug
- È stato risolto un problema per cui
PullRefreshIndicator
poteva bloccarsi dopo la chiamata dionRefresh
se lo stato di aggiornamento non era stato modificato in true. (Ie2416, b/248274004)
Aggiornamenti delle dipendenze
- L'UI di Compose e Compose Material ora dipendono dal Ciclo di vita 2.5.1. (I05ab0, b/258038814)
Versione 1.4.0-alpha02
9 novembre 2022
Viene rilasciato androidx.compose.material:material-*:1.4.0-alpha02
. La versione 1.4.0-alpha02 contiene questi commit.
Modifiche alle API
awaitFirstDown
ewaitForUpOrCancellation
ora accettano unPointerEventPass
per una maggiore flessibilità. (I7579a, b/212091796)- È stato aggiunto il parametro
minLines
in material e testo material3,TextField
eOutlinedTextField
che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d) - Parametro
minLines
aggiunto aBasicTex
t eBasicTextField
. Consente di impostare l'altezza minima di questi componibili in termini numero di righe (I24294, b/122476634)
Versione 1.4.0-alpha01
24 ottobre 2022
Viene rilasciato androidx.compose.material:material-*:1.4.0-alpha01
. La versione 1.4.0-alpha01 contiene questi commit.
Modifiche alle API
- È stato aggiunto un nuovo metodo,
awaitEachGesture()
, per i rilevatori di gesti. Funziona in modo simile aforEachGesture()
, ma i gesti di loop sui gesti operano interamente all'interno diAwaitPointerEventScope
, in modo che gli eventi non vadano persi tra un'iterazione e l'altra. forEachGesture()
è stato ritirato a favore diawaitEachGesture()
perché consente di perdere eventi tra un gesto e l'altro. (Iffc3f, b/251260206)
Versione 1.3
Versione 1.3.1
9 novembre 2022
Viene rilasciato androidx.compose.material:material-*:1.3.1
. La versione 1.3.1 contiene questi commit.
Versione 1.3.0
24 ottobre 2022
Viene rilasciato androidx.compose.material:material-*:1.3.0
. La versione 1.3.0 contiene questi commit.
Modifiche importanti dalla versione 1.2.0
Modifica del comportamento che provoca un errore
- L'elevazione massima supportata nelle finestre di dialogo e nei popup è stata ridotta a 8 dp.
Modifiche alle API
- Aggiungi un componente Pull-To-Refresh a Compose (I29168).
- Cambia il nome del parametro da valori a valore in RangeSlider (I3b79a).
Versione 1.3.0-rc01
5 ottobre 2022
Viene rilasciato androidx.compose.material:material-*:1.3.0-rc01
. La versione 1.3.0-rc01 contiene questi commit.
Versione 1.3.0-beta03
21 settembre 2022
Viene rilasciato androidx.compose.material:material-*:1.3.0-beta03
. La versione 1.3.0-beta03 contiene questi commit.
Modifiche alle API
- Aggiungere un componente Pull-To-Refresh a Compose (I29168)
Versione 1.3.0-beta02
7 settembre 2022
Viene rilasciato androidx.compose.material:material-*:1.3.0-beta02
. La versione 1.3.0-beta02 contiene questi commit.
Nessuna modifica dalla versione 1.3.0-beta01
Versione 1.3.0-beta01
24 agosto 2022
Viene rilasciato androidx.compose.material:material-*:1.3.0-beta01
. La versione 1.3.0-beta01 contiene questi commit.
Modifica del comportamento che provoca un errore
L'elevazione massima supportata nelle finestre di dialogo e nei popup è stata ridotta a 8 dp.
L'elevazione massima supportata per le finestre di dialogo e i popup di composizione è stata ridotta da 30 dp a 8 dp. Questa modifica interessa le finestre di dialogo e i popup personalizzati dell'interfaccia utente e dei materiali. Questa modifica è stata apportata per mitigare un bug di accessibilità sulle versioni di Android precedenti alla S e per garantire che i servizi di accessibilità all'interno di queste finestre siano in grado di interagire con i contenuti all'interno della finestra di dialogo o del popup.
Questa modifica ti interesserà solo se stai creando un'implementazione di finestre di dialogo o popup personalizzate con un'elevazione impostata su livelli superiori a 8 dp. Valuta la possibilità di abbassare l'elevazione della finestra di dialogo o del popup. Se devi rifiutare questo nuovo comportamento, puoi creare una finestra di dialogo o un popup con l'impostazione dell'elevazione desiderata. Questa opzione è sconsigliata perché l'accessibilità potrebbe risentirne negativamente ed è compito dello sviluppatore garantire che la parte inferiore della finestra di dialogo o del popup sia interattiva e leggibile dai servizi di accessibilità.
Versione 1.3.0-alpha03
10 agosto 2022
Viene rilasciato androidx.compose.material:material-*:1.3.0-alpha03
. La versione 1.3.0-alpha03 contiene questi commit.
Versione 1.3.0-alpha02
27 luglio 2022
Viene rilasciato androidx.compose.material:material-*:1.3.0-alpha02
. La versione 1.3.0-alpha02 contiene questi commit.
Contributo esterno
- Risolvi
AnimatedVisibility
problema conFloatingActionButton
in Scaffold (I3a0ae, b/224005027)
Versione 1.3.0-alpha01
29 giugno 2022
Viene rilasciato androidx.compose.material:material-*:1.3.0-alpha01
. La versione 1.3.0-alpha01 contiene questi commit.
Modifiche alle API
- Cambia il nome del parametro da valori a valore in
RangeSlider
(I3b79a)
Correzioni di bug
- Aggiorna il campione di badge per fornire una descrizione dei contenuti più significativa. (I10b9d)
Versione 1.2
Versione 1.2.1
10 agosto 2022
Viene rilasciato androidx.compose.material:material-*:1.2.1
. La versione 1.2.1 contiene questi commit.
Versione 1.2.0
27 luglio 2022
Viene rilasciato androidx.compose.material:material-*:1.2.0
. La versione 1.2.0 contiene questi commit.
Versione 1.2.0-rc03
29 giugno 2022
Viene rilasciato androidx.compose.material:material-*:1.2.0-rc03
. La versione 1.2.0-rc03 contiene questi commit.
- Nessuna modifica dalla versione 1.2.0-rc02.
Versione 1.2.0-rc02
22 giugno 2022
Viene rilasciato androidx.compose.material:material-*:1.2.0-rc02
. La versione 1.2.0-rc02 contiene questi commit.
Versione 1.2.0-rc01
15 giugno 2022
Viene rilasciato androidx.compose.material:material-*:1.2.0-rc01
. La versione 1.2.0-rc01 contiene questi commit.
Modifiche alle API
- Le interfacce nelle librerie di scrittura vengono ora create utilizzando i metodi predefiniti dell'interfaccia jdk8 (I5bcf1)
Correzioni di bug
- Aggiorna il badge con la scheda con l'icona iniziale per applicare il badge sull'etichetta al posto dell'icona. (I90993)
Versione 1.2.0-beta03
1 giugno 2022
Viene rilasciato androidx.compose.material:material-*:1.2.0-beta03
. La versione 1.2.0-beta03 contiene questi commit.
Correzioni di bug
- È stato corretto un bug per cui
BottomSheetScaffold
tracciava l'ombra della barra delle app in alto.BottomSheetScaffold
ora prende in considerazione lo stato del foglio anche quando vengono inserite le Snackbar: nello stato compresso, le Snackbar vengono posizionate sopra il foglio e il FAB. nello stato espanso, le snackbar sono ancorate alla parte inferiore del foglio. (Ia80b5, b/187771422)
Versione 1.2.0-beta02
18 maggio 2022
Viene rilasciato androidx.compose.material:material-*:1.2.0-beta02
. La versione 1.2.0-beta02 contiene questi commit.
Versione 1.2.0-beta01
11 maggio 2022
Viene rilasciato androidx.compose.material:material-*:1.2.0-beta01
. La versione 1.2.0-beta01 contiene questi commit.
Nuove funzionalità
- Questa è la prima versione beta della 1.2.
Modifiche alle API
- L'elemento componibile
TextFieldDefaults.BorderStroke
è stato rinominato che disegna un tratto del bordo inOutlinedTextField
inTextFieldDefaults.BorderBox
. (I5f295).
Versione 1.2.0-alpha08
20 aprile 2022
Viene rilasciato androidx.compose.material:material-*:1.2.0-alpha08
. La versione 1.2.0-alpha08 contiene questi commit.
Modifiche alle API
- Il consumo parziale (posizione OR giù) è stato deprecato in
PointerInputChange
. Puoi utilizzareconsume()
per applicare completamente la modifica. Puoi utilizzareisConsumed
per determinare se qualcun altro ha utilizzato in precedenza la modifica. PointerInputChange::copy()
ora crea sempre una copia superficiale. Significa che le copie diPointerInputChange
verranno consumate una volta che una delle copie è stata utilizzata. Se vuoi creare un elementoPointerInputChange
non associato, utilizza invece il costruttore. (Ie6be4, b/225669674)
Versione 1.2.0-alpha07
6 aprile 2022
Viene rilasciato androidx.compose.material:material-*:1.2.0-alpha07
. La versione 1.2.0-alpha07 contiene questi commit.
Versione 1.2.0-alpha06
23 marzo 2022
Viene rilasciato androidx.compose.material:material-*:1.2.0-alpha06
. La versione 1.2.0-alpha06 contiene questi commit.
Modifiche alle API
- Aggiornamenti all'API cliccabile Card per seguire le modifiche all'API Surface (I56bcb)
- Aggiornamenti all'API Material 2 Surface che aggiunge ulteriori funzioni di sovraccarico per le superfici selezionabili e attivabili. (Ifcca5).
Versione 1.2.0-alpha05
9 marzo 2022
Viene rilasciato androidx.compose.material:material-*:1.2.0-alpha05
. La versione 1.2.0-alpha05 contiene questi commit.
Modifiche alle API
LazyVerticalGrid
eLazyHorizontalGrid
ora sono stabili. (I307c0)LazyVerticalGrid/LazyHorizontalGrid
e tutte le API correlate sono stati spostati nel sottopacchetto .grid. Aggiorna le importazioni da androidx.compose.foundation.lazy ad androidx.compose.foundation.lazy.grid. (I2d446, b/219942574)- È stata ripristinata la modifica precedente dell'utilizzo esclusivo di una vista per
WindowInsetsControllerCompat
e richiedono di nuovo una finestra richiesta per la gestione di alcuni flag delle finestre. DeprecatoViewCompat.getWindowInsetsController
a favore diWindowCompat.getInsetsController
per garantire che la finestra corretta sia (ad esempio se la Vista è in una finestra di dialogo). (I660ae, b/219572936) - Testo:la funzionalità
includeFontPadding
è ora disattivata per impostazione predefinita. La vengono gestiti i problemi di ritaglio causati daincludeFontPadding=false
senza tagli nei testi lunghi. (I31c84, b/171394808) - È stata aggiunta una nuova API
LazyVerticalGrid
per definire le dimensioni degli assi trasversali (I17723)
Versione 1.2.0-alpha04
23 febbraio 2022
Viene rilasciato androidx.compose.material:material-*:1.2.0-alpha04
. La versione 1.2.0-alpha04 contiene questi commit.
Modifiche alle API
Add support for filter chips
(I39a6e, b/192585545)- Hai aggiunto
TextFieldDecorationBox
eOutlinedTextFieldDecorationBox
. Utilizzo insieme aBasicTextField
ti aiuterà a creare campi di testo personalizzati basati su testo Material Design ma con più opzioni di personalizzazione. - Fornito un modo per regolare la spaziatura interna orizzontale e verticale nei campi di testo. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/16800133)
Aggiunti
ComposableTarget
,ComposableTargetMarker
eComposableOpenTarget
che consente di generare report sul tempo di compilazione del momento una funzione componibile è chiamata targeting di un'applicazione progettato per l'uso.Nella maggior parte dei casi le annotazioni possono essere dedotte del compilatore, quindi l'uso diretto di queste annotazioni dovrebbe essere . I casi che non possono essere dedotti includono la creazione e utilizzando un applicatore personalizzato, funzioni componibili astratte (come dell'interfaccia utente), campi o variabili globali lambda componibili (vengono dedotti parametri e variabili locali), o quando utilizzi
ComposeNode
o una funzione componibile correlata.Per applicazioni personalizzate, le funzioni componibili che richiamano
ComposeNode
oReusableComposeNode
devono aggiungere unCompoableTarget
per la funzione e qualsiasi tipi di parametri lambda componibili. Tuttavia, è consigliabile per creare un'annotazione annotata conComposableTargetMarker
e poi l'annotazione contrassegnata anzichéComposableTarget
direttamente. Un'annotazione componibile contrassegnato conComposableTargetMarker
equivale aComposbleTarget
con il nome completo dell'attributo come parametro dell'applicatore. Per un esempio di utilizzoComposableTargetMarker
vedianroidx.compose.ui.UiComposable
. (I38f11)
Versione 1.2.0-alpha03
9 febbraio 2022
Viene rilasciato androidx.compose.material:material-*:1.2.0-alpha03
. La versione 1.2.0-alpha03 contiene questi commit.
Correzioni di bug
- Aggiungi esempio di gruppo di chip (I97080, b/192585545)
Versione 1.2.0-alpha02
26 gennaio 2022
Viene rilasciato androidx.compose.material:material-*:1.2.0-alpha02
. La versione 1.2.0-alpha02 contiene questi commit.
Modifiche alle API
NonRestartableComposable
aggiunto ai metodi che sono sovraccarichi di metodi esistenti senza una logica complessa. In questo modo si riduce generati controlli di memorizzazione (uguale) per tutti i parametri che vengono ripetute nella funzione interna che è chiamata. (I90490)- Aggiungi il supporto per il chip di azione (I07100, b/192585545)
Versione 1.2.0-alpha01
12 gennaio 2022
Viene rilasciato androidx.compose.material:material-*:1.2.0-alpha01
. La versione 1.2.0-alpha01 contiene questi commit.
Aggiornamenti delle dipendenze
- Ora dipende da Kotlin
1.6.10
.
Contributo esterno
ModalBottomSheetState
ora ha una segnalazioneisSkipHalfExpanded
. Può essere impostato tramite il costruttore o aggiornato in un secondo momento impostando la proprietàisSkipHalfExpanded
diModalBottomSheetState
sutrue
. L'aggiornamento del valore diisSkipHalfExpanded
causa una ricomposizione del foglio. (I18b86, b/186669820)
Versione 1.1
Versione 1.1.1
23 febbraio 2022
Viene rilasciato androidx.compose.material:material-*:1.1.1
. La versione 1.1.1 contiene questi commit.
Correzioni di bug
- Correggi
NullPointerException
inandroidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
(aosp/1947059, b/206677462) - È stato corretto l'arresto anomalo causato dai contenuti degli appunti durante la lettura da appunti su Android. (I06020, b/197769306)
- RTL fisso in
LazyVerticalGrid
(aosp/1931080, b/207510535)
Versione 1.1.0
9 febbraio 2022
Viene rilasciato androidx.compose.material:material-*:1.1.0
. La versione 1.1.0 contiene questi commit.
Modifiche importanti dalla versione 1.0.0
- Supporto stabile dell'effetto Overscroll per Android 12
- Miglioramenti alle dimensioni del touch target
- Tieni presente che, rispetto a Compose 1.0, i componenti Material amplieranno lo spazio di layout per rispettare le linee guida per l'accessibilità di Material relative alle dimensioni del touch target. Ad esempio, il touch target del pulsante si espanderà a una dimensione minima di 48 x 48 dp, anche se imposti le dimensioni del pulsante su un valore inferiore. In questo modo, Compose Material si allinea allo stesso comportamento dei componenti di Material Design e si ottiene un comportamento coerente se si combinano Visualizzazioni e Compose. Questa modifica garantisce inoltre che, quando crei la UI utilizzando i componenti Compose Material, vengano soddisfatti i requisiti minimi per l'accessibilità dei touch target.
- Supporto stabile per barra di navigazione
- Consente di passare alcune API precedentemente sperimentali allo stato stabile
- Supporto per versioni più recenti di Kotlin
Versione 1.1.0-rc03
26 gennaio 2022
Viene rilasciato androidx.compose.material:material-*:1.1.0-rc03
. La versione 1.1.0-rc03 contiene questi commit.
Variazioni del comportamento
Tieni presente che, rispetto a Compose 1.0, i componenti Material amplieranno lo spazio di layout per rispettare le dimensioni del touch target delle linee guida per l'accessibilità di Material. Ad esempio, il touch target del pulsante si espanderà a una dimensione minima di 48 x 48 dp, anche se imposti le dimensioni del pulsante su un valore inferiore. In questo modo, Compose Material si allinea allo stesso comportamento dei componenti di Material Design e si ottiene un comportamento coerente se si combinano Visualizzazioni e Compose. Questa modifica garantisce inoltre che, quando crei la UI utilizzando i componenti Compose Material, vengano soddisfatti i requisiti minimi per l'accessibilità dei touch target.
Correzioni di bug
- Sono state aggiunte informazioni di debug migliori per lo strumento di controllo del layout durante l'ispezione del numero minimo di modificatori dei touch target. (aosp/1955036)
Versione 1.1.0-rc01
15 dicembre 2021
Viene rilasciato androidx.compose.material:material-*:1.1.0-rc01
. La versione 1.1.0-rc01 contiene questi commit.
Correzioni di bug
- Correggi il raggio d'angolo applicato per
Checkbox
(I38b03, b/175198975, b/202309440)
Versione 1.1.0-beta04
1 dicembre 2021
Viene rilasciato androidx.compose.material:material-*:1.1.0-beta04
. La versione 1.1.0-beta04 contiene questi commit.
Nuove funzionalità
- Aggiornamento per essere compatibile con Kotlin
1.6.0
Versione 1.1.0-beta03
17 novembre 2021
Viene rilasciato androidx.compose.material:material-*:1.1.0-beta03
. La versione 1.1.0-beta03 contiene questi commit.
Versione 1.1.0-beta02
3 novembre 2021
Viene rilasciato androidx.compose.material:material-*:1.1.0-beta02
. La versione 1.1.0-beta02 contiene questi commit.
Correzioni di bug
- Eco e altre indicazioni ora saranno ritardate solo se si trovano all'interno di un container Modifier.scrollable(), invece di essere sempre ritardate per un evento down. (Ibefe0, b/203141462)
Versione 1.1.0-beta01
27 ottobre 2021
Viene rilasciato androidx.compose.material:material-*:1.1.0-beta01
. La versione 1.1.0-beta01 contiene questi commit.
Nuove funzionalità
- L'eco supporta ora gli stati al passaggio del mouse e allo stato attivo, quindi se passi il mouse sopra o imposti lo stato attivo su un componente come Pulsante ora verrà visualizzato l'overlay dello stato corretto.
Versione 1.1.0-alpha06
13 ottobre 2021
Viene rilasciato androidx.compose.material:material-*:1.1.0-alpha06
. La versione 1.1.0-alpha06 contiene questi commit.
Modifiche alle API
- È stato aggiunto un sovraccarico senza figlio per Layout, con una maggiore efficienza (Ib0d9a)
- Implementazione di
ExposedDropdownMenu
basata suExposedDropdownMenuBox
conTextField
eDropdownMenu
all'interno (If60b2) dismissOnOutsideClick
è stato aggiunto aPopupProperties
, sostituendodismissOnClickOutside
, che era deprecato. La nuova proprietà riceve la posizione del clic e i limiti di ancoraggio, in modo da avere un controllo più preciso sulla necessità di richiamare onIgnoraRequest o meno. Ad esempio, questo può essere utile per evitare che gli ancoraggi vengano chiusi con i tocchi.- L'elemento
updateAndroidWindowManagerFlags
è stato aggiunto aPopupProperties
, in modo da offrire un controllo di basso livello sui flag trasmessi dal popup ad Android WindowManager. Il parametro di lambda saranno i flag calcolati dai valori PopupProperties che generano i flag WindowManager: ad es. attivabile. Il risultato di lambda saranno i flag finali che verranno passati ad Android WindowManager. Per impostazione predefinita, updateAndroidWindowManagerFlags lascia invariati i flag calcolati dai parametri. Questa API deve essere utilizzata con cautela, solo nei casi in cui il popup abbia requisiti di comportamento molto specifici. (I6e9f9)
- L'elemento
Versione 1.1.0-alpha05
29 settembre 2021
Viene rilasciato androidx.compose.material:material-*:1.1.0-alpha05
. La versione 1.1.0-alpha05 contiene questi commit.
Modifiche alle API
- Aggiunge le dimensioni minime del touch target per i componenti Material che non hanno un touch target accessibile. L'aggiunta di spazio aggiuntivo tra i componenti per assicurarsi che abbiano un touch target sufficientemente grande potrebbe modificare le UI esistenti che presuppongono che le dimensioni di questi componenti siano quelle visive e non tengano conto di quelle del touch target. Puoi utilizzare la composizione sperimentale
LocalMinimumTouchTargetEnforcement
locale per disattivare questo comportamento in una gerarchia, ma è inteso solo come un'alternativa temporanea durante l'aggiornamento delle interfacce utente esistenti per tenere conto delle nuove dimensioni minime. (I9b966, b/149691127, b/171509422) - È stata aggiunta l'interfaccia sperimentale TextFieldColorsWithIcons, estendendo TextFieldColors per fornire InteractionSource a leaderColor e trailingColor. Ciò consente di modificare l'aspetto di TextField in base allo stato attivo. (I66923, b/198402662)
Versione 1.1.0-alpha04
15 settembre 2021
Viene rilasciato androidx.compose.material:material-*:1.1.0-alpha04
. La versione 1.1.0-alpha04 contiene questi commit.
Modifiche alle API
performGesture
eGestureScope
deprecati, che hanno è stato sostituito daperformTouchInput
eTouchInjectionScope
. (Ia5f3f, b/190493367)- Elemento
touchBoundsInRoot
aggiunto alla raccoltaSemanticsNode
che include le dimensioni minime del touch target affinché gli sviluppatori possono garantire che i touch target soddisfino i requisiti minimi di accessibilità. (I2e14b, b/197751214)
Correzioni di bug
- Consenti al clip di estendere i limiti del touch target oltre la regione del clip per scopi minimi del touch target. (I43e10, b/171509422)
- Elemento componibile
Divider
aggiornato in rispettaDp.Hairline
per il parametro spessore per supportare il disegno di separatori a pixel singoli a prescindere dalla compattezza. (I16ffb, b/196840810)
Versione 1.1.0-alpha03
1° settembre 2021
Viene rilasciato androidx.compose.material:material-*:1.1.0-alpha03
. La versione 1.1.0-alpha03 contiene questi commit.
Nuove funzionalità
- Compose
1.1.0-alpha03
è stata aggiornata per dipendere da Kotlin1.5.30
. (I74545)
Modifiche alle API
- Aggiunto un metodo di test per ottenere i limiti troncati. (I6b28e)
- Sono state aggiunte le dimensioni minime del touch target a ViewConfiguration per l'utilizzo nella semantica e nell'input del puntatore per garantire l'accessibilità. (Ie861c).
Versione 1.1.0-alpha02
18 agosto 2021
Viene rilasciato androidx.compose.material:material-*:1.1.0-alpha02
. La versione 1.1.0-alpha02 contiene questi commit.
Contributo esterno
- Correggi il comportamento di SwipeableState nel caso in cui l'offset dello scorrimento si trovi all'interno di un errore di arrotondamento di un ancoraggio. (I03d39, b/191993377)
Versione 1.1.0-alpha01
4 agosto 2021
Viene rilasciato androidx.compose.material:material-*:1.1.0-alpha01
. La versione 1.1.0-alpha01 contiene questi commit.
Modifiche alle API
- Metodo
DrawScope#drawImage
aggiornato che utilizza i rect di origine e di destinazione per utilizzare un valore di FiltraQualità facoltativo . Ciò è utile per Pixel che deve essere pixelata quando viene ridimensionato per la grafica basata su pixel. BitmapPainter + Immagine componibile aggiornati per utilizzare anche un'istanza di filtro facoltativa parametro (Ie4fb0, b/180311607) - BadgeBox è stato rinominato BadgedBox e sono stati modificati i parametri per accettare il badge componibile. È stato aggiunto il componente Badge, che rappresenta i contenuti tipici del badge per un BadgedBox. (I639c6)
- È stato aggiunto il componente NavigationRail; consulta la documentazione e gli esempi per informazioni sull'utilizzo (I8de77)
Correzioni di bug
- Sono stati aggiunti un esempio di NavigationRail con allineamento in basso e un'app Catalog demo. (I3cffc)
- Le finestre di dialogo ora seguono il comportamento di dimensionamento della piattaforma. Imposta usePlatformDefaultwidth su false per ignorare questo comportamento. (Iffaed, b/192682388)
- È stata aggiunta una demo del sistema di navigazione satellitare all'app catalogo. (I04960)
- È stata aggiunta la demo del badge all'app del catalogo. (If285d).
Versione 1.0
Versione 1.0.5
3 novembre 2021
Viene rilasciato androidx.compose.material:material-*:1.0.5
. La versione 1.0.5 contiene questi commit.
Correzioni di bug
- È stato corretto un arresto anomalo del monitoraggio delle istanze derivateStateOf. (aosp/1792247)
Versione 1.0.4
13 ottobre 2021
Viene rilasciato androidx.compose.material:material-*:1.0.4
. La versione 1.0.4 contiene questi commit.
Aggiornamenti delle dipendenze
- Aggiornamento in base a Kotlin
1.5.31
eseguito
Versione 1.0.3
29 settembre 2021
Viene rilasciato androidx.compose.material:material-*:1.0.3
. La versione 1.0.3 contiene questi commit.
Aggiornamenti delle dipendenze
- Aggiornamento in base a Kotlin
1.5.30
eseguito
Versione 1.0.2
1° settembre 2021
Viene rilasciato androidx.compose.material:material-*:1.0.2
. La versione 1.0.2 contiene questi commit.
Aggiornamento eseguito per supportare la release Compose 1.0.2
. Compose 1.0.2
è ancora compatibile con Kotlin 1.5.21
.
Versione 1.0.1
4 agosto 2021
Viene rilasciato androidx.compose.material:material-*:1.0.1
. La versione 1.0.1 contiene questi commit.
Aggiornamenti delle dipendenze
- Aggiornamento eseguito in modo da dipendere da Kotlin
1.5.21
.
Versione 1.0.0
28 luglio 2021
Viene rilasciato androidx.compose.material:material-*:1.0.0
. La versione 1.0.0 contiene questi commit.
Funzionalità principali di 1.0.0
Questa è la prima release stabile di Compose. Per ulteriori dettagli, consulta il blog ufficiale di Compose Release.
Problemi noti
Se utilizzi Android Studio Bumblebee Canary 4 o AGP
7.1.0-alpha04
/7.1.0-alpha05
, potresti riscontrare il seguente arresto anomalo:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
Per risolvere il problema, aumenta temporaneamente il valore minSdkVersion nel file
build.gradle
, impostandolo su 24 o più. Questo problema verrà risolto nella prossima versione di Android Studio Bumblebee e AGP7.1
. (b/194289155)
Versione 1.0.0-rc02
14 luglio 2021
Viene rilasciato androidx.compose.material:material-*:1.0.0-rc02
. La versione 1.0.0-rc02 contiene questi commit.
Correzioni di bug
- Le finestre di dialogo ora seguono il comportamento di dimensionamento della piattaforma. Imposta
usePlatformDefaultWidth
su false per ignorare questo comportamento. (Iffaed, b/192682388)
Versione 1.0.0-rc01
1 luglio 2021
Viene rilasciato androidx.compose.material:material-*:1.0.0-rc01
. La versione 1.0.0-rc01 contiene questi commit.
Modifiche alle API
- È stato aggiunto il componente
BadgeBox
. Consulta la documentazione e gli esempi per informazioni sull'utilizzo (I5e284) useDefaultMaxWidth
inPopupProperties
è stato rinominatousePlatformDefaultWidth
. (I05710)- Ora le finestre di dialogo possono utilizzare l'intera larghezza dello schermo. (I83929, b/190810877)
- Aggiunta dell'implementazione del cursore dell'intervallo sperimentale (I2f4b3)
Correzioni di bug
- Per allinearsi alle specifiche di Material Design OutliningTextField con un input non valido ha smesso di utilizzare il colore di errore per l'etichetta quando l'etichetta viene usata come segnaposto. Il secondo si verifica quando il campo di testo non contiene testo di input e quest'ultimo non è attivo. Di conseguenza, è cambiato anche il significato del parametro
error:Boolean
nella funzioneTextFieldColors.labelColor()
: ora restituiràfalse
anche se l'input non è valido se l'etichetta viene utilizzata come segnaposto. (I45f78)
Versione 1.0.0-beta09
16 giugno 2021
Viene rilasciato androidx.compose.material:material-*:1.0.0-beta09
. La versione 1.0.0-beta09 contiene questi commit.
Modifiche alle API
- È stato aggiunto il parametro Forma a OutliningTextField per poter personalizzare la forma del bordo (I8f39e, b/181322957)
- TextOverflow è cambiato in una classe in linea. (I433af)
Correzioni di bug
- Scrim nel cassetto inferiore, BackdropScaffold e ModalBottomSheetLayout scompaiono e viene passato il colore non specificato (I2d899, b/182063309).
Regole del profilo aggiunte
In questa release vengono aggiunte regole di profilo ai seguenti moduli di scrittura (I14ed6):
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.layout-base
- androidx.compose.material
- androidx.compose.materiale-eco
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- testo androidx.compose.ui.
- testo androidx.compose.ui.
- androidx.compose.ui.unit
- androidx.compose.ui.util,
Che cosa sono le regole del profilo?
Le regole del profilo per una libreria vengono specificate in un file di testo
baseline-prof.txt
situato insrc/main
o nella directory equivalente. Il file specifica una regola per riga, dove una regola in questo caso è un pattern per la corrispondenza con metodi o classi nella libreria. La sintassi per queste regole è un soprainsieme del formato del profilo ART leggibile che viene utilizzato quando si utilizzaadb shell profman --dump-classes-and-methods ...
. Queste regole possono avere come target metodi o classi.Una regola del metodo avrà il seguente pattern:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Una regola della classe avrà il seguente pattern:
<CLASS_DESCRIPTOR>
Qui
<FLAGS>
rappresenta uno o più caratteriH
,S
eP
per indicare se questo metodo deve essere contrassegnato o meno come "A caldo", "Avvio" o "Post avvio".<CLASS_DESCRIPTOR>
è il descrittore della classe a cui appartiene il metodo scelto come target. Ad esempio, la classeandroidx.compose.runtime.SlotTable
avrà un descrittoreLandroidx/compose/runtime/SlotTable;
.<METHOD_SIGNATURE>
è la firma del metodo e include il nome, i tipi di parametri e i tipi restituiti del metodo. Ad esempio, il metodofun isPlaced(): Boolean
suLayoutNode
ha la firmaisPlaced()Z
.Questi pattern possono avere caratteri jolly (
**
,*
e?
) in modo da avere una singola regola che comprende più metodi o classi.
A cosa servono le regole?
Un metodo con il flag
H
indica che si tratta di un metodo "hot" e devono essere compilati in anticipo.Un metodo con il flag
S
indica che si tratta di un metodo chiamato all'avvio e che deve essere compilato in anticipo per evitare i costi della compilazione e dell'interpretazione del metodo al momento dell'avvio.Un metodo con il flag
P
indica che si tratta di un metodo che viene richiamato dopo l'avvio.Una classe presente in questo file indica che viene utilizzata durante l'avvio e deve essere preallocata nell'heap per evitare il costo del caricamento della classe.
Come funziona?
- Le librerie possono definire queste regole che verranno pacchettizzate in artefatti AAR. Quando viene creato un APK che include questi artefatti, queste regole vengono unite e le regole unite vengono utilizzate per creare un profilo ART binario compatto specifico per l'APK. ART può quindi sfruttare questo profilo quando l'APK viene installato sui dispositivi per compilare in anticipo un sottoinsieme specifico dell'applicazione al fine di migliorare le prestazioni dell'applicazione, in particolare la prima esecuzione. Tieni presente che ciò non avrà alcun effetto sulle applicazioni di cui è possibile eseguire il debug.
Versione 1.0.0-beta08
2 giugno 2021
Viene rilasciato androidx.compose.material:material-*:1.0.0-beta08
. La versione 1.0.0-beta08 contiene questi commit.
Nuove funzionalità
Modifica dell'API Behavior Breaking
- INTERRUZIONE DEL COMPORTAMENTO: ora la carta consuma clic, di conseguenza vengono aggiunti tramite
Card(Modifier.clickable)
i clic non operativi. Usa un nuovo sovraccarico sperimentale di una scheda che accetta sandbox. (Ia8744, b/183775620)- È stato aggiunto un nuovo sovraccarico di schede che gestisce i clic e altre funzionalità cliccabili: indicazione, interazioneSource, attivata/disattivata. Non è stato possibile utilizzare una normale scheda non cliccabile con
Modifier.clickable
perché la scheda non taglia l'indicazione dell'eco in questi casi.
- È stato aggiunto un nuovo sovraccarico di schede che gestisce i clic e altre funzionalità cliccabili: indicazione, interazioneSource, attivata/disattivata. Non è stato possibile utilizzare una normale scheda non cliccabile con
- INTERRUZIONE DEL COMPORTAMENTO: ora Surface consuma clic, di conseguenza i clic vengono aggiunti tramite
Surface(Modifier.clickable)
per essere totalmente indipendenti. Utilizza un nuovo sovraccarico sperimentale di Surface che accetta velocità di base. (I73e6c, b/183775620)- È stato aggiunto un nuovo sovraccarico di Surface che gestisce i clic e altre funzionalità cliccabili: indicazione, interazioneSource, attivato/disattivato. Non è stato possibile utilizzare una superficie normale non cliccabile con
Modifier.clickable
perché in questi casi l'indicazione dell'eco non verrà tagliata.
- È stato aggiunto un nuovo sovraccarico di Surface che gestisce i clic e altre funzionalità cliccabili: indicazione, interazioneSource, attivato/disattivato. Non è stato possibile utilizzare una superficie normale non cliccabile con
Modifiche alle API
FabPosition
è stato convertito in classe in linea da enum per supportare una potenziale espansione in futuro (I030fb)- Utilizzo di enum sottoposto a refactoring in classi in linea per evitare esaustivi quando affermazioni vengono aggiunti nuovi valori enum. (I2b5eb)
- Aggiunge un timeout del tocco all'elemento cliccabile/attivabile per evitare la visualizzazione di un'eco durante lo scorrimento o il trascinamento (Ia2704, b/168524931)
- ContentDescription e le proprietà semantiche del testo non sono più valori singoli ma elenchi. In questo modo è possibile unirli così come sono di concatenazioni. Abbiamo anche fornito API di test migliori per utilizzare questi modifiche (Ica6bf, b/184825850)
Modifier.focusModifier()
è deprecato e sostituito daModifier.focusTarget()
(I6c860)- Enum
FocusState
sostituita con un'interfacciaFocusState
(ICC1a, b/187055290) - È stato rimosso
LocalRippleNativeRendering
ora che l'implementazione dell'ondulazione supportata da View è stabile (I7fab3, b/188569367)
Correzioni di bug
Modifier.onGloballyPositioned()
è stato modificato per indicare le coordinate di questo modificatore nella catena di modificatori, non le coordinate del layout dopo l'applicazione di tutti i modificatori. Ciò significa che ora l'ordine dei modificatori influisce sulle coordinate indicate. (Ieb67d, b/177926591)- È stato aggiunto un file README per il catalogo Compose Material esistente. (If9191)
Versione 1.0.0-beta07
18 maggio 2021
Viene rilasciato androidx.compose.material:material-*:1.0.0-beta07
. La versione 1.0.0-beta07 contiene questi commit.
Modifiche alle API
- Non è più necessario utilizzare metodi di estensione per il supporto del routing in Navigation Compose. (I22beb, b/172823546)
Versione 1.0.0-beta06
5 maggio 2021
Viene rilasciato androidx.compose.material:material-*:1.0.0-beta06
. La versione 1.0.0-beta06 contiene questi commit.
Modifiche alle API
- È stata eseguita la migrazione di Ripple per l'utilizzo interno di
RippleDrawable
sui dispositivi Android. Ciò significa che le animazioni a onde si verificheranno in RenderThread, quindi saranno fluide anche quando il thread dell'interfaccia utente è sotto carico, ad esempio durante la navigazione tra le schermate. Ciò non modifica la superficie dell'eco dell'API, ma potrebbero essere apportate modifiche al comportamento in seguito a questa modifica. Per facilitare la migrazione, è stato aggiuntoLocalRippleNativeRendering
. Fornisci un valore difalse
a questo ComposeLocal per recuperare l'implementazione dell'eco precedente all'interno di ComposeLocalProvider. Questa API è temporanea e verrà rimossa in futuro, pertanto se riscontri problemi che ti portano a utilizzare questa API, segnala un bug. (I902f8, b/168777351, b/183019123) - Sono state aggiunte le API di accessibilità CollectionInfo e CollectionItemInfo che consentono di contrassegnare la raccolta e i relativi elementi per i servizi di accessibilità (Id54ef, b/180479017)
- È stata aggiunta l'API Accessibility
error
che consente di contrassegnare un nodo contenente input non valido (I12997, b/180584804, b/182142737)
Correzioni di bug
- Il catalogo Compose Material aggiornato include l'implementazione da: https://github.com/google/accompanist/pull/365. (I25dc3)
- Riga & Le colonne secondarie con peso(fill = false) non consentono più all'elemento principale di riempire l'intero spazio disponibile dell'asse principale. (Ied94d, b/186012444, b/184355105)
Versione 1.0.0-beta05
21 aprile 2021
Viene rilasciato androidx.compose.material:material-*:1.0.0-beta05
. La versione 1.0.0-beta05 contiene questi commit.
Correzioni di bug
- Sono state aggiunte immagini dei riquadri dei componenti, selettore di temi e URL di menu più specifici al catalogo di Compose Material esistente. (I9b58e)
Versione 1.0.0-beta04
7 aprile 2021
Viene rilasciato androidx.compose.material:material-*:1.0.0-beta04
. La versione 1.0.0-beta04 contiene questi commit.
Modifiche alle API
- MODIFICA DELL'API: lo stato
DrawerState
non è più esteso all'esperimento swipeableState.- MODIFICA DELL'API:
BottomDrawerState
è ora contrassegnato come sperimentale, in modo che corrisponda già al componente sperimentale BottomDrawer (I81114, b/181656094)
- MODIFICA DELL'API:
- Rinomina
hideSoftwareKeyboard
eshowSoftwareKeyboard
suSoftwareKeyboardController
rispettivamente ahide()
eshow()
.- Offrire l'interfaccia completa di ComposeLocal per LocalSoftwareKeyboardController, che consente di impostarlo (in particolare utile nei test) (I579a6)
- È stata aggiunta l'API LiveRegion Accessibility. Se il nodo è contrassegnato come regione attiva, i servizi di accessibilità invia automaticamente una notifica all'utente riguardo alle modifiche (Idcf6f, b/172590946)
Correzioni di bug
- È stata aggiunta l'implementazione del catalogo Compose Material al modulo esistente. Attualmente mancanti: immagini dei riquadri dei componenti, selettore di temi (da aggiungere nelle modifiche di follow-up). (Ie7a94).
Versione 1.0.0-beta03
24 marzo 2021
Viene rilasciato androidx.compose.material:material-*:1.0.0-beta03
. La versione 1.0.0-beta03 contiene questi commit.
Modifiche alle API
- L'API
DefaultMonotonicFrameClock
è deprecata. Chiamata in corsowithFrameNanos
oRecomposer.runRecomposeAndApplyChanges
senzaMonotonicFrameClock
ora genereràIllegalStateException
. (I4eb0d) - È stata aggiunta una nuova API
LeadingIconTab
per supportare la visualizzazione di un'icona e testo in linea in una scheda. (I23267)
Contributo esterno
- [di Jossi Wolf]
BottomDrawer
ora aggrega i contenuti dell'alloggiamento del riquadro a scomparsa.BottomDrawer
non genera unIllegalStateException
se l'altezza principale è infinita. Il riquadro a scomparsa in basso ora si aprirà in uno stato espanso se è inferiore al 50% di quello principale. I documenti relativi aBottomDrawerState
eModalBottomSheetLayoutState
sono stati aggiornati.BottomDrawerState#isOpen
ora restituisce true se è in stato aperto o espanso. (I87241)
Versione 1.0.0-beta02
10 marzo 2021
Viene rilasciato androidx.compose.material:material-*:1.0.0-beta02
. La versione 1.0.0-beta02 contiene questi commit.
Modifiche alle API
- È stata aggiunta una nuova composizione locale in
LocalSoftwareKeyboardController
API per sostituire l'interfacciaSoftwareKeyboardController
precedente su Campo di testo. (I5951e, b/168778053)
Correzioni di bug
- Applicare restrizioni sull'uso pubblico delle API sperimentali (I6aa29, b/174531520)
- Modificato l'allineamento orizzontale predefinito per TopAppBar e BottomAppBar in Start, coerente con Row (Ib2dc7)
- Sono stati aggiunti un nuovo modulo e un'interfaccia utente segnaposto per un catalogo Compose Material, attualmente nidificato nelle demo sui test di integrazione esistenti. (Idfcb3)
androidx.compose.ui:ui
non dipende più da AppCompat o Fragment. Se usi ComposeView nella tua applicazione e utilizzi Fragment e/o AppCompat, assicurati di usare AppCompat 1.3+ / Fragment 1.3+: queste versioni sono necessarie per impostare correttamente i proprietari del ciclo di vita e dello stato salvato richiesti per ComposeView. (I1d6fa, b/161814404)
Versione 1.0.0-beta01
24 febbraio 2021
Viene rilasciato androidx.compose.material:material-*:1.0.0-beta01
. La versione 1.0.0-beta01 contiene questi commit.
Questa è la prima versione di Compose 1.0.0 Beta.
Modifiche alle API
- I modificatori di dimensione sono stati rinominati. Modifier.width/height/size è stato rinominato in requiredwidth/requiredHeight/requiredSize. Modifier.preferredwidth/preferredHeight/preferredSize è stata rinominata in larghezza/altezza/dimensione. (I5b414).
- imageResource e vectorResource sono ora funzioni di estensione rispettivamente sulle companion ImageBitmap e ImageVector. load{Image,Vector,Font}Le funzioni risorsa sono state eliminate. (I89130)
- I modificatori per la taglia intrinseca non sono più sperimentali. (I15744)
- Asserzioni Dp rimosse (I798d2)
- Rimossa il callback SoftwareKeyboardController da tutto il testo da sostituire a breve con una nuova API. (Iae869, b/168778053)
- Le lambda di azione Switch, Casella di controllo e RadioButton sono ora null. Esempi di righe di casella di controllo cliccabili aggiornati per utilizzare questo funzionalità. (If601b, b/171819073)
InteractionState
è stato sostituito con[Mutable]InteractionSource
- .
- Le interfacce sono responsabili dell'emissione / raccolta degli eventi di interazione.
- Anziché trasmettere
interactionState = remember { InteractionState() }
a componenti comeButton
eModifier.clickable()
, utilizzainteractionSource = remember { MutableInteractionSource() }
. - Invece di:
Interaction.Pressed in interactionState
, devi utilizzare le funzioni di estensione su InteractionSource, ad esempio InteractionSource.collectIsPressedAsState(). - Per casi d'uso complessi, puoi utilizzare InteractionSource.interactions per osservare il flusso di interazioni. Per ulteriori informazioni, consulta la documentazione e gli esempi di InteractionSource.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- Aggiungi l'interfaccia AccessibilityMananger LocalAccessibilityMananger in ComposeLocals (I53520)
- Rimossi i metodi LayoutCoordinates deprecati. Usa la funzione anziché la proprietà per positionInParent e boundsInParent (I580ed, b/169874631, b/175142755)
- Il cursore ora supporta lo stato attivato/disattivato (I6d56b, b/179793072)
- È stata creata una nuova sessione TextInputSession per le sessioni di input da componenti di testo di basso livello come CoreTextField. (I8817f, b/177662148)
- AnimationEndReason.Interrupted è stato rimosso. Se l'animazione viene interrotta, viene inviata un'eccezione AnnullationException. (I2cbbc, b/179695417)
- È stato rimosso
@ExperimentalRippleApi
eRippleAlpha
è stato modificato in una classe con proprietà anziché un'interfaccia. (I6df7c). - È stata aggiunta l'interfaccia TextFieldColors per rappresentare i diversi colori utilizzati in TextField e OutliningTextField in stati differenti. Per l'implementazione predefinita, vedi TextFieldDefaults.textFieldColors e TextFieldDefaults.outlinedTextFieldColors.
- Parametro isErrorValue rinominato all'interno di TextField e OutliningTextField in isError. (I831f9, b/171305338, b/168004067)
- Aggiungi il modificatore selectGroup che consente di contrassegnare la raccolta di schede o pulsanti di opzione ai fini dell'accessibilità (Ie5c29)
Aggiungi LazyListState.animatescrollToItem
Questo metodo consente di scorrere senza problemi fino a un elemento specifico dell'elenco. (I4bfd7)
ScrollableState.smoothScrollBy()
è stato rinominato inanimateScrollBy()
LazyListState.snapToItemIndex()
è stato rinominato inscrollToItem()
ScrollState.smoothScrollTo()
è stato rinominato inanimateScrollTo()
(I35ded)Tutti gli elementi componibili contrassegnati con
@ReadOnlyComposable
vengono ora convalidati in fase di compilazione per garantire che effettuino chiamate solo ad altri@ReadOnlyComposables
(I58961)L'API TargetAnimation è stata rimossa. (If47d1, b/177457083)
La posizione di scorrimento in Modifier.verticalscroll()/Horizontalscroll() è rappresentata ora con Ints (I81298)
" smoothscrollBy" e "scrollBy" pacchetti cambiati in
androidx.compose.foundation.gestures.*
(I3f7c1, b/175294473)FlingConfig è stato rinominato in FlingBehavior e ora consente la personalizzazione dell'animazione di sospensione anziché dei Decadimenti predefiniti. (I02b86, b/175294473)
I modificatori di dimensione sono stati rinominati. Modifier.width/height/size è stato rinominato in requiredwidth/requiredHeight/requiredSize. Modifier.preferredwidth/preferredHeight/preferredSize è stata rinominata in larghezza/altezza/dimensione. (I5b414).
defaultMinSizeConstraints è stato rinominato in defaultMinSize. (I4eaae).
L'orientamento è stato spostato nel pacchetto di base. VelocirtTracker è passato da ui.gesture a ui.input.pointer. (Iff4a8, b/175294473)
È ora disponibile una modalità di sospensione delle funzioni, Usa passwordsCoroutineScope() per ottenere l'ambito della composizione per chiamarli (I16f60, b/175294473)
I provider sono stati rinominati in ComposizioneLocalProvider
- Il costruttore della composizione non accetta più un parametro chiave ed è stato ritirato.
- CurrentCompositeKeyHash è stato trasformato in una proprietà componibile di primo livello anziché in una funzione componibile di primo livello.
- ComposizioneData e ComposizioneGroup sono stati spostati nello spazio dei nomi androidx.compose.runtime.tooling
- ComposableLambda è stata creata come un'interfaccia invece di una classe concreta e non ha più parametri di tipo.
- ComposableLambdaN è stata creata come un'interfaccia invece di una classe concreta e non ha più parametri di tipo.
- La funzione snapshotFlow è stata spostata nello spazio dei nomi androidx.compose.runtime
- il metodo di unione di SnapshotMutationPolicy non è più sperimentale
- La funzione clearRoots di primo livello
@TestOnly
è stata rimossa. Non è più necessario. - Le funzioni keySourceInfoOf e resetSourceInfo sono state rimosse. Non sono più necessari.
- Composer.collectKeySourceInformation è stato rimosso. Non è più necessario.
- I metodi isJoinedKey, joinKeyLeft e joinKeyRight sono stati rimossi. Non sono più necessari.
- Varie API di primo livello sono state spostate e riorganizzate in file diversi. A causa della semantica delle classi di file Kotlin, ciò comprometterà la compatibilità binaria, ma non la compatibilità del codice sorgente, quindi non dovrebbe rappresentare un problema per la maggior parte degli utenti.
- (I99b7d, b/177245490)
Modifier.scrollable è stato rielaborato. Ora utilizza l'interfaccia Scorribile anziché la classe Scorribile (I4f5a5, b/174485541, b/175294473).
Modifier.draggable ora accetta DraggableState anziché un semplice lambda. puoi creare lo stato tramite
rememberDraggableState { delta -> }
per ottenere lo stesso comportamento di prima (Ica70f, b/175294473)ZoomableController.smoothScaleBy e ZoomableController.stopAnimation sono ora funzioni di sospensione. (I7f970, b/177457083)
Sono state eliminate alcune API deprecate in precedenza (Ice5da, b/178633932)
Sono state apportate le seguenti modifiche all'API Material:
- È stato aggiunto il parametro contentPadding a Top/BottomAppBar per consentire la personalizzazione della spaziatura interna predefinita.
- I parametri sono stati riordinati in BackdropScaffold in modo da rispettare le linee guida dell'API perché i parametri obbligatori sono prima di quelli facoltativi.
- Parametro
icon
spostato in BottomNavigatorItem posizionato doposelected
eonClick
. - Parametro
alwaysShowLabels
rinominato in BottomTrafficItem inalwaysShowLabel
. - I parametri
bodyContent
in alcuni componenti sono stati rinominati solocontent
. - Parametri riordinati in
ButtonDefaults.buttonColors()
. Tieni presente che, poiché il tipo di parametri non è cambiato, ciò non causerà un errore nel tuo codice. Assicurati di utilizzare parametri denominati o di aggiornare l'ordine manualmente, altrimenti il tuo codice non funzionerà come in precedenza. - Parametro
secondaryVariant
aggiunto adarkColors()
. Questo colore è in genere uguale asecondary
nel tema scuro, ma aggiunge coerenza e ulteriore personalizzazione. - Sono stati rimossi ElevationDefaults e animaElevation() dalla piattaforma API pubblica perché non erano comunemente utilizzati / utili.
onValueChangeEnd
inSlider
è stato rinominato inonValueChangeFinished
e lo è stato reso null.- Parametro
text
rinominato inSnackbar
incontent
per coerenza. - È stato aggiunto il parametro
contentPadding
aDropdownMenuItem
per consentire la personalizzazione della spaziatura interna predefinita e ha resocontent
un'estensione suRowScope
. ModalDrawerLayout
rinominato inModalDrawer
.BottomDrawerLayout
rinominato inBottomDrawer
.- (I1cc66)
BasicTextField ora accetta Pennello anziché Colore per una migliore personalizzazione (I83a36)
imageResource e vectorResource sono ora funzioni di estensione rispettivamente sulle companion ImageBitmap e ImageVector. load{Image,Vector,Font}Le funzioni risorsa sono state eliminate. (I89130)
Cambiato Indication#createIndication() in Indication#rememberUpdatedIndication(InteractionState) e rimuove il parametro InteractionState da IndicationInstance#drawIndication(). IndicationInstance deve essere responsabile solo del disegno di effetti visivi e non dell'avvio di animazioni o della scrittura dello stato in risposta alle modifiche di InteractionState. Queste animazioni e scritture degli stati devono invece avvenire all'interno di
rememberUpdatedIndication()
. Anche il parametroindication
inModifier.indication
è stato modificato in modo che sia obbligatorio. (Ic1764, b/152525426)
Correzioni di bug
- È stata aggiunta una nuova composizione LocalSoftwareKeyboardController locale API per sostituire la precedente interfaccia SoftwareKeyboardController su Campo di testo. (I658b6, b/168778053)
Versione 1.0.0-alpha12
10 febbraio 2021
Viene rilasciato androidx.compose.material:material-*:1.0.0-alpha12
. La versione 1.0.0-alpha12 contiene questi commit.
Modifiche alle API
- Modifier.pointerInput ora richiede tasti di memorizzazione per indicare quando la coroutine di rilevamento dell'input del puntatore deve riavviarsi per nuovi delle dipendenze. (I849cd)
- BottomDrawerLayout e ListItem sono stati contrassegnati come @ExperimentalMaterialApi (Id766e)
- PaddingValues.Absolute è stato aggiunto e può essere utilizzato nelle API che accettano PaddingValues. (Ia5f30)
- Il metodo onImeActionPerformed è deprecato. utilizza invece Keyboard Actions (If0bbd, b/179071523)
- Per abbinare meglio la denominazione tradizionali con ImageBitmap e ImageVector, ImagePainter è stato rinominato BitmapPainter e VectorPainter in parallelo. (Iba381, b/174565889)
- Animatable.snapTo e Animatable.stop sono ora funzioni di sospensione (If4288)
- Il valore ComponentActivity.setContent è stato spostato in androidx.activity.compose.setContent nel modulo androidx.activity:activity-compose. (Icf416)
- I metodi Destructuring e copy() sono stati rimossi da diverse classi in cui venivano usati raramente. (I26702, b/178659281)
- Imposta HalEspandi() ed espandibili() in ModalBottomSheetState come interni (Ic914e)
- È stato modificato Indication#createInstance in @Composable e LocalIndication è stata modificata in modo da contenere un'indicazione, non () -> Indicazione. (I5eeea, b/157150564)
- Finestra di dialogo e menu a discesa spostati in modo che siano solo Android per il momento. È stato aggiunto il parametro PopupProperties a DropdownMenu per un'ulteriore configurazione del popup sottostante. (I9c443)
- Il metodo loadFontResource è deprecato. Usa fontResource. imageResource, loadImageResource, vectorResource e loadVectorResource sono deprecate. Usa invece pitterResource. (I6b809)
- I parametri
toggle
etoggleModifier
sono stati rimossi dal menu a discesa e sono stati rinominatidropdownModifier
,dropdownOffset
edropdownContent
rispettivamente inmodifier
,offset
econtent
. Il menu a discesa ora si comporta in modo coerente conPopup
, dove viene utilizzato il layout principale per la posizione del menu. Nella maggior parte dei casi puoi spostaretoggle
come gemello diDropdownMenu
e aggregare entrambi in unBox
. Consulta l'esempio aggiornato nella documentazione per ulteriori informazioni sull'utilizzo di questa API. (I884fb) - toIntPx() è stato rinominato roundToPx(). (I9b7e4, b/173502290)
- IntBounds è stato rinominato IntRect e l'API è stata migliorata. (I1f6ff)
- Sono state aggiunte azioni di espansione e compressione della semantica. Aggiunta espandi e dimezza Espandi in ModalBottomSheetState (Ib5064)
- Modifier.dragGeFilter è stato ritirato. Usa invece il criterio
Modifier.pointerInput { detectDragGestures (...)}
. In alternativa, utilizza Modifier.draggable per il trascinamento su un asse (I0ba93, b/175294473) - Ambienti rinominati per corrispondere alla versione Ambient -> Rinominazione di ComposeLocal. Un tempo gli ambienti Ambient si chiamavano AmbientFoo, ora i ComposeLocals si chiamano LocalFoo. (I2d55d).
- La selezione è stata spostata nelle basi. (I7892b)
- Analogamente a come abbiamo rimosso il componibile
state { 0 }
e ora ne promuoviamo l'utilizzo comeremember { mutableStateOf(0) }
, rimuoveremo il componibilesavedInstanceState { 0 }
. Dovresti usarerememberSaveable { mutableStateOf(0) }
, che verrà salvato e ripristinato automaticamente se il tipo utilizzato all'interno del MutableState può essere archiviato nel bundle. Se in precedenza passavi un oggetto salvaschermo personalizzato, ora devi utilizzare un nuovo sovraccarico di memorizzareSaveable con il parametrostateSaver
. L'utilizzo sarà simile a questo:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004) - È stato aggiunto ProgressBarRangeInfo.Indeterminate per contrassegnare le barre di avanzamento indeterminate per l'accessibilità (I6fe05)
@ComposableContract è stato ritirato e sostituito con tre annotazioni più specifiche.
@ComposableContract(restartable = false)
è diventato@NonRestartableComposable
@ComposableContract(readonly = true)
è diventato@ReadOnlyComposable
@ComposableContract(preventCapture = true)
è diventato@DisallowComposableCalls
- L'utente
@ComposableContract(tracked = true)
è stato rimosso. - (I60a9d)
Le utilità
emptyContent()
e(@Composable () -> Unit).orEmpty()
sono state ritirate in quanto non hanno più alcun impatto positivo sulle prestazioni o valore (I0484d)SavedInstanceState() è stato rinominato in saveSaveable() e spostato nel pacchetto androidx.compose.runtime.saveable. (I1366e, b/177338004)
Saver, listSaver(), mapSaver(), autoSaver è stato spostato da androidx.compose.runtime.savedinstancestate ad androidx.compose.runtime.saveable (I77fe6)
I parametri di RounderCornerShape, CutCornerShape e CornerBasedShape sono stati rinominati da sinistra/destra all'inizio e alla fine per supportare il mirroring automatico della forma nella direzione RTL. I metodi AbsoluteRounderCornerShape e AbsoluteCutCornerShape sono stati introdotti nei casi in cui non si desidera eseguire il mirroring automatico. (I61040, b/152756983)
I parametri
text
eicon
di Tab e il parametrolabel
di Bottom BrowsingItem sono stati modificati in modo da essere null, al fine di comunicare meglio il comportamento del componente quando questi parametri sono o non sono forniti, dal momento che influisce sulle dimensioni e sul layout del componente. Se attualmente passiemptyContent()
per rappresentare nessun testo, un'icona o un'etichetta, devi usarenull
. (I57ed4)Il parametro contentColorFor color è stato rinominato in backgroundColor (I5bb67)
Ha ritirato TabDefaults e lo ha sostituito con TabRowDefaults. (I0f189)
Introduzione dell'API ColorMatrix utilizzata per modificare i valori RGB dei contenuti di origine Refactoring dell'API ColorFilter a riga di comando e corrispondere all'implementazione di PathEffect. (Ica1e8)
L'elemento AnimatedValue/Float è ora deprecato. Utilizza Animabili. (I71345, b/177457083)
Aggiungi l'API SemanticsProperties.PaneTitle. (I20d5a)
Sono stati aggiunti parametri attivati a Tab e BottomNavigatorItem per impedire che sia possibile fare clic. È stato modificato BottomNavigatorItem in RowScope.Bottom BrowsingItem per esprimere meglio i requisiti di layout nella sua API. (ID683d)
Le opzioni tapGeFilter, doubleTapGeFilter, longPress descrittiFilter e pressIndicaitonGeFilter sono state ritirate. Usa invece Modifier.clickable o Modifier.pointerInput con la funzione detectTapGestis. (I6baf9, b/175294473)
Aggiungi il parametro layoutDirection al parametro createOutline della forma. In questo modo è possibile creare forme sensibili alla direzione del layout. (I57c20, b/152756983)
Recomposer.current()
rimosso. [Abstract]ComposeView ora per impostazione predefinita vengono utilizzati ricompositori con ambito a livello di finestra e creati in modo lento e gestiti dal ViewTreeLifecycleOwner per la finestra. Ricomposizione e I segni di graduazione con animazione basata su FrameNanos vengono messi in pausa mentre il ciclo di vita dell'host viene interrotto. (I38e11)
Correzioni di bug
- L'icona verrà ora ridimensionata per adattarsi alle dimensioni, rispettando i modificatori di dimensione applicati. Ad esempio,
Icon(.., modifier = Modifier.size(50.dp)
ora disegna in uno spazio di 50 x 50 dp. (Ib2ba9, b/178796190)
Versione 1.0.0-alpha11
28 gennaio 2021
Viene rilasciato androidx.compose.material:material-*:1.0.0-alpha11
. La versione 1.0.0-alpha11 contiene questi commit.
Modifiche alle API
- Promuove alcune API Material in modo che non siano più
@Experimental
(I5d20e) - Il parametro della descrizione dei contenuti è stato aggiunto a Immagine e Icona. Viene utilizzato per fornire una descrizione dei servizi di accessibilità (I2ac4c)
- Modifica le interfacce dei parametri stateful Material in modo che abbiano funzioni @Composable che restituiscono
State<T>
. AggiungeAnimatable.asState()
per semplificare la conversione di un elemento animato in uno stato. Modifica inoltre animazioneElevation in modo che diventi un'estensione di sospensione su Animatable. (If613c). - Snackbar, SnackbarHost, SnackbarHostState non sono più
@ExperimentalMaterialAPI
(Id1fb5) - Modifica tipografia, forme e TabPosition in modo che non siano più classi di dati. Aggiunge la funzione di copia per tipografia e forme per sostituire quelli generati. (I40037)
- Sono state eliminate alcune API Material precedentemente deprecate (Ifaa25)
Correzioni di bug
- onCommit, onDispose e onActive sono stati deprecati in favore delle API SideEffect e DisposableEffect (If760e)
- La transizione basata su TransactionDefinition è stata ritirata (I0ac57)
- Lo stato iniziale in updateTransizione è ora supportato (Ifd51d)
- WithConstraints è stato rielaborato come BoxWithConstraints e spostato in ground.layout. (I9420b, b/173387208)
Ritira lo scorrimento non sospesoPer, rimuovi lo scorrimento dei dati non sospesi
Ora consigliamo di utilizzare le funzioni di sospensione per controllare lo scorrimento e attendere per completare lo scorrimento. Stiamo ritirando e/o rimuovendo il le versioni senza sospensione di queste funzioni nell'ambito di questa transizione. (Ie9ced)
Ritira smoothscrollBy senza sospensione Ora consigliamo di utilizzare le funzioni di sospensione per controllare lo scorrimento e attendere per completare lo scorrimento. Stiamo ritirando le versioni senza sospensione di queste funzioni nell'ambito di questa transizione. (I12880)
Introdotta
ComposeContentTestRule
, che si estendeComposeTestRule
e definiscesetContent
, che è stato rimosso daComposeTestRule
. Metodo di fabbricacreateEmptyComposeRule()
aggiunto che restituisce unComposeTestRule
e non avvia un'attività per te. Usa questa opzione se vuoi avviare l'Attività durante il test. ad es. conActivityScenario.launch
(I9d782, b/174472899)L'eco utilizzato in Button e FloatingActionButton non può più essere personalizzato fornendo una nuova Indicazione tramite AmbientIndication. Questo non è mai stato pensato per essere un modo di personalizzare questi componenti e ora rende questi componenti coerenti con gli altri componenti Material. Per personalizzare gli echi in un'applicazione, vedi RippleTheme. (I546c5).
animateAsState è ora animatoFooAsState, dove Foo è tipo di variabile animata. ad es. Float, Dp, Offset e così via (Ie7e25)
BasicTextField ha ricevuto un nuovo parametro chiamato
decorationBox
. Consente di aggiungere elementi decorativi come icone, segnaposto, etichette e simili al campo di testo e di aumentare l'area degli hit target di quest'ultimo. (I16996)Correzione di un bug che impediva l'impostazione della larghezza del campo di testo del materiale inferiore a 280.dp (I78373)
Il parametro canTrascina è stato rimosso da Modifier.draggable (Ic4bec, b/175294473)
Rimuovi displaySize perché dovrebbe essere evitato. Di solito è meglio usare onRoot() o almeno una dimensione della finestra. (I62db4)
La superficie ora può avere più layout secondari. (I66a92, b/144488459)
inConvalida e composizioneReference() sono ora deprecate in favore rispettivamente di currentRecomposeScope e ricomponivoceReference(). (I583a8)
Modifica PopupPositionProvider in modo da utilizzare coordinate relative alla finestra, non coordinate globali. Rinomina parentGlobalBounds in anchorBounds e cambia windowGlobalBounds in
windowSize: IntSize
(I2994a)Durata e Uptime verranno sostituiti con Long millisecondi, e questo passaggio rimuove la dipendenza dell'input del puntatore su quelle . (Ia33b2, b/175142755, b/177420019)
L'elemento animatoFloat.fling che accetta FlingConfig è stato rimosso. Usa la sospensione Animatable.animateDecay. (I4659b, b/177457083)
Ora è possibile creare elementi cliccabili, attivabili e selezionabili al di fuori della composizione (I0a130, b/172938345, b/175294473)
L'easing è stato cambiato in un'interfaccia funzionale (Ib14e5)
L'elemento Scorribile/Riga sono stati deprecati. L'utilizzo di GrowableColumn è meno efficiente rispetto a LazyColumn quando è necessario scorrere contenuti di grandi dimensioni perché con LazyColumn possiamo comporre/misurare/disegnare solo elementi visibili. Per evitare che gli utenti progrediscano in maniera poco efficiente, abbiamo deciso di ritirare la soluzione Scorribile e Scorribile per promuovere invece l'utilizzo di LazyColumn e LazyRow. Gli utenti possono comunque decidere di non avere bisogno del comportamento lento e usare i modificatori direttamente in questo modo: Column(Modifier.verticalscroll(rememberscrollState())) (Ib976b, b/170468083)
Nuovo metodo di fabbrica
items(count: Int)
per l'ambito di LazyColumn/LazyRow/LazyVerticalGrid.items(items: List)
eitemsIndexed(items: List)
sono ora funzioni di estensione, quindi devi importarle manualmente quando vengono utilizzate. Nuovi overload delle estensioni per gli array:items(items: Array)
eitemsIndexed(Array)
(I803fc, b/175562574)Rimossi metodi sperimentali monotonicFrameAnimationClockOf (Ib753f, b/170708374)
Metodi di coordinate globali deprecati e realizzati nuovi metodi per le coordinate basate su finestre. (Iee284)
È stato aggiunto Modifier.toolingGraphicslayer, che aggiunge un modificatore del livello grafico quando l'ispezione è attiva. (I315df)
FocusRequester.createRefs è ora contrassegnato come sperimentale poiché potrebbe cambiare. (I2d898, b/177000821)
SemanticsPropertyReceiver.hidden è stato rinominato in invisibleToUser e contrassegnato come @ExperimentalComposeUiApi. AccessibilityRangeInfo è stato rinominato ProgressBarRangeInfo. stateDescriptionRange è stato rinominato in progressBarRangeInfo. AccessibilityScorriState è stato rinominato ScorriAxisRange. HorizontalAccessibilityscrollState è stato rinominato HorizontalscrollAxisRange. verticalAccessibilityScorriState è stato rinominato verticalscrollAxisRange. (ID3148)
Utilizzare TestCoroutineDispatcher per i test (I532b6)
Grafica vettoriale aggiornata API per supportare l'analisi della colorazione applicata alla radice delle immagini vettoriali. (Id9d53, b/177210509)
Versione 1.0.0-alpha10
13 gennaio 2021
Viene rilasciato androidx.compose.material:material-*:1.0.0-alpha10
. La versione 1.0.0-alpha10 contiene questi commit.
Modifiche alle API
- Velocità modificata per avere parti componenti e calcoli operazioni. (Ib0447)
@ExperimentalTesting
è stato rinominato in@ExperimentalTestApi
coerente con annotazioni API sperimentali simili (Ia4502, b/171464963)- Il nome della posizione è stato cambiato in DpOffset e è stato rimosso il metodo getDistance() (Ib2dfd)
- Ranamed Color.useOrElse() a Color.takeOrElse() (Ifdcf5)
- Aggiungi il pulsante di attivazione/disattivazione alle stringhe di base.kt (I4a5b7, b/172366489)
- FlowRow e FlowColumn sono stati deprecati. Utilizza un layout personalizzato. (I09027)
- Modifier.focus() e Modifier.focusRequester() sono deprecati. Usa invece Modifier.focusModifier() e Modifier.focusReference(). (I75a48, b/175160751, b/175160532, b/175077829)
- nativeClass spostato in modulo UI e lo ha reso interno. Aggiornamento degli utilizzi di nativeClass in è uguale alle implementazioni 'is MyClass' . (I4f734)
Correzioni di bug
- Aggiunto il supporto per i campi di testo disattivati e di sola lettura (I35279, b/171040474, b/166478534)
animate()
è ora sostituito conanimateAsState()
, che restituisceState<T>
anzichéT
. Ciò consente di ottenere perché l'ambito di annullamento della convalida può essere ristretto dove viene letto il valore dello stato. (Ib179e)- Aggiungi l'API Semantics Role e aggiungi Role come parametro a SemanticsModifier cliccabile, selezionabile e attivabile. Modificato Modifier.progressSemantics in modo che sia utilizzabile anche dal dispositivo di scorrimento. (I216cd)
Versione 1.0.0-alpha09
16 dicembre 2020
Viene rilasciato androidx.compose.material:material-*:1.0.0-alpha09
. La versione 1.0.0-alpha09 contiene questi commit.
Modifiche alle API
- è stata aggiunta un'API per attivare manualmente l'animazione di assestamento e trascinare in Modifier.svisibleable (Iaa17a, b/162408885)
- Rinominato oggetti *Constants, come ButtonConstants, che finiscono invece con i valori predefiniti, ad esempio ButtonDefaults. Rimuove anche i prefissi
default
non necessari dalle proprietà in questi nuovi oggetti. (Ibb915, b/159982740) Compose supporta i getter di proprietà che possono effettuare chiamate componibili. Il supporto di questa funzionalità non verrà eliminato, ma la sintassi per dichiarare una proprietà getter come @Composable cambierà.
La sintassi ormai deprecata per farlo era l'annotazione della proprietà stessa:
@Composable val someProperty: Int get() = ...
La sintassi ora corretta per eseguire questa operazione è annotare il getter della proprietà:
val someProperty: Int @Composable get() = ...
Entrambe le sintassi funzioneranno per un certo periodo di tempo, ma la sintassi precedentemente ritirata diventerà un errore di compilazione. (ID9197)
È stata aggiunta la libreria
androidx.compose.material:material-ripple
contenente le API Ripple per consentire la creazione di componenti interattivi senza bisogno del resto della libreria Material. ricordaRippleIndication è stato deprecato e sostituito con learnRipple. (Ibdf11).
Correzioni di bug
- Le funzioni Lambda nei modificatori di offset ora restituiscono IntOffset anziché Float. (Ic9ee5, b/174137212, b/174146755)
Hai eseguito il refactoring di ShaderBrush in di creare pigramente un'istanza di shaker quando informazioni sulle dimensioni del disegno dell'ambiente di rete. È utile per definire i gradienti occupano tutti i limiti di un al momento della composizione, senza dover a implementare implementazioni DrawModifier personalizzate.
API del costruttore della funzione di gradiente deprecate a favore dei metodi di produzione su un oggetto Gradient. (I511fc, b/173066799)
Modifier.focusObserver è deprecato. Usa invece Modifier.onFocusChanged o Modifier.onFocusEvent (I30f17, b/168511863, b/168511484)
Ritirare LazyColumnFor, LazyRowFor, LazyColumnForIndexed e LazyRowForIndexed. Usa LazyColumn e LazyRow (I5b48c)
Dp.VectorConverter, Position.VectorConverter spostati e così via in animazione-core e ha deprecato i vecchi VectorConveters (If0c4b)
L'API Compilazione automatica è ora sperimentale e richiede l'attivazione (I0a1ec)
Aggiunta di dichiarazioni di destrutturazione per creare istanze FocusRequester (I35d84, b/174817008)
L'accessibilitàLabel è stata rinominata in contentDescription. L'accessibilitàValue è stata rinominata in stateDescription. (I250f2)
Nuova funzione infiniteRipetibile per la creazione di una InfiniteRipetiableSpec (I668e5)
Il comportamento di posizionamento di DropdownMenus è stato leggermente modificato in base alle specifiche del Material. (I34c72, b/168594123)
È stato aggiunto il supporto InteractionState per TextFields. (I61d91)
È stato aggiunto Modifier.clearAndSetSemantics alla cancellazione dei discendenti la semantica e impostarne di nuovi. (I277ca)
Spostamento di ContentDrawScope nell'interfaccia utente modulo con DrawScope. (Iee043, b/173832789)
Versione 1.0.0-alpha08
2 dicembre 2020
Vengono rilasciate le funzionalità androidx.compose.material:material:1.0.0-alpha08
, androidx.compose.material:material-icons-core:1.0.0-alpha08
e androidx.compose.material:material-icons-extended:1.0.0-alpha08
. La versione 1.0.0-alpha08 contiene questi commit.
Modifiche alle API
- MaterialTheme ora imposta i colori corretti per i punti di manipolazione di selezione e lo sfondo della selezione. Le app non Material possono utilizzare manualmente AmbientTextSelectionColors per personalizzare i colori utilizzati per la selezione. (I1e6f4, b/139320372, b/139320907)
- È stato aggiunto il controllo del lint per la denominazione e la posizione dei parametri lambda componibili al fine di verificare la coerenza con le linee guida di Compose.
Inoltre, è stata eseguita la migrazione di alcune API utilizzando
children
come nome per il lambda finale incontent
, in base al controllo del lint e alle indicazioni. (Iec48e) - VectorAsset rinominato in ImageVector VectorAsset spostato e rinominato in Builder una classe interna di ImageVector come da Linee guida del comitato API. typealias di VectorAssetBuilder aggiunto a link a ImageVector.Builder per compatibilità. (Icfdc8)
- ImageAsset rinominati e metodi correlati a ImageBitmap. (Ia2d99)
- Proprietà semantiche di base spostate nella UI (I6f05c)
fun RippleIndication()
è stato deprecato e sostituito conrememberRippleIndication()
per coerenza con altre API. (Id8e2c)- È stato aggiunto un parametro singeLine a BasicTextField, TextField e OutliningTextField. Imposta questo parametro su true per rendere il campo di testo un'unica riga scorrevole orizzontalmente. (I57004, b/168187755)
Correzioni di bug
- Aggiungi l'azione semantica Ignora (I2b706)
- Le API DrawModifier sono state spostate dalla pacchetto androidx.compose.ui nella Pacchetto androidx.compose.ui.draw. File DrawModifierDeprecato.kt creato in includi metodi typealias/helper per supportare con della migrazione dall'infrastruttura deprecata all'attuale su quelle di livello inferiore. (Id6044, b/173834241)
- Modifier.drawlayer rinominato in Modifier.graphicslayer Sono state aggiornate anche le classi correlate a Graphicslayer in base a Feedback sull'API. (I0bd29, b/173834241)
<T>
è stato rimosso dalla dichiarazione SubcomposeLayout. Ora puoi utilizzarlo senza specificare un tipo. (Ib60c8)- Aggiunta Modifier.scale/rotate aggiunto
le API per il drawlayer.
Modifier.drawOpacity
rinominato inModifier.alpha
Modifier.drawShadow
rinominato inModifier.shadow
(I264ca, b/173208140)
- Il parametro di allineamento di Box è stato rinominato in contentAllineament. (I2c957).
- I modificatori offsetPx sono stati rinominati in offset. Prende i parametri lambda anziché i parametri State. (Ic3021, b/173594846)
- È stato introdotto SweepGradientShader e le API SweepGradientBrush. (Ia22c1).
- È stato aggiunto il controllo dei lint per i parametri di modifica nelle funzioni componibili. Questo controllo del lint verifica la coerenza con le linee guida di Compose per nome, tipo restituito, valore predefinito e ordine del parametro. (If493b)
- API TextFieldValue aggiornata
- impostato TextFieldValue.composition in sola lettura
- viene generata un'eccezione rimossa per l'intervallo di selezione non valido (I4a675, b/172239032)
- È stato aggiunto un nuovo sovraccarico di
Modifier.drawLayer()
. Occorre un blocco lambda in un nuovo GraphicslayerScope in cui definisci i parametri del livello in modo da saltare la ricomposizione e il relayout quando si verifica il cambiamento di stato. DrawlayerModifier è ora interno in preparazione alla migrazione della sua logica al metodoplaceable.placeWithLayer()
di LayoutModifier (I15e9f, b/173030831) - Ambienti deprecati denominati con
Ambient
come suffisso e sostituiti con nuove proprietà con prefisso Ambient, conformi alle altre linee guida dell'API Ambient e Compose. (I33440) - È stato aggiunto il controllo lint per verificare che le fabbriche di modifica utilizzino
androidx.compose.ui.composed {}
internamente anziché essere contrassegnato come@Composable
. (I3c4bc) - L'argomento semantico aggregateAllDescendants è stato rinominato in joinDescendants. (Ib6250)
- Il controllo del tempo nei test (TestAnimationClock e relativi utilizzi) è ora in fase sperimentale (I6ef86, b/171378521)
- Rimuovi il vecchio modulo di test dell'ui e i relativi stub (I3a7cb)
- TextUnit.Inherit è rinominata TextUnit.Unspecified per coerenza con altre unità. (Ifce19)
- L'interfaccia di Allineamento è stata aggiornata e resa funzionale. (I46a07, b/172311734)
- id è stato rinominato in layoutId per LayoutIdParentData. Misurabile.id è stato rinominato in Misurabile.layoutId. (Iadbcb, b/172449643)
Versione 1.0.0-alpha07
11 novembre 2020
Vengono rilasciate le funzionalità androidx.compose.material:material:1.0.0-alpha07
, androidx.compose.material:material-icons-core:1.0.0-alpha07
e androidx.compose.material:material-icons-extended:1.0.0-alpha07
. La versione 1.0.0-alpha07 contiene questi commit.
Modifiche alle API
- Emphasis è stato deprecato e sostituito con AmbientContentAlpha. AmbientContentAlpha è un'astrazione più semplice che rappresenta l'alfa dei contenuti preferiti per parte della gerarchia, in modo simile al modo in cui AmbientContentColor rappresenta il colore dei contenuti preferito. Testo e Icona ora consumano il valore corrente di AmbientContentAlpha per impostazione predefinita ed è possibile eseguire manualmente
color.copy(alpha = AmbientContentAlpha.current)
per ottenere lo stesso effetto nei componenti. Invece di utilizzare ProvideEmphasis, puoi fornire direttamente un valore tramite AmbientContentAlpha e utilizzare i nuovi livelli predefiniti in ContentAlpha per sostituire i vecchi EmphasisLevels. (Idf03e, b/159017896) - Aggiunge androidx.compose.material.AmbientContentColor per sostituire androidx.compose.foundation.AmbientContentColor (I84f7b, b/172067770)
- Aggiunge androidx.compose.material.Text per sostituire androidx.compose.foundation.Text come componente di testo di alto livello con tema. Per un componente di testo di base che non consuma il colore / lo stile del testo del tema, utilizza BasicText. (Ie6ae0).
- MaxLines aggiunti ai campi di testo (Ib2a5b)
- Aggiorna i campi di testo per accettare KeyboardOptions (Ida7f3)
- Per il calcolo degli overlay di elevazione, la superficie ora utilizza l'elevazione assoluta (totale), pertanto una superficie nidificata in un'altra superficie utilizzerà l'elevazione combinata per disegnare l'overlay. (I7bd2b, b/171031040)
Correzioni di bug
captureToBitmap
spostati incaptureToImage
. (I86385)- Gli elementi di base AmbientTextStyle, ProvideTextStyle e AmbientContentColor sono stati deprecati. Utilizza invece le nuove versioni disponibili nella libreria Material. Per le applicazioni non Material, devi invece creare un tuo sistema di progettazione specifico per la tematizzazione, che possono essere utilizzati nei tuoi componenti. (I74acc, b/172067770)
- Foundation.Text è stato deprecato e sostituito con material.Text. Per un'API di testo di base non definita che non utilizza valori di un tema, vedi androidx.compose.foundation.BasicText. (If64cb)
- Rinomina KeyboardOptions come ImeOptions (I82f36)
- KeyboardType e ImeAction spostate in KeyboardOptions (I910ce)
- Il campo BaseTextField è stato deprecato. Utilizza invece BasicTextField. (I896eb)
- L'annotazione ExperimentalSubcomposeLayoutApi è stata rimossa. Ora è possibile utilizzare SubcomposeLayout senza aggiungere @OptIn (I708ad)
- FirstBaseline e LastBaseline sono stati spostati nel pacchetto androidx.compose.ui.layout (Ied2e7)
- API Icona aggiornata per acquisire colori.Non specificato come possibile colore di tinta che disegnerà risorsa o pittore senza ColorFilter. In precedenza tenta di ignorare la colorazione con Color.Unspecified finirebbe per ottenere un colore trasparente senza eseguire alcuna visualizzazione. (I049e2, b/171624632)
- relativePaddingFrom è stato rinominato paddingFrom. È stato aggiunto il modificatore paddingFromBaseline per specificare le distanze dai limiti di layout alle basi del testo. (I0440a, b/170633813)
- LaunchedTask è stato rinominato in LaunchedEffect per coerenza con le API SideEffect e DisposableEffect. Lanciatoeffetto senza non sono consentiti per incoraggiare le best practice. (Ifd3d4).
- MeasureResult è stato spostato fuori da MeasureScope. (Ibf96d, b/171184002)
- Diversi simboli relativi al layout sono stati spostati da androidx.compose.ui ad androidx.compose.layout.ui. (I0fa98, b/170475424)
Versione 1.0.0-alpha06
28 ottobre 2020
Vengono rilasciate le funzionalità androidx.compose.material:material:1.0.0-alpha06
, androidx.compose.material:material-icons-core:1.0.0-alpha06
e androidx.compose.material:material-icons-extended:1.0.0-alpha06
. La versione 1.0.0-alpha06 contiene questi commit.
Modifiche alle API
- L'elemento androidx.compose.foundation.Icon è stato spostato in androidx.compose.material.Icon. Se non desideri utilizzare la libreria Material, puoi anche utilizzare il componente Immagine / Modifier.paint() con un Painter. (I9f622)
- Aggiunge FloatingActionButtonElevation per rappresentare l'elevazione utilizzata dai FAB in stati diversi. Consulta FloatingActionButtonConstants.defaultElevation() per l'implementazione predefinita (I2d4f5)
- Aggiunge l'interfaccia SwitchColors per rappresentare i colori utilizzati da uno switch in diversi stati. Vedi SwitchConstants.defaultColors per personalizzare questi colori. (I93805)
- Aggiunge le interfacce ButtonElevation e ButtonColors per rappresentare l'elevazione e i colori utilizzati dai pulsanti in stati diversi. Controlla le funzioni predefinite in ButtonConstants per personalizzare questi parametri. (Ic5b7b).
- Aggiunge l'interfaccia RadioButtonColors per rappresentare i colori utilizzati da un parametro RadioButton in diversi stati. Vedi RadioButtonConstants.defaultColors() per personalizzare i colori utilizzati in diversi stati. (I74130)
- Aggiunge l'interfaccia CheckboxColors per rappresentare i colori utilizzati da una casella di controllo in diversi stati. Vedi CheckboxConstants.defaultColors() per personalizzare i colori utilizzati in diversi stati. (I7dbdb)
Correzioni di bug
- I componenti del materiale non impostano più l'elevazione come zIndex. Ciò significa che all'interno dello stesso file principale il file secondario con ombra maggiore non verrà disegnato automaticamente sopra il file secondario con quello più piccolo. Se hai comunque bisogno di un comportamento di questo tipo, imposta manualmente Modifier.zIndex() dove necessario (I70417, b/170623932)
- Ritira VectorPainter in di learnVectorPainter per migliorare indica che l'API componibile internamente utilizza il comando "remember" per rendere persistenti i dati composizioni. (Ifda43).
- Abilita le transizioni in ComposeTestRule; rimuovi l'opzione per attivare il cursore lampeggiante da ComposeTestRule. (If0de3).
- Aggiunta l'opzione della tastiera a riga singola a CoreTextField (I72e6d)
- L'API Radius è stata rinominata in CornerRadius per esprimere al meglio e come viene utilizzato in Compose. Documentazione aggiornata per indicare che i raggi angolari negativi siano fissati a zero. (I130c7, b/168762961)
- Refactoring di DrawScope e
ContentDrawScope per essere interfacce
al posto delle classi astratte
- Implementazione di CanvasDrawScope creata di DrawScope
- Implementazioni sottoposte a refactoring DrawScope per usare CanvasScope
- DrawContext creato per aggregare le dipendenze per DrawScope
- Metodi deprecati rimossi da DrawScope (I56f5e)
- Box è stato trasformato in una funzione in linea. (Ibce0c, b/155056091)
Versione 1.0.0-alpha05
14 ottobre 2020
Vengono rilasciate le funzionalità androidx.compose.material:material:1.0.0-alpha05
, androidx.compose.material:material-icons-core:1.0.0-alpha05
e androidx.compose.material:material-icons-extended:1.0.0-alpha05
. La versione 1.0.0-alpha05 contiene questi commit.
Modifiche alle API
- Ora i popup e le finestre di dialogo ereditano FLAG_SECURE dalla finestra principale. È stata aggiunta anche l'opzione per configurarla esplicitamente (I64966, b/143778148, b/143778149)
- Per impostazione predefinita, Modifier.svisibleable ora ha soglie di 56.dp per gli stati (Iab825, b/168610267)
- tutti gli stati dello scaffold contrassegnati come @Stable. riquadro gestitosEnabled in ScaffoldState è stato spostato in Scaffold stesso. (I36645, b/168297016)
- Rimuove il tipo di valore null dai parametri lambda Scaffold. Puoi utilizzare emptyContent() per rappresentare nessun contenuto per un determinato parametro. (I2b318, b/157633857, b/158551084)
Ritira le API contentColor() e currentTextStyle() e le sostituisce rispettivamente con gli ambienti AmbientContentColor e AmbientTextStyle. Puoi accedere al valore corrente utilizzando
.current
nella proprietà Ambient, come in qualsiasi altro ambiente. Questa modifica è stata apportata per garantire la coerenza e evitare di avere più modi per ottenere lo stesso risultato. Inoltre, rinomina alcune proprietà Ambient per descriverne meglio lo scopo come segue:- ContentColorAmbient -> Colore contenuti ambientali
- Stile di testo Ambient -> Stile di testo ambientale
- IndicationAmbient -> Indicatore Ambient
- Enfasi Ambient -> Livelli di Emphasis Ambient
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
Aggiunge AmbientElevationOverlay, consentendo di personalizzare / disattivare l'overlay di elevazione predefinito applicato alle superfici con tema scuro. (I5b74d).
Correzioni di bug
- Nell'ambito della procedura di standardizzazione, di valori sentinella per le classi in linea, rinomina Color.Unset in Color.Unspecified per coerenza con altre classi in linea (I97611, b/169797763)
- Viene introdotto TextOverflow.None. Quando l'overflow è impostato su None, il testo non gestirà più l'overflow e segnalerà le loro dimensioni effettive a LayoutNode. (I175c9, b/158830170)
- lancioInComposizione rinominata in LaunchedTask per corrispondere a Compose Linee guida per le API (I99a8e)
- OnPositionedModifier è stato rinominato OnGloballyPositionedModifier mentre onPositioned() è il nuovo nome onGloballyPositioned(). (I587e8, b/169083903)
Versione 1.0.0-alpha04
1° ottobre 2020
Vengono rilasciate le funzionalità androidx.compose.material:material:1.0.0-alpha04
, androidx.compose.material:material-icons-core:1.0.0-alpha04
e androidx.compose.material:material-icons-extended:1.0.0-alpha04
. La versione 1.0.0-alpha04 contiene questi commit.
Modifiche alle API
- Espone i parametri InteractionState nei componenti Material stateful per consentire il sollevamento dello stato e la lettura / il controllo dello stato. (Iaca5f, b/168025711, b/167164434)
- Modifica i parametri
*color
in RadioButton e TriStateCheckbox per consentire la personalizzazione completa dei colori utilizzati in ogni stato, nonché per modificare il modo in cui i colori si animano tra gli stati, se lo desideri. Per ulteriori informazioni, vedi le nuove funzioni colore animateDefault* in CheckboxConstants e RadioButtonConstants. (I1c532). - Il valore di keepBackdropState è stato rinominato per ricordareBackdropScaffoldState e abbiamo aggiunto un ulteriore parametro per l'orologio dell'animazione. Parametro rinominato sfondoScaffoldState of BackdropScaffold per solo scaffoldState. Rinominato Da BackdropConstants a BackdropScaffoldConstants. (Ib644d)
- È stato aggiunto il componente sperimentale BottomSheetScaffold. (Ie02f0, b/148996320)
- È stato aggiunto il componente sperimentale ModalBottomSheetLayout. (Ic209e, b/148996320)
- Consente di rinominare ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation a defaultElevation e ora restituisce un valore Dp anziché un AnimatedValue. (I5f3ed).
Correzioni di bug
- Aggiornamento di molte API grafiche
- Scalabilità e rotazione aggiornate API di trasformazione per utilizzare una singola Parametro di offset per rappresentare il pivot coordinata invece di numero in virgola mobile separato per le coordinate x/y in DrawScope e DrawTransform
- Rimossi Rect.expandToInclude e Rect.join metodi
- Documentazione Raggio aggiornata per indicare ovale oltre all'ellittica,
- È stata aggiunta la documentazione che indica costruttore pubblico per il raggio in linea non venga chiamata direttamente, ma È necessario creare un'istanza per gli oggetti raggio i loro costruttori di funzioni
- Rimosse le API RoundRect per eseguire query in topRight, in basso a destra, in basso al centro ecc.
- Rect.shift obsoleto in favore di Rect.translate
- Rimosse le API RoundRect.grow e Rect.shrink
- RoundRect.outerRect rinominato in Rect.boundingRect
- Rimosso RoundRect.middleRect/tallMiddleRect/wideMiddleRect e Rect.isStadium
- RoundRect.longestSide è stato rinominato RoundRect.maxDimensione
- RoundRect.shortestSide è stato rinominato RoundRect.minDimensione
- RoundRect.center modificato in una proprietà anziché in una funzione
- Costruttore RoundRect aggiornato per utilizzare le proprietà Raggio anziché i singoli parametri per i valori del raggio x/y
- Rimosse le API Dimensioni che supponevano che si trattasse di un rettangolo con origine a 0,0
- Aggiunta di un'API di distruzione a Radius
- Migrazione di varie funzioni di estensione RoundRect in modo che proprietà
- (I8f5c7, b/168762961)
- Foundation.Box è stato deprecato. Usa il metodo ground.layout.Box. (Ie5950, b/167680279)
- Stack è stato rinominato Box. Il formato Box esistente in precedenza verrà ritirato e sostituito con il nuovo Box all'indirizzo composizione.foundation.layout. Il comportamento del nuovo riquadro consiste nell'impilare gli elementi secondari uno sopra l'altro quando sono presenti più elementi secondari. È diverso dal riquadro precedente, che aveva un comportamento simile a quello di una colonna. (I94893, b/167680279)
- I parametri per la decorazione della casella sono stati ritirati. Se vuoi aggiungere decorazioni/spaziature sulla scatola, usa i Modifiers (Modifier.background, Modifier.edge, Modifier.padding) (Ibae92, b/167680279).
- Aggiornamento di molte API grafiche
- API DrawScope aggiornate con ambito di trasformazione per indicare che la trasformazione viene applicata solo all'interno il callback e rimosso dopo l'invocazione del callback
- Documentazione clipPath aggiornata per fare riferimento a Percorso al posto del rettangolo arrotondato
- Spaziatura fissa nella documentazione per il parametro giusto in clipPath
- DrawScope.drawCanvas è stato rinominato in drawIntoCanvas e parametro size rimosso
- I parametri dx/dy sono stati rinominati nel metodo inset orizzontale e verticale
- Aggiunto un sovraccarico nel riquadro che fornisce lo stesso inserisci il valore in tutti e 4 i limiti
- Rimossa la documentazione sul metodo con inserto che indicava questo riquadro viene applicato a tutti e 4 i lati
- Documentazione aggiornata per la classe Rect
- Commenti aggiornati sui parametri Rect per farli corrispondere a Kdoc stile
- Rect.join e Rect.expandToInclude rimossi
- È stato creato un sovraccarico per Rect.translate(offset) e Rect.shift deprecato
- (If086a, b/167737376)
- Abbiamo impedito le importazioni statiche dei contenuti degli ambiti di layout (ad es.alignWithSiblings in RowScope). Al suo posto, è necessario utilizzare l'alternativa relativa all'ambito esplicito:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be, b/166760797)
Versione 1.0.0-alpha03
16 settembre 2020
Vengono rilasciate le funzionalità androidx.compose.material:material:1.0.0-alpha03
, androidx.compose.material:material-icons-core:1.0.0-alpha03
e androidx.compose.material:material-icons-extended:1.0.0-alpha03
. La versione 1.0.0-alpha03 contiene questi commit.
Modifiche alle API
- Rinomina il parametro
onSelect
diBottomNavigationItem
inonClick
(I91925, b/161809324) - Aggiunge il parametro InteractionState a BottomNavigatorItem e Tab, consentendo di sollevare questo stato e regolare l'aspetto del componente in diversi stati. (Ia3e9e, b/168025711)
- Rimuove i parametri
disabledBackgroundColor
edisabledContentColor
dai pulsanti. Devi invece utilizzare le nuove funzioni di colore predefinite all'interno di ButtonConstants. Se stai già impostando esplicitamente contentColor / backgroundColor, devi invece utilizzare queste funzioni predefinite e personalizzare alcuni o tutti i parametri per evitare di sovrascrivere il colore per entrambi gli stati attivati/disattivati. (If9b52). - Il colore di sfondo del campo di testo non applica più in modo implicito la trasparenza alpha. Verrà invece applicato direttamente qualsiasi colore fornito tramite il parametro backgroundColor. (Iecee9, b/167951441)
- InnerPadding è stato rinominato PaddingValues. (I195f1, b/167389171)
- I parametri
resistanceFactorAtMin
eresistanceFactorAtMax
inModifier.swipeable
sono stati sostituiti con un singolo parametro di resistenza. Un nuovo metododefaultResistanceConfig
è stato aggiunto inSwipeableConstants
. (I54238) - Aggiunge un supporto animato per l'elevazione stateful per Button e FloatingActionButton. L'elevazione ora si anima tra stato predefinito e stato premuto. Per personalizzare l'elevazione tra stati, utilizza
ButtonConstants.defaultAnimatedElevation()
eFloatingActionButtonConstants.defaultAnimatedElevation()
anziché impostare un valore Dp fisso in tutti i casi. (I37925) - L'etichetta è diventata un parametro facoltativo all'interno di TextField e OutliningTextField (I267f6, b/162234081)
Correzioni di bug
- Le funzioni di test globali, ad esempio
onNode
owaitForIdle
, sono ora deprecate, esegui la migrazione alle nuove controparti definite ComposeTestRule (I7f45a) - I DpConstraints e le API che lo utilizzano sono stati deprecati. (I90cdb, b/167389835)
- I parametri minwidth e maxwidth di widthIn sono stati rinominati in min e max. Allo stesso modo per preferredLarghezzaIn, altezzaIn, altezza preferitaAltezzaIn. (I0e5e1, b/167389544)
- Rimuovi le azioni semantiche di scorrimento avanti/indietro. Passaggi aggiunti in AccessibilityRangeInfo. (Ia47b0)
- Gli utilizzi della gravità sono stati rinominati in modo coerente in allineamento o allineamento nelle API di layout. (I2421a, b/164077038)
- Aggiunti onNode e altri metodi globali a ComposeTestRule come quelle globali attuali saranno ritirate. (IEae 36).
createAndroidComposeRule
eAndroidInputDispatcher
spostati da Daandroidx.ui.test.android
aandroidx.ui.test
(Idef08, b/164060572)
Versione 1.0.0-alpha02
2 settembre 2020
Vengono rilasciate le funzionalità androidx.compose.material:material:1.0.0-alpha02
, androidx.compose.material:material-icons-core:1.0.0-alpha02
e androidx.compose.material:material-icons-extended:1.0.0-alpha02
. La versione 1.0.0-alpha02 contiene questi commit.
Modifiche alle API
- È stato aggiunto un componente sperimentale BackdropScaffold. (Iad908)
Correzioni di bug
- Matrix4 è stato sostituito con Matrix. Tutte le altre parti del pacchetto vectormath sono state rimosse. (Ibd665, b/160140398)
Versione 1.0.0-alpha01
26 agosto 2020
Vengono rilasciate le funzionalità androidx.compose.material:material:1.0.0-alpha01
, androidx.compose.material:material-icons-core:1.0.0-alpha01
e androidx.compose.material:material-icons-extended:1.0.0-alpha01
. La versione 1.0.0-alpha01 contiene questi commit.
Problema noto
= Il primo carattere in un materiale TextField
non può essere rimosso usando un backspace (b/165956313)
Versione 0.1.0-dev
Versione 0.1.0-dev17
19 agosto 2020
Vengono rilasciate le funzionalità androidx.compose.material:material:0.1.0-dev17
, androidx.compose.material:material-icons-core:0.1.0-dev17
e androidx.compose.material:material-icons-extended:0.1.0-dev17
. La versione 0.1.0-dev17 contiene questi commit.
Modifiche alle API
- I valori RadioGroup e RadioGroupItems precedentemente deprecati sono stati rimossi. Utilizza invece Row e RadioBotton (I381b7, b/163806637)
- Rimosse le richiamate onFocusChanged da TextField. Usa invece Modifier.focusObserver. (I51089, b/161297615)
- Modifier.drawBorder è stato ritirato. Usa invece Modifier.border. La classe dei dati confine è stata sostituita da BorderStroke (I4257d, b/158160576)
- Alcune proprietà sono state rinominate in SwipeableState: swipeTarget -> Valore target, swipeProgress -> progressi, swipeDirection -> . È stata aggiunta una funzione keepScorriableState per creare swipeableStates. (I2fc9c, b/163129614, b/163132293)
- È stato aggiunto il supporto per lo snackbar con il posizionamento e la coda corretta. Puoi accedervi tramite la funzione di sospensione di
SnackbarHostState.showSnackbar
. Inoltre:- I componenti SnackbarHost sono stati aggiunti. Ospita snack bar in base allo stato ed è responsabile del passaggio da uno snackbar all'altro.
- È stato aggiunto SnackbarHostState per consentire il controllo di snackbar e host di snackbar e di disaccoppiarlo dallo ScaffoldState. puoi accedere a questo stato anche tramite
scaffoldState.snackbarHostState
. - È stato aggiunto il sovraccarico dello snackbar per supportare l'interfaccia comune tra snackbarHostState e le snackbar stesse. (I79aaa)
- Aggiunge il parametro attivato a IconButton e riordina i parametri in IconToggleButton (I0a941, b/161809385, b/161807956)
- La versione ListItem con l'API basata su stringhe è stata rimossa. Utilizza invece la versione slot. (Ib8f57, b/161804681)
- Rimosso il componente FilledTextField obsoleto. Utilizza TextField invece per ottenere l'implementazione di Material Design del campo Testo compilato. (I5e889).
- AlertDialog ora utilizza FlowRow per i pulsanti (I00ec1, b/161809319, b/143682374)
- Sono stati aggiunti parametri in Modifier.svisibleable per modificare il numero di resistenza quando si scorre oltre i limiti. [min/max]Parametri valore rimossi. (I93d98)
- È stato aggiunto il parametro backgroundColor a LinearProgressIndicator e è stata rimossa la spaziatura interna interna da CircularProgressIndicator. Aggiunto un nuovo elemento ProgressIndicatorConstants.DefaultProgressAnimationSpec che può essere utilizzato come AnimationSpec predefinito quando si anima l'avanzamento tra i valori (If38b5, b/161809914, b/161804677)
- Parametro facoltativo velocityThreshold aggiunto a Modifier.svisibleable. (I698ba)
- bottomBarSize, fabSize e altri e non sono più disponibili in ScaffoldState. Utilizza Modifier.onPosition invece sul componente di cui vuoi conoscere le dimensioni. I parametri contentColor e Modificatori sono stati aggiunti a Scaffold (Ic6f7b, b/161811485, b/157174382)
- Rinomina e riordina alcuni parametri in Tab per coerenza con altre API (Ia2d12, b/161807532)
- Suddivide TabRow in TabRow e ScorribileTabRow, rimuovendo isscrollable da TabRow. Espone anche edgePadding in ScorribileTabRow, che consente di controllare lo spazio libero prima / dopo le schede. (I583e8, b/161809544)
- L'oggetto
TabRow
è stato rimosso e lo ha sostituito con TabConstants. TabRow.TabPosition è stato spostato al livello superiore (TabPosition) ed esterneContainer è stato rinominato inindicator
. Consulta gli esempi e la documentazione per informazioni dettagliate su come utilizzare l'API aggiornata e le impostazioni predefinite. (I54d45, b/161809544) - Il parametro delle soglie in Modifier.svisibleable è stato modificato; ora prende una coppia di stati (di tipo T) e restituisce la soglia tra di essi sotto forma di ThresholdConfig. Un parametro ignora Soglie è stato aggiunto a ScorriPerIgnorare, che è un lambda (UnlockDirection) -> ThresholdConfig. (Ie1080)
- Il cursore ha più colori per una personalizzazione granulare (I73e64, b/161810475)
- Il parametro colore della carta è stato rinominato backgroundColor (I01fc1, b/161809546)
- Snackbar dispone ora di colori di sfondo e dei contenuti personalizzabili (I238f2, b/161804381)
- I parametri di personalizzazione di modificatore, backgroundColor, contentColor e scrimColor sono stati aggiunti ai Drawers (I23655, b/161804378)
- Il componibile
state { ... }
è ora deprecato e sostituito con inviti espliciti aremember { mutableStateOf(...) }
per maggiore chiarezza. Ciò riduce la superficie complessiva dell'API e il numero di concetti per lo stato gestione e corrisponde al patternby mutableStateOf()
per la classe delega delle proprietà. (Ia5727) - Il parametro di spaziatura interna del pulsante è stato rinominato contentPadding (Id252e, b/161809394)
- Aggiungi un componente sperimentale del materiale ScorriPerIgnora. (I129e5)
Correzioni di bug
onChildPositioned
eOnChildPositionedModifier
rimossi. Gli sviluppatori dovrebbero usareonPositioned
eOnPositionedModifier
nel layout secondario. (I4522e, b/162109766)- È stato aggiunto il criterio diMergePolicy lambda a SemanticsPropertyKey. Può essere utilizzato per definire un criterio personalizzato per la semantica diMergeAllDescendants l'unione. Il criterio predefinito prevede l'utilizzo del valore padre, se già impostato presente, altrimenti il valore figlio. (Iaf6c4, b/161979921)
- IntSize ora è una classe in linea (I2bf42)
PlacementScope.placeAbsolute()
è stato rinominato inPlacementScope.place()
e laPlacementScope.place()
precedente è stata rinominataPlacementScope.placeRelative()
. Di conseguenza, il metodoPlacementScope.place()
non rispecchierà più automaticamente la posizione in contesti con scrittura da destra a sinistra. Se vuoi, puoi usare il criterioPlacementScope.placeRelative()
. (I873ac, b/162916675)- PxBound deprecati in a favore di Rect. Tutti gli utilizzi sono stati aggiornati di PxBounds con rettangolo e aggiunto ritirarli/sostituire correttamente annotazioni per supportare il migrazione. (I37038, b/162627058)
- RRect rinominato in RoundRect per adattarsi meglio ai pattern di denominazione per la scrittura Costruttori di funzioni simili creati a RRect e la funzione RRect deprecata costruttori (I5d325)
Versione 0.1.0-dev16
5 agosto 2020
Vengono rilasciate le funzionalità androidx.compose.material:material:0.1.0-dev16
, androidx.compose.material:material-icons-core:0.1.0-dev16
e androidx.compose.material:material-icons-extended:0.1.0-dev16
. La versione 0.1.0-dev16 contiene questi commit.
Modifiche alle API
- Colors è ora una classe finale anziché un'interfaccia. Invece di estendere e fornire un'implementazione personalizzata, devi creare un nuovo Ambient per l'oggetto con tema personalizzato e accedervi tramite il nuovo Ambient nei tuoi componenti, in modo simile al funzionamento interno di MaterialTheme. (Ibae84)
- ColorPalette è stata rinominata in Colors (Colori), per una migliore mappatura al sistema Material Colors e per evitare confusione perché ColorPalette è un nome generico a tema, invece di essere un'implementazione specifica del sistema di colori Material. Inoltre, lightColorPalette e darkColorPalette vengono rinominati rispettivamente in lightColors e darkColors. (I9e976, b/161812111)
- Rinomina il parametro
text
di BottomNavigatorItem inlabel
,onSelected
inonSelect
,activeColor
inselectedContentColor
einactiveColor
inunselectedContentColor
e aggiorna l'ordine dei parametri in modo che corrisponda alle linee guida. (Icb605, b/161809324) Modifier.stateDraggable
è stato completamente rielaborato e rinominato in Modifier.svisible. È stata introdotta una nuova classe swipeableState È stato eseguito il refactoring di DrawerState e BottomDrawerState in modo da ereditarlo. [Modal/Bottom]DrawerLayout non accetta più il parametro onStateChange. (I72332, b/148023068)- Il pacchetto Fundamentals.shape.corner è stato appiattito a Foundation.share (I46491, b/161887429)
- È stata aggiunta l'annotazione ExperimentalMaterialApi. RippleTheme contrassegnato come sperimentale (Ic5fa0, b/161784800)
- Material FilledTextField è stato rinominato TextField e TextField di base è stato rinominato BaseTextField per semplificare l'individuazione e l'utilizzo dell'API desiderata più semplice (Ia6242, b/155482676)
Correzioni di bug
- Il valore OnChildPositioned è stato ritirato. Utilizza OnPositioned sul figlio. (I87f95, b/162109766)
- Correzione di correzioni API generiche (I077bc)
- .
- Rimuovi l'interfaccia OffsetBase inutilizzata
- Allinea le classi Offset e IntOffset per avere una piattaforma API coerente
- Rinomina IntOffset.Origin in IntOffset.Zero coerente con l'API Offset
- Metodo nativeCanvas spostato da Canvas interfaccia per aiutare i consumatori a creare delle proprie istanze Canvas
- È stata creata la classe stub EmptyCanvas di cui eseguire il refactoring DrawScope per essere un parametro non null al posto di lateinit e garantire che il campo non sia nullo
- Le enumerazioni ClipOp sono state rinominate in Pascal Case
- Le enum di FiltroQualità sono state rinominate in richiesta Pascal
- Le enumerazioni StrokeJoin sono state rinominate in richiesta Pascal
- Le enumerazioni PointMode sono state rinominate in caso Pascal
- Le enumerazioni PaintingStyle rinominate in Pascal Case
- Le enum PathFillType sono state rinominate in maiuscole e minuscole
- Le enumerazioni StrokeCap sono state rinominate in caso Pascal
- Implementazione DrawCache aggiornata in modo che non sia più utilizza parametri lateinit
- DrawScope aggiornato per non utilizzare più la delega lazy per i parametri interni FillPaint e pulsePaint
- Immagine componibile aggiornata per evitare l'uso di Box a un costo minore
- Aggiornata la classe Outline per avere annotazioni @Immutable
- PathNode aggiornato dispone di annotazioni @Immutable per l'istruzione di ogni percorso
- Sottocomposizione Vector aggiornata per rimuovere i file ridondanti controlli condizionali di uguaglianza mentre gestisce già la scrittura loro
- Metodi costruttore companion Rect deprecati a favore di costruttori di funzioni
- Classi e costruttori di funzioni di Pennello aggiornati con API @Immutable e @Stable
- Enum VertexMode aggiornato in PascalCase
- Metodo selectPaint DrawScope aggiornato in modo condizionale i parametri del tratto sul dipinto, se presenti modificato
- Dimensioni aggiornate per aggiungere l'API di destrutturazione, rinomina Da UnspecifiedSize a Non specificato e metodi inutilizzati rimossi
- Sposta la finestra di dialogo nell'interfaccia utente (I47fa6)
SemanticsNodeInteraction.performPartialGesture
rimosso. Utilizza le funzionalità diSemanticsNodeInteraction.performGesture
in alternativa. (ID9b62)SemanticsNodeInteraction.getBoundsInRoot()
rinominato inSemanticsNodeInteraction.getUnclippedBoundsInRoot()
(Icafdf, b/161336532)- Le API per il supporto da destra a sinistra sono state aggiornate. È stato aggiunto LayoutDirectionAmbient, che può essere utilizzato per leggere e modificare la direzione del layout. Modifier.rtl e Modifier.ltr sono stati rimossi. (I080b3)
- Modifier.deternimateProgress è stato rinominato Modifier.progressSemantics (I9c0b4)
- Aggiorna le icone material-estese con le icone più recenti aggiunte a Material.io/icon (I4b1d3)
- Richiedi che il tipo T sia specificato esplicitamente per transizioniDefinition. (I1aded)
- Modifier.plus è stato ritirato. Usa Modifier.then al suo posto. 'Allora' ha un segnale di ordinamento più forte, ma vieta anche di digitare
Modifier.padding().background() + anotherModifier
, il che spezza la catena e rende più difficile da leggere (Iedd58, b/161529964) - È stato rinominato AndroidComposeTestRule per creareAndroidComposeRule. (I70aaf)
- Aggiungi isFocused() e isNotFocused() SemanticsMatcher. (I0b760).
- Rimozione di
BaseGestureScope.globalBounds
, che non deve essere utilizzati dai test. Utilizza le coordinate locali del nodo con cui ti trovi a interagire. (Ie9b08) - È stata corretta la posizione dei popup sui display ritagliati. (Idd7dd)
- Modifier.drawBackground è stato rinominato in Modifier.background (I13677)
Versione 0.1.0-dev15
22 luglio 2020
Vengono rilasciate le funzionalità androidx.compose.material:material:0.1.0-dev15
, androidx.compose.material:material-icons-core:0.1.0-dev15
e androidx.compose.material:material-icons-extended:0.1.0-dev15
. La versione 0.1.0-dev15 contiene questi commit.
Aggiornamento delle dipendenze
- Per utilizzare la versione
0.1.0-dev15
di Compose, dovrai aggiornare le dipendenze in base ai nuovi snippet di codice mostrati sopra nella sezione Dichiarazione delle dipendenze.
Modifiche alle API
L'annotazione
@Model
è ora deprecata. Usa state e mutableStateOf come alternative. Questa decisione relativa al ritiro è stata presa dopo un'attenta discussione.Giustificazione
La motivazione include, a titolo esemplificativo:
- Riduce l'area e i concetti di base delle API da insegnare
- È più in linea con altri toolkit comparabili (Swift UI, React, Flutter)
- Decisione reversibile. Possiamo sempre ripristinare
@Model
in un secondo momento. - Elimina l'uso dei casi limite e le domande difficili da rispondere sulla configurazione di
@Model
come aspetti da gestire @Model
classi di dati, uguale, hashcode ecc.- Come posso "osservare" alcune proprietà e altre no?
- Come posso specificare l'uguaglianza strutturale e referenziale da utilizzare nell'osservazione?
- Riduce la "magia" nel sistema. ridurrebbe la probabilità che qualcuno supponga che il sistema sia più intelligente di quanto lo sia (ovvero che sa come confrontare un elenco)
- Rende la granularità dell'osservazione più intuitiva.
- Migliora la capacità di refactoring della variabile -> proprietà sulla classe
- Apre potenzialmente la possibilità di fare ottimizzazioni manuali specifiche per lo stato
- Si allinea più da vicino al resto dell'ecosistema e riduce l'ambiguità verso l'immutabile o il fatto di "accettare uno stato mutabile"
Note sulla migrazione
Quasi tutti gli utilizzi esistenti di
@Model
vengono trasformati in modo banale in uno di questi due modi. L'esempio seguente ha una classe@Model
con due proprietà a solo scopo di esempio e viene utilizzata in un componibile.@Model class Position( var x: Int, var y: Int ) @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }
Alternativa 1: usa
State<OriginalClass>
e crea delle copie.Questo approccio è semplificato dalle classi di dati di Kotlin. In sostanza, converti tutte le proprietà
var
precedenti in proprietàval
di una classe di dati, quindi utilizzastate
anzichéremember
e assegna il valore dello stato alle copie clonate dell'originale utilizzando il metodo di convenienzacopy(...)
della classe di dati.È importante notare che questo approccio funziona solo quando le uniche mutazioni in quella classe sono state eseguite nello stesso ambito in cui viene creata l'istanza
State
. Se la classe si sta mutando internamente al di fuori dell'ambito di utilizzo e ci si affida all'osservazione di ciò, l'approccio successivo è quello che vorrà usare.data class Position( val x: Int, val y: Int ) @Composable fun Example() { var p by state { Position(0, 0) } PositionChanger( position=p, onXChange={ p = p.copy(x=it) } onYChange={ p = p.copy(y=it) } ) }
Alternativa 2: usa mutableStateOf e delegati della proprietà
Questo approccio è semplificato grazie ai delegati delle proprietà di Kotlin e all'API
mutableStateOf
, che consente di creare istanze MutableState al di fuori della composizione. In sostanza, sostituisci tutte le proprietàvar
della classe originale con le proprietàvar
conmutableStateOf
come delegato della proprietà. Ciò presenta il vantaggio che l'utilizzo della classe non cambierà affatto, ma solo la sua implementazione interna. Tuttavia, il comportamento non è completamente identico all'esempio originale, poiché ora ogni proprietà viene osservata/sottoscritta individualmente, quindi le ricomposizioni che vedi dopo questo refactoring potrebbero essere più limitate (una buona cosa).class Position(x: Int, y: Int) { var x by mutableStateOf(x) var y by mutableStateOf(y) } // source of Example is identical to original @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }
(I409e8, b/152050010, b/146362815, b/146342522, b/143413369, b/135715219, b/14316}315)
Callback onFocusChange nei campi di testo rinominati in onFocusChanged (Ida4a1)
Parametro di soglia aggiunto in stateTrascinabile per specificare le soglie tra gli ancoraggi. per impostare una soglia di 56 dp nel riquadro a scomparsa in basso. Anche BottomDrawerLayout ora utilizza un'enumerazione BottomDrawerState separata. (I533fa)
Rimuove Modifier.ripple precedentemente deprecato. Clickable ora utilizza l'eco come indicazione predefinita (se nella tua applicazione hai impostato un MaterialTheme {}), quindi nella maggior parte dei casi puoi semplicemente utilizzare l'elemento cliccabile e ottenere l'indicazione dell'eco senza costi. Se devi personalizzare il parametro colore / dimensione / delimitato per l'eco, puoi creare manualmente un indicatore RippleIndication e passarlo a cliccabile come parametro di indicazione. (I663b2, b/155375067)
Rimosso l'override deprecato del componibile FilledTextField (I7f8f8)
Rinomina l'oggetto Pulsante (contenente i valori predefiniti utilizzati dalla funzione Button) in ButtonConstants (I7c5f7, b/159687878)
L'area dei contenuti del pulsante ora si comporta come una riga (utile quando hai bisogno di un'icona con un testo; vedi gli esempi su come scriverlo su Pulsante) (I0ff10, b/158677863).
RadioGroup e RadioGroupItem sono stati deprecati. Utilizza Box con Modifier.selectable, Row e Column per effettuare l'insieme corretto di opzioni di opzione in base al tuo design (I7f5cf, b/149528535)
È stato aggiunto il campo di testo contorno materiale (I1a518)
androidx.ui.foundation.TextFieldValue e L'API androidx.ui.input.EditorValue è deprecata. Campo di testo, Gli elementi componibili FilledTextField e CoreTextField che utilizzano anche questo tipo è deprecato. Utilizza androidx.ui.input.TextFieldValue (I4066d, b/155211005)
TabRow.TabPosition non contiene la posizione in Dp, non in IntPx (I34a07, b/158577776)
È stato sostituito l'utilizzo di IntPx con Int. IntPxPosition sostituita con IntOffset. IntPxSize sostituito con IntSize. (Ib7b44).
Per consolidare i numero di classi utilizzate per rappresentare sulle dimensioni, standardizza sull'utilizzo della classe Dimensioni, di PxSize. Questo offre i vantaggi di una classe in linea per sfruttare per pacchettizzare 2 valori in virgola mobile per rappresentare larghezza e altezza rappresentate da numeri in virgola mobile. (Ic0191)
Ritira Modifier.ripple. Clickable ora utilizza l'eco come indicazione predefinita (se nella tua applicazione hai impostato un MaterialTheme {}), quindi nella maggior parte dei casi puoi semplicemente utilizzare l'elemento cliccabile e ottenere l'indicazione dell'eco senza costi. Se devi personalizzare il parametro colore / dimensione / delimitato per l'eco, puoi creare manualmente un indicatore RippleIndication e passarlo a cliccabile come parametro di indicazione. (I101cd, b/155375067)
L'API Scaffold è stata rielaborata: alcuni parametri hanno cambiato nome e sono stati aggiunti nuovi parametri per una migliore personalizzazione. È stato aggiunto getter alle dimensioni delle query di Fab, TopBar e BottomBar (I0e7ce)
È stato aggiunto il componente Menu a discesa in ui-material, un'implementazione del menu Material Design. (I9bb3d)
Consenti di mostrare/nascondere manualmente la tastiera software utilizzando SoftwareKeyboardController (Ifb9d6, b/155427736)
Modifier.indication è stato aggiunto al pacchetto di base. Utilizzalo per mostrare indicazioni di pressione/trascinamento/altre indicazioni sugli elementi interattivi personalizzati (I8425f, b/155287131)
Implementazioni consolidate di CanvasScope Ora ci sono solo DrawScope e ContentDrawScope CanvasScope rinominato in DrawScope. DrawScope aggiornato per implementare la Densità all'interfaccia e fornisce LayoutDirection Sottoclasse DrawScope eliminata in ContentDrawScope Painter e PainterModifier sono stati aggiornati per non mantenere più una proprietà RTL poiché DrawScope fornisce già questa funzionalità, senza fornirlo manualmente (I1798e)
Rinomina Emphasis.emphasize() in Emphasis.applyEmphasis() (Iceebe)
I pulsanti disattivati ora seguono visivamente le specifiche di Material Design (I47dcb, b/155076924)
FilledTextField ottiene il supporto per azioni ime, trasformazione visiva e tipo di tastiera (I1f9cf, b/155075201)
Aggiunge il parametro structLength a CircularProgressIndicator per personalizzare la dimensione del tratto. Per modificare la dimensione del tratto (altezza) di un LinearProgressIndicator, puoi utilizzare Modifier.preferredHeight() o un altro modificatore di dimensione. (Icea16, b/154919081)
Aggiunge il parametro structLength a CircularProgressIndicator per personalizzare la dimensione del tratto. Per modificare la dimensione del tratto (altezza) di un LinearProgressIndicator, puoi utilizzare Modifier.preferredHeight() o un altro modificatore di dimensione. (Icea16, b/154919081)
È stata aggiunta l'API slot per le icone finali e iniziali nel FilledTextField e per la gestione dello stato di errore (Ic12e0)
Il colore predefinito dei FAB e dei FAB estesi è stato modificato in MaterialTheme.colors.secondary. (I3b9b9, b/154118816)
Sostituiti tutti gli utilizzi dei colori null nell'API sostituiti con non null e utilizza Color.Unset anziché null (Iabaa7)
EdgeInsets è stato rinominato InnerPadding. Parametro innerPadding rinominato di Material Buttons in paddding. (I66165)
Il cursore ora è stateless. Gli utenti dovranno superare e aggiornare lo stato autonomamente, proprio come in qualsiasi altro controllo. (Ia00aa)
StaticDrawer è stato rimosso. Se necessario, utilizza Box con la larghezza specifica del materiale (I244a7)
È stata aggiunta l'implementazione di Material Design del campo di testo compilato (Ic75cd)
Parametro modificatore aggiunto a ListItem e parametri riordinati in promuovono il corpo lambda finale (I66e21)
Aggiunge il parametro costruttore defaultFontFamily a Typography, consentendo di specificare la famiglia di caratteri predefinita che verrà utilizzata per qualsiasi TextStyles fornito che non dispone di una famiglia impostata. (I89d07)
Sono state rimosse temporaneamente le tabelle di dati sui materiali dalla piattaforma API. (Aea61)
Parametri rinominati in Divisore componibile (Ic4373)
secondari (Ia6d19)
Rimuove MaterialTheme.emphasisLevels, anziché utilizzare EmphasisAmbient.current per recuperare i livelli di enfasi (Ib5e40).
Il sistema di tematizzazione delle forme viene aggiornato in base alle specifiche di Material Design. Ora puoi fornire forme piccole, medie e grandi utilizzate dalla maggior parte dei componenti (Ifb4d1)
Le API MaterialTheme, ad esempio MaterialTheme.colors() e MaterialTheme.typography(), sono state modificate in proprietà anziché funzioni. Rimuovi le parentesi dalle chiamate esistenti; non è previsto alcun cambiamento di comportamento. (I3565a)
Refactoring delle API FloatingActionButton per accettare gli elementi componibili lambda anziché le primitive. Visualizza esempi aggiornati per l'utilizzo informazioni. (I00622)
aggiungi il parametro
enabled
a casella di controllo, opzione e attivabile (I41c16)Ripple è ora un Modificatore. Sebbene Clickable non sia ancora stato convertito, l'utilizzo consigliato è
Clickable(onClick = { ... }, modifier = ripple())
(Ie5200, b/151331852, b/150060763)Surface e Card sono stati spostati da androidx.ui.material.surface ad androidx.ui.material (I88a6d, b/150863888)
I pulsanti, FloatingActionButton e Clickable ora hanno un parametro
enabled
separato. Alcuni parametri su Pulsante sono stati rinominati o riordinati. (I54b5a).Immagine rinominata in ImageAsset per distinguere meglio la differenza tra i dati immagine e l'imminente componibile delle immagini utilizzato per partecipare al layout e disegnare contenuti. _Body:Metodo di estensione creato su android.graphics.Bitmap, Bitmap.asImageAsset(), per creare un'istanza di un ImageAsset utile per combinare le applicazioni Android lo sviluppo di applicazioni con il framework di composizione (Id5bbd)
Rimozione dell'API Snackbar con i parametri String in favore dell'utilizzo il sovraccarico che accetta lambda componibili. Visualizza esempi aggiornati per informazioni sull'utilizzo (I55f80)
Eseguite il refactoring delle API Tab per accettare lambda
text
eicon
(Ia057e)È stato aggiunto il componente BottomNavigator; consulta la documentazione e gli esempi per informazioni sull'utilizzo (I731a0)
Sono stati aggiunti Icon, IconButton e IconToggleButton, rimuovendo AppBarIcon. Puoi sostituire direttamente gli utilizzi esistenti di AppBarIcon con IconButton, e ora avranno il touch target corretto. Visualizza gli esempi per informazioni sull'utilizzo e consulta le icone per le icone del materiale fornite che puoi usare direttamente con questi componenti. (I96849)
Sostituito ButtonStyle con funzioni distinte e rimosso l'overload di testo (stringa). Visualizza esempi aggiornati per le informazioni sull'utilizzo. (If63ab, b/146478620, b/146482131)
rinomina il modificatore
Border
inDrawBorder
(I8ffcc)LayoutCoordinates non ha più una proprietà di posizione. La position non ha senso quando si considerano LayoutModifiers, la rotazione o la scalabilità. Gli sviluppatori dovrebbero usare parentCoordinate e figlioToLocal() per calcolare la trasformazione da uno LayoutCoordinate a un altro.
LayoutCoordinates utilizza IntPxSize per la proprietà delle dimensioni anziché Dimensioni Px. I layout utilizzano dimensioni in pixel intere per i layout, pertanto tutte le dimensioni dei layout devono utilizzare numeri interi e non valori con rappresentazione in virgola mobile. (I9367b)
Interruzione delle modifiche all'API Ambient. Per informazioni dettagliate, consulta la documentazione relativa al log e a
Ambient<T>
(I4c7ee, b/143769776)Il componente del materiale impalcato è stato aggiunto. Attrezzi Scaffold (I7731b)
Sostituito DrawBorder a favore del Modificatore di confine (Id335a)
Correzioni di bug
- FocusModifier è stato ritirato a favore di Modifier.focus, Modifier.focusRequester e Modifier.focusObserver. FocusState e FocusDetailsState sono stati deprecati a favore di FocusState2 (I46919, b/160822875, b/160922136)
- Verticalscroller e Horiziontalscroller sono stati deprecati. Utilizza ScorribileColonna e ScorribileRiga per creare un'esperienza integrata con il comportamento e i parametri Colonna/Riga oppure Modifier.verticalscroll e Modifier.Horizontalscroll per il tuo elemento. Allo stesso modo, scrollerPosition è stato ritirato a favore di scrollState'. (I400ce, b/157225838, b/149460415, b/154105299)
- Le API Modifier.draggable e Modifier.scrollable sono state rielaborate. DragDirection è stato rimosso a favore dell'orientamento. Lo stato richiesto per lo scorrimento è stato semplificato. ScorriableState è stato rinominato ScorribileController (Iab63c, b/149460415)
runOnIdleCompose
rinominato inrunOnIdle
(I83607)- Le proprietà semantiche di un singolo valore ora utilizzano uno stile di chiamata. Ad esempio, "semantics {hidden = true }". è ora scritta come segue: "semantics {Hidden() }". (Ic1afd, b/145951226, b/145955412)
- Diverse API di test sono state rinominate per essere più intuitive. Tutti Le API di FindXYZ sono state rinominate onNodeXYZ. Tutte le API doXYZ sono state rinominate in esegui XYZ. (I7f164)
- L'API Transizione è stata modificata per restituire un TransizioneState anziché passare lo stato Transizione. per i bambini. Questo rende l'API più coerente API animate(). (I24e38).
- È stata aggiunta una classe unità IntBounds che rappresenta i limiti di pixel interi del layout. L'API di PopupPositionProvider è stata aggiornata in modo da utilizzarla. (I0d8d0, b/159596546)
- È stato aggiunto un nuovo flag facoltativo useUnmergedTree ai rilevatori di test. (I2ce48)
- Sono state rimosse le API di test delle dimensioni obsolete. (Iba0a0)
- È stata rimossa la classe in linea di Shader che ha inserito la classe Aspettative di NativeShader NativeShader è stato rinominato Shader. La classe in linea con wrapping di Shader ha fatto non aggiungere nulla di importante alla piattaforma API ed era una classe in linea, quindi usa NativeShader direttamente nel corso. (I25e4d).
- Popup, finestre di dialogo e menu ora ereditano il MaterialTheme contestuale (Ia3665, b/156527485)
- Ora il menu a discesa Materiale è scorrevole. (Ide699)
- Rimosso il parametro di direzione del layout dal blocco di misura della funzione Layout(). La direzione del layout è tuttavia disponibile all'interno del callback tramite l'oggetto ambito misurazione (Ic7d9d)
- Usa AnimationSpec anziché AnimationBuilder nelle API di primo livello per chiarire il concetto di specifica dell'animazione statica. - Miglioramento della transizione DSL rimuovendo il requisito lambda per creando AnimationSpecs come tween, spring. Prendono e i parametri del costruttore. - Miglioramento della facilità d'uso generale dell'apertura di AnimationSpec anziché fare affidamento sui builder -Modifica la durata e il ritardo dei fotogrammi chiave e Questo elimina i cast di tipi non necessari e il sovraccarico dei metodi (ad che supportano sia Long che Int). (Ica0b4)
- L'opzione ora appare in stato disattivato quando il criterio
enabled
è impostato su false (If4624, b/155941869, b/159331694) - Modifier.tag è stato rinominato in Modifier.layoutId per evitare confusione con Modifier.testTag. (I995f0)
- Le posizioni di interazione della linea di allineamento restituite da Placeable#get(AllineamentLine) sono ora diverse da null. Se manca la linea di allineamento sottoposta a query, verrà restituitocato RedirectLine.Unspecified. (I896c5, b/158134875)
Refactoring della classe Raggio inline. Creazione companion rimossa metodi a favore del costruttore della funzione con il parametro predefinito per avere il raggio lungo l'asse y corrisponde a quella del campo obbligatorio raggio dell'asse x.
DrawScope.drawRoundRect aggiornato per l'utilizzo un singolo parametro Raggio anziché due parametri distinti valori in virgola mobile per il raggio lungo x e y (I46d1b)
Per consolidare i numero di classi utilizzate per rappresentare le informazioni di posizionamento, standardizzare sull'uso della classe Offset di PxPosition. Questo offre i vantaggi di una classe in linea per sfruttare per raggruppare 2 valori in virgola mobile che rappresentano x e gli offset y rappresentati come numeri in virgola mobile. (I3ad98)
Utilizzo della classe Px sostituito in varie comporre classi nell'ambito della grande di refactoring facendo affidamento solo sul Dp e tipi primitivi per i parametri dei pixel. Classe Px eliminata nella sua interezza (I3ff33)
Il componente attivabile/disattivabile è stato deprecato. Usa Modifier.toggleable (I35220, b/157642842)
Utilizzo della classe Px sostituito in varie comporre classi nell'ambito della grande di refactoring facendo affidamento solo sul Dp e tipi primitivi per i parametri dei pixel (I086f4)
Utilizzo della classe Px sostituito in varie comporre classi nell'ambito della grande di refactoring facendo affidamento solo sul Dp e tipi primitivi per i parametri dei pixel (Id3434)
Utilizzo della classe Px sostituito in varie comporre classi nell'ambito della grande di refactoring facendo affidamento solo sul Dp e tipi primitivi per i parametri dei pixel (I97a5a)
È stato corretto il problema di richiamata per DropdonMenuItems. (I3998b, b/157673259)
MutuallyUniqueSetItem è stato deprecato. Usa invece Modifier.selectable. (I02b47, b/157642842)
TestTag è ora deprecato. Utilizza invece Modifier.testTag. (If5110, b/157173105)
Il cursore di TextField ha un'animazione lampeggiante (Id10a7)
Utilizzo della classe Px sostituito in varie comporre classi nell'ambito della grande di refactoring facendo affidamento solo sul Dp e tipi primitivi per i parametri dei pixel (I19d02)
Verticalscroller ora fornisce Colonna pronta all'uso. Horizontalscroller ora fornisce Row pronta all'uso. (Ieca5d, b/157020670)
Utilizzo della classe Px sostituito in varie comporre classi nell'ambito della grande di refactoring facendo affidamento solo sul Dp e tipi primitivi per i parametri dei pixel (Iede0b)
Modifier.semantics non è più deprecata per consentire l'utilizzo di componenti di alto livello. (I4cfdc)
L'API dei modificatori DrawLivello è stata modificata: outlineShape è stato rinominato forma e ha il valore predefinito rettangoloForma e ora non è possibile impostare valori null; clipToOutline rinominato in clip; clipToBounds rimosso perché è uguale a clip == true con rettangoloShape (I7ef11, b/155075735)
Aggiornato a un livello superiore che espongono un elemento Canvas esponi CanvasScope. Questa operazione rimuove la necessità da parte dei consumatori di mantenere oggetti Paint. Per i consumatori che richiedono comunque l'accesso a Canvas è possibile usare l'estensione drawCanvas che fornisce un callback al problema di tracciare i comandi con Tela. (I80afd)
L'elemento componibile allineatoLineOffset è deprecato. Utilizza il modificatore relativePaddingFrom(). CenterAllineamentLine componibile è stato rimosso. (I60107)
L'API lambda finale WithConstraints è stata modificata. Ora, invece di due parametri, ha un ambito ricevitore che, oltre ai vincoli e layoutDirection fornisce le proprietà minLarghezza, maxwidth, minHeight e maxHeight in Dp (I91b9a, b/149979702)
Aggiunto il modificatore di layout defaultMinSizeConstraints, che imposta i vincoli di dimensione sul layout con wrapping solo quando i vincoli corrispondenti in entrata non sono specificati (0 per i vincoli minimi e infinito per i vincoli massimi). (I311ea, b/150460257)
FocusManagerAmbient viene rimosso. Utilizza FocusModifier.requestFocus per ottenere la messa a fuoco. (Ic4826)
È stata creata l'API CanvasScope che aggrega un Canvas per esporre un oggetto superficie dell'API di disegno. Le trasformazioni sono contenute nell'ambito del ricevente e sulle informazioni sulle dimensioni abbia come ambito anche i corrispondenti limiti inseriti. Non richiede che il consumatore mantenga il proprio stato Verniciatura per configurare le operazioni di disegno.
È stato aggiunto CanvasScopeSample e ha aggiornato l'app demo per includere una grafica dichiarativa demo (Ifd86d)
Aggiungi la personalizzazione del colore del cursore al campo di testo (I6e33f)
Il valore TextFieldValue utilizzato con TextField ora può sopravvivere ricreazione attività quando viene utilizzato in questo modo:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
(I5c3ce, b/155075724)LayoutModifier2 rinominato in LayoutModifier. (ID29f3)
Rimossa l'interfaccia LayoutModifier deprecata. (I2a9d6).
FocusIdentifier di CoreTextField/TextField sostituiti con FocusNode per l'integrazione con il sottosistema Focus. (I7ea48)
Le funzioni di misurazione intrinseca in Layout e LayoutModifier2 dispongono ora di un ricevitore Intrinsic MeasureScope che fornisce l'API di query intrinseca con direzione di layout propagata implicitamente. (ID9945)
Viene aggiunto il nuovo Modifier.zIndex() per controllare l'ordine di disegno degli elementi secondari all'interno dello stesso layout principale. e non controlla più l'ordine del disegno. L'ordine dei parametri di DrawShadow è modificato: l'elevazione è ora la prima e la forma è la seconda con un valore predefinito rettangoloForma. (I20150, b/152417501)
Rettangolo spostato da androidx.ui.foundation.shape.* ad androidx.ui.graphics.* (Ia74d5, b/154507984)
Aggiornamento dell'API TextField: riuniti i callback onFocus e onBlur in un singolo callback onFocusChange(Boolean) con parametro (I66cd3)
Sono stati aggiunti i parametri verticalGravity e HorizontalGravity a Row e Column. (I7dc5a)
I valori wrapContentwidth e wrapContentHeight sono stati aggiornati per prevedere un allineamento verticale o orizzontale anziché un allineamento. Il modificatore di gravità è stato aggiornato per accettare l'allineamento verticale o orizzontale. Riga, colonna e pila sono state aggiornate per supportare gli allineamenti continui personalizzati. (Ib0728)
API PixelMap creata per l'assistenza interrogando le informazioni sui pixel da un ImageAsset. (I69ad6)
Rimuove ProvideContentColor, invece è sufficiente utilizzare ContentColorAmbient direttamente con
Providers
(Iee942)Il modulo ui-text-compose è rinominato ui-text. testo dell'interfaccia utente ora contiene i componibili CoreText e CoreTextField (Ib7d47)
Il modulo ui-text è stato rinominato ui-text-core (I57dec)
ui-framework/CoreText, elementi componibili CoreTextField spostati in "ui-text-compose". Potresti voler includere ui-text-compose nel progetto. (I32042)
Migliora l'API DrawModifier:
- Ambito del ricevitore per draw() ContentDrawScope
- Sono stati rimossi tutti i parametri in draw()
- DrawScope ha la stessa interfaccia del precedente CanvasScope
- ContentDrawScope ha il metodo drawContent() (Ibaced, b/152919067)
runOnIdleCompose
erunOnUiThread
sono ora funzioni globali invece dei metodi su ComposeTestRule. (Icbe8f)[Mutable]Operatori dei delegati delle proprietà statali spostati nelle estensioni per supportare le ottimizzazioni dei delegati per le proprietà Kotlin 1.4. I chiamanti devono aggiungere importazioni per continuare a utilizzare
by state { ... }
oby mutableStateOf(...)
. (I5312c)Sono stati aggiunti positionInParent e boundsInParent per LayoutCoordinates. (Icacdd, b/152735784)
ColoredRect è stato ritirato. Usa invece Box(Modifier.preferredSize(width, altezza).drawBackground(color)). (I499fa, b/152753731)
Il valore LayoutResult è stato rinominato in MeasureResult. (ID8c68)
È stata aggiunta LayoutModifier2, una nuova API per la definizione dei modificatori di layout. LayoutModifier (If32ac) ritirato
Sostituito Modificatore più operatore con funzioni di estensione di fabbrica (I225e4)
L'elemento trascinabile è stato spostato nel modificatore (Id9b16, b/151959544)
L'API ParentData componibile è deprecata. Devi creare un modificatore che implementi l'interfaccia ParentDataModifier oppure usare il modificatore LayoutTag se hai semplicemente bisogno di taggare elementi secondari di layout per riconoscerli all'interno del blocco di misurazione. (I51368, b/150953183)
Elemento componibile del Centro deprecato. Deve essere sostituito con il modificatore LayoutSize.Fill + LayoutAllinea.Center oppure con uno dei componibili Box o Stack con i modificatori adatti applicati (Idf5e0).
È stata aggiunta l'API VectorPainter a sostituire l'API di sottocomposizione esistente per grafica vettoriale. Risultato della sottocomposizione è un oggetto VectorPainter invece che DrawModifier. DrawVector precedente ritirato componibili a favore di VectorPainter.
API Image(Painter) rinominata in PaintBox(Painter) È stato creato un vettore componibile che si comporta come Immagine componibile, tranne che con un VectorAsset di un ImageAsset (I9af9a, b/149030271)
Il nome LayoutFlessibile è stato rinominato in LayoutWeight. Parametro stretto rinominato da riempire. (If4738)
Rimosso RepaintBoundary a favore di DrawlayerModifier (I00aa4)
DrawVector è stato modificato da una funzione componibile per restituire un Modifier drawVector() che il vettore come sfondo di un layout. (I7b8e0)
La funzione componibile opacità è stata sostituita con il tasto di modifica drawOpacity. (I5fb62)
Sostituisci la funzione componibile Clip con il modificatore drawClip(). DrawClipToBounds è un pratico modificatore da usare quando devi ritagliare solo i limiti dei livelli con una forma rettangolare. (If28eb)
Funzione componibile DrawShadow() sostituita con drawShadow() modificatore. Le ombre sono ora disegnate come parte di LayerModifier. (I0317a)
È stato aggiunto LayerModifier, un modificatore che consente aggiungendo un RenderNode per un layout. Consente di impostare ritaglio, opacità, rotazione, ridimensionamento e ombre. Questo sostituirà RepaintBoundary. (I7100d, b/150774014)
L'elemento androidx.compose.ViewComposer è stato spostato in androidx.ui.node.UiComposer Il file androidx.compose.Emittable è stato rimosso. Era ridondante con ComponentNode. Il comando androidx.compose.ViewAdapters è stato rimosso. Non sono più un caso d'uso supportato. L'API Compose.composeInto è stata ritirata. Usa invece
setContent
osetViewContent
. L'API Compose.disposeCompose è stata deprecata. Utilizza invece il metododispose
nella colonnaComposition
restituita dasetContent
. Il file androidx.compose.Compose.subcomposeInto è stato spostato in androidx.ui.core.subcomposeInto ComponentNode#emitInsertAt è stato rinominato in ComponentNode#insertAt ComponentNode#emitRemoveAt è stato rinominato in ComponentNode#removeAt ComponentNode#emitMode è stato rinominato in ComponentNode#move (Idef00)Immagine creata componibile per gestire dimensioni/layout, oltre a disegnare un dato ImageAsset sullo schermo. Questo componibile supporta anche il disegno di qualsiasi dell'istanza rispettando le sue dimensioni intrinseche oltre a supportare una determinata dimensione o dimensione minima (Ibcc8f)
Elemento componibile a capo obsoleto. Può essere sostituito con il modificatore LayoutAllinea o con l'elemento componibile Stack (Ib237f)
WithConstraints ha ottenuto il parametro LayoutDirection (I6d6f7)
È stata eseguita la propagazione della direzione del layout dal nodo di layout principale ai nodi secondari. Aggiunto il modificatore di direzione del layout. (I3d955)
Il componente Stack supporta la direzione da destra a sinistra (Ic9e00)
Il componibile DrawShape è stato rimosso. Usa il modificatore DrawBackground. (I7ceb2)
Supporto della direzione da destra a sinistra nel modificatore di LayoutPadding (I9e8da)
È stato aggiunto AdapterList, un componente per elenchi a scorrimento che consente compone e dispone gli elementi visibili. Problemi attualmente noti includono che è solo verticale e non gestisce completamente tutti di cambiamenti agli elementi secondari. (Ib351b)
Il flag
ComposeFlags.COMPOSER_PARAM
è stato aggiornato intrue
e cambierà la strategia di generazione del codice per il plug-in di scrittura. A livello generale, questo fa sì che le funzioni @Composable vengano generate con un parametro sintetico aggiuntivo, che viene passato alle chiamate @Composable successive per consentire al runtime di gestire correttamente l'esecuzione. Si tratta di una modifica significativa che provoca un'interruzione del programma binario, tuttavia, dovrebbe preservare la compatibilità a livello di origine in tutti gli utilizzi autorizzati della scrittura. (I7971c)Componente Canvas aggiunto. Questo componibile occupa alcune dimensioni (fornite dall'utente) e consente di disegnare utilizzando CanvasScope (I0d622)
Density e DensityScope sono stati uniti in un'unica interfaccia. Al posto di ambientDensity() ora puoi usare DensityAmbient.current. Invece di withDensity(density) solo with(density) (I11cb1)
LayoutCoordinates modificato per rendere providedAllineamentLines un set invece di una mappa e fare in modo che LayoutCoordinate implementi l'operatore get() per recuperare un valore. In questo modo, diventa più facile per i modificatori per modificare uno o più valori dell'insieme senza creando una nuova raccolta per ogni modificatore. (I0245a)
Gli strumenti di scorrimento ora mostrano un comportamento fling nativo di Android. (I922af, b/147493715)
Miglioramenti alla superficie API dei vincoli (I0fd15)