Componi materiale
androidx.compose.material
androidx.compose.material.icons
(consulta la documentazione di riferimento dell'API per tutti i pacchetti di composizione)
Ultimo aggiornamento | Release stabile | Candidato per la release | Versione beta | Versione alpha |
---|---|---|---|---|
13 novembre 2024 | 1.7.5 | - | - | 1.8.0-alpha06 |
Struttura
Compose è una combinazione di 7 ID gruppo Maven in androidx
. Ogni gruppo contiene un sottoinsieme mirato di funzionalità, ciascuna con il proprio insieme di note di rilascio.
Questa tabella illustra i gruppi e i link a ogni set di note di rilascio.
Gruppo | Descrizione |
---|---|
compose.animation | Creare animazioni nelle loro 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 espandi la base per creare i componenti del tuo sistema di progettazione. |
compose.material | Crea interfacce utente Jetpack Compose con componenti Material Design pronti all'uso. Si tratta del punto di contatto di primo livello di Compose, progettato per fornire componenti corrispondenti a quelli descritti all'indirizzo www.material.io. |
compose.material3 | Crea interfacce utente Jetpack Compose con i componenti Material Design 3, la prossima evoluzione di Material Design. Material 3 include temi e componenti aggiornati e funzionalità di personalizzazione di Material You come i colori dinamici ed è progettato per essere coerente con il nuovo stile visivo e l'interfaccia utente di sistema di Android 12. |
compose.runtime | Componenti di base del modello di programmazione e della gestione dello stato di Compose, nonché del runtime di base per il plug-in del compilatore Compose come target. |
compose.ui | Componenti fondamentali dell'interfaccia utente di composizione necessari per interagire con il dispositivo, inclusi layout, disegno e input. |
Dichiarazione delle dipendenze
Per aggiungere una dipendenza da Compose, devi aggiungere il repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il repository Maven di Google.
Aggiungi le dipendenze per gli elementi necessari nel file build.gradle
per la tua app o il tuo modulo:
Groovy
dependencies { implementation "androidx.compose.material:material:1.7.5" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.7.5") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Per ulteriori informazioni sulle dipendenze, consulta Aggiungere dipendenze di compilazione.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa raccolta. Prima di crearne uno nuovo, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Per ulteriori informazioni, consulta la documentazione del Monitoraggio problemi.
Versione 1.8
Versione 1.8.0-alpha06
13 novembre 2024
androidx.compose.material:material-*:1.8.0-alpha06
viene rilasciato. La versione 1.8.0-alpha06 contiene questi commit.
Versione 1.8.0-alpha05
30 ottobre 2024
androidx.compose.material:material-*:1.8.0-alpha05
viene rilasciato. La versione 1.8.0-alpha05 contiene questi commit.
Correzioni di bug
- Ottimizza il comportamento di
contentPadding
di Scaffold per evitare di ricomporre sempre i contenuti del corpo quandocontentPadding
cambia. (I8c8e2, b/373904168) - Fai in modo che il dispositivo di scorrimento del materiale cambi valore quando vengono premuti i tasti di controllo. (I1c442)
Versione 1.8.0-alpha04
16 ottobre 2024
androidx.compose.material:material-*:1.8.0-alpha04
viene rilasciato. La versione 1.8.0-alpha04 contiene questi commit.
Modifiche all'API
- Rimuovi
readOnly
daTextFields
per bloccare la versione stabile della base. (I3aaba)
Correzioni di bug
- Aggiunge il supporto delle increspature nei componenti espandibili su Android S e versioni successive, ad esempio una scheda che si espande al clic. In precedenza, l'effetto ripple non riempiva le nuove dimensioni, ma ora si espande fino ai nuovi limiti. (If509a, b/183019123)
Versione 1.8.0-alpha02
18 settembre 2024
androidx.compose.material:material-*:1.8.0-alpha02
viene rilasciato. La versione 1.8.0-alpha02 contiene questi commit.
Versione 1.8.0-alpha01
4 settembre 2024
androidx.compose.material:material-*:1.8.0-alpha01
viene rilasciato. La versione 1.8.0-alpha01 contiene questi commit.
Modifiche all'API
- È stato aggiunto un nuovo generatore
NavGraphBuilder.bottomSheet
per creare un bottomSheet con argomenti sicuri ((I28589, I777db, b/351858980))
Versione 1.7
Versione 1.7.5
30 ottobre 2024
androidx.compose.material:material-*:1.7.5
viene rilasciato. La versione 1.7.5 contiene questi commit.
Versione 1.7.4
16 ottobre 2024
androidx.compose.material:material-*:1.7.4
viene rilasciato. La versione 1.7.4 contiene questi commit.
Versione 1.7.2
18 settembre 2024
androidx.compose.material:material-*:1.7.2
viene rilasciato. La versione 1.7.2 contiene questi commit.
Versione 1.7.1
10 settembre 2024
- Nessuna modifica agli elementi Android. Sono stati rimossi
-desktop
elementi e aggiunti-jvmStubs
e-linuxx64Stubs
elementi. Nessuno di questi target è destinato all'uso, ma sono segnaposto per supportare le attività di JetBrains Compose.
Versione 1.7.0
4 settembre 2024
androidx.compose.material:material-*:1.7.0
viene rilasciato. La versione 1.7.0 contiene questi commit.
Modifiche importanti dalla versione 1.6.0
- È stata eseguita la migrazione dei componenti Material per utilizzare le nuove API di ripple e non eseguono più query su
RippleTheme
. - I componenti Material che in precedenza accettavano un
MutableInteractionSource
e avevano un valore predefinito diremember { MutableInteractionSource() }
ora accettano unMutableInteractionSource
con valori null e hanno un valore predefinito di null. Se non esegui l'elevazione e non utilizziMutableInteractionSource
, devi passare null. In questo modo, alcuni componenti possono creare un'istanza in modo lazy solo quando necessario, migliorando le prestazioni. Ti consigliamo inoltre di apportare modifiche simili nei tuoi componenti. BottomDrawer
,ModalBottomSheet
,BackdropScaffold
e il riquadro in basso standard sono stati promossi ad API stabili.
Versione 1.7.0-rc01
21 agosto 2024
androidx.compose.material:material-*:1.7.0-rc01
viene rilasciato. La versione 1.7.0-rc01 contiene questi commit.
Versione 1.7.0-beta07
7 agosto 2024
androidx.compose.material:material-*:1.7.0-beta07
viene rilasciato. La versione 1.7.0-beta07 contiene questi commit.
Versione 1.7.0-beta06
24 luglio 2024
androidx.compose.material:material-*:1.7.0-beta06
viene rilasciato. La versione 1.7.0-beta06 contiene questi commit.
Versione 1.7.0-beta05
10 luglio 2024
androidx.compose.material:material-*:1.7.0-beta05
viene rilasciato. La versione 1.7.0-beta05 contiene questi commit.
Versione 1.7.0-beta04
26 giugno 2024
androidx.compose.material:material-*:1.7.0-beta04
viene rilasciato. La versione 1.7.0-beta04 contiene questi commit.
Versione 1.7.0-beta03
12 giugno 2024
androidx.compose.material:material-*:1.7.0-beta03
viene rilasciato. La versione 1.7.0-beta03 contiene questi commit.
Versione 1.7.0-beta02
29 maggio 2024
androidx.compose.material:material-*:1.7.0-beta02
viene rilasciato. La versione 1.7.0-beta02 contiene questi commit.
Modifiche all'API
- Aggiornamento dell'API per lo stile dei link: spostato
TextLinkStyles
inTextStyle
e rimossoTextDefaults
da Material (I5477b)
Versione 1.7.0-beta01
14 maggio 2024
androidx.compose.material:material-*:1.7.0-beta01
viene rilasciato. La versione 1.7.0-beta01 contiene questi commit.
Modifiche all'API
- L'API per ottenere link con temi Material in Testo è stata aggiornata. Nello specifico, sono stati rimossi i metodi dal
TextDefaults
per la costruzione diLinkAnnotations
a tema e l'analisi del codice HTML con link a tema. È stata invece aggiunta una classeTextLinkStyles
che consente di applicare uno stile ai link come parametro al composable di testo. (I31b93)
Versione 1.7.0-alpha08
1° maggio 2024
androidx.compose.material:material-*:1.7.0-alpha08
viene rilasciato. La versione 1.7.0-alpha08 contiene questi commit.
Modifiche all'API
- Correggi il problema relativo all'applicazione di
backgroundColor
aTextFieldDecorationBox
eOutlinedTextFieldDecorationBox
. Le caselle decorative ora accettano un parametroshape
. (I371c2, b/307694651) RippleConfiguration#isEnabled
è stato rimosso eLocalRippleConfiguration
è stato impostato come non obbligatorio. Per disattivare un'eco, anziché fornire unRippleConfiguration
conisEnabled = false
, forniscinull
aLocalRippleConfiguration
. (I22725)- I link di testo hanno un'opzione di stile per lo stato premuto, oltre agli stili normali, con il mouse sopra e attivo. I metodi
TextDefaults
hanno ciascuno un argomentopressedStyle
per supportarlo. (Ic473f, b/139312671)
Correzioni di bug
OutlinedTextField
Il padding superiore per l'etichetta ora tiene conto delle dimensioni dei caratteri di sistema. (Idc781)
Versione 1.7.0-alpha07
17 aprile 2024
androidx.compose.material:material-*:1.7.0-alpha07
viene rilasciato. La versione 1.7.0-alpha07 contiene questi commit.
Modifiche all'API
- I link di testo hanno ricevuto l'opzione di stile per lo stato premuto, oltre allo stile normale, al passaggio del mouse e allo stato attivo. (I5f864, b/139312671)
- È stato aggiunto un oggetto
TextDefaults
contenente metodi per creare unLinkAnnotation
e analizzare la stringa con tag HTML che applicaMaterialTheme
ai link. (I98532, b/139312671)
Versione 1.7.0-alpha06
3 aprile 2024
androidx.compose.material:material-*:1.7.0-alpha06
viene rilasciato. La versione 1.7.0-alpha06 contiene questi commit.
Annuncio
androidx.compose.material
non richiede più l'utilizzo della stessa versione di ogni elemento in questo gruppo Maven. Gli utenti possono combinare le versioni delle librerie di base di Compose (Ie5fba)
Modifiche all'API
- Sono stati spostati altri valori predefiniti di
ModalDrawer
eBottomDrawer
nell'oggettoDrawerDefaults
. (Ib5b2e)
Versione 1.7.0-alpha05
20 marzo 2024
androidx.compose.material:material-*:1.7.0-alpha05
viene rilasciato. La versione 1.7.0-alpha05 contiene questi commit.
Modifiche all'API
- L'indicatore
ScaffoldSubcomposeInMeasureFix
è stato rimosso. (I67363)
Versione 1.7.0-alpha04
6 marzo 2024
androidx.compose.material:material-*:1.7.0-alpha04
viene rilasciato. La versione 1.7.0-alpha04 contiene questi commit.
Nuove funzionalità
- È stato aggiunto un nuovo elemento
androidx.compose.material:material-navigation
che supporta i fogli inferiori come destinazioni quando si utilizza Navigation Compose. Sostituisce la libreria di materiale di navigazione per l'accompagnatore. (d65d57, b/180247978)
Versione 1.7.0-alpha03
21 febbraio 2024
androidx.compose.material:material-*:1.7.0-alpha03
viene rilasciato. La versione 1.7.0-alpha03 contiene questi commit.
Modifiche all'API
BottomDrawer
è stato promosso da sperimentale a stabile.BottomDrawerState
ora espone l'avanzamento come funzione, consentendo di eseguire query sull'avanzamento tra target specifici.BottomDrawerState
ora consente di personalizzare la specifica dell'animazione econfirmStateChange
non è più un lambda finale. (I9c029, b/261423850)BackdropScaffold
è stato promosso da sperimentale a stabile. La specifica dell'animazione ora è una specificatween
in conformità con le linee guida. Il parametrosnackbarHost
diBackdropScaffold
non è più l'ultimo parametro per evitare confusione con le lambda finali.BackdropScaffoldState
espone un'APIprogress(from, to)
per eseguire query sull'avanzamento tra le ancore. (I73f48, b/261423218)- I fogli inferiori standard sono stati promossi da sperimentali a stabili. I costruttori deprecati sono stati rimossi. La specifica dell'animazione ora è una specifica di tween in conformità con 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. La specifica dell'animazione ora è una specifica
tween
in conformità con le linee guida. (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) - È stata rimossa la composizione secondaria 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) - È stata rimossa la composizione secondaria all'interno di
ModalBottomSheetLayout
, migliorando le prestazioni. (I7a025)
Versione 1.7.0-alpha02
7 febbraio 2024
androidx.compose.material:material-*:1.7.0-alpha02
viene rilasciato. La versione 1.7.0-alpha02 contiene questi commit.
Versione 1.7.0-alpha01
24 gennaio 2024
androidx.compose.material:material-*:1.7.0-alpha01
viene rilasciato. La versione 1.7.0-alpha01 contiene questi commit.
Modifiche al comportamento
- È stata eseguita la migrazione dei componenti Material per utilizzare le nuove API di ripple e non eseguono più query su
RippleTheme
.
Modifiche all'API
rememberRipple
eRippleTheme
sono stati ritirati da material-ripple, con nuove API ripple eRippleConfiguration
aggiunte alle librerie Material e di altri sistemi di design.I componenti Material che in precedenza accettavano un
MutableInteractionSource
e avevano come valore predefinito remember{ MutableInteractionSource() }
ora accettano unMutableInteractionSource
nullable e hanno come valore predefinito null. Se non esegui l'elevazione e non utilizziMutableInteractionSource
, devi passare null. In questo modo, alcuni componenti possono creare un'istanza in modo lazy solo quando necessario, migliorando le prestazioni. Ti consigliamo inoltre di apportare modifiche simili nei tuoi componenti.
Versione 1.6
Versione 1.6.8
12 giugno 2024
androidx.compose.material:material-*:1.6.8
viene rilasciato. La versione 1.6.8 contiene questi commit.
Versione 1.6.7
1° maggio 2024
androidx.compose.material:material-*:1.6.7
viene rilasciato. La versione 1.6.7 contiene questi commit.
Versione 1.6.6
17 aprile 2024
androidx.compose.material:material-*:1.6.6
viene rilasciato. Nessuna modifica dall'ultima release.
Versione 1.6.5
3 aprile 2024
androidx.compose.material:material-*:1.6.5
viene rilasciato. La versione 1.6.5 contiene questi commit.
Versione 1.6.4
20 marzo 2024
androidx.compose.material:material-*:1.6.4
viene rilasciato. La versione 1.6.4 contiene questi commit.
Versione 1.6.3
6 marzo 2024
androidx.compose.material:material-*:1.6.3
viene rilasciato. La versione 1.6.3 contiene questi commit.
Correzioni di bug
- Correggi la regressione in
ExposedDropdownMenu
per renderlo di nuovo selezionabile. (c0e0ed, b/323694447)
Versione 1.6.2
21 febbraio 2024
androidx.compose.material:material-*:1.6.2
viene rilasciato. La versione 1.6.2 contiene questi commit.
Versione 1.6.1
7 febbraio 2024
androidx.compose.material:material-*:1.6.1
viene rilasciato. La versione 1.6.1 contiene questi commit.
Versione 1.6.0
24 gennaio 2024
androidx.compose.material:material-*:1.6.0
viene rilasciato. La versione 1.6.0 contiene questi commit.
Versione 1.6.0-rc01
10 gennaio 2024
androidx.compose.material:material-*:1.6.0-rc01
viene rilasciato. La versione 1.6.0-rc01 contiene questi commit.
Versione 1.6.0-beta03
13 dicembre 2023
androidx.compose.material:material-*:1.6.0-beta03
viene rilasciato. La versione 1.6.0-beta03 contiene questi commit.
Versione 1.6.0-beta02
29 novembre 2023
androidx.compose.material:material-*:1.6.0-beta02
viene rilasciato. La versione 1.6.0-beta02 contiene questi commit.
Versione 1.6.0-beta01
15 novembre 2023
androidx.compose.material:material-*:1.6.0-beta01
viene rilasciato. La versione 1.6.0-beta01 contiene questi commit.
Versione 1.6.0-alpha08
18 ottobre 2023
androidx.compose.material:material-*:1.6.0-alpha08
viene rilasciato. La versione 1.6.0-alpha08 contiene questi commit.
Modifiche all'API
- Ritira una funzione
materialIcon
a 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
androidx.compose.material:material-*:1.6.0-alpha07
viene rilasciato. La versione 1.6.0-alpha07 contiene questi commit.
- Aggiornamenti delle dipendenze
Versione 1.6.0-alpha06
20 settembre 2023
androidx.compose.material:material-*:1.6.0-alpha06
viene rilasciato. La versione 1.6.0-alpha06 contiene questi commit.
Modifica che comporta un cambiamento nel comportamento
- La funzionalità relativa al riquadro è stata rimossa da
BottomSheetScaffold
. InserisciBottomSheetScaffold
in un componente componibile Drawer per ottenere la funzionalità precedente. Per un esempio, vediBottomSheetScaffoldWithDrawerSample
. (I1dcc8)
Modifiche all'API
- È stato introdotto un flag temporaneo per controllare se Scaffold deve misurare i relativi elementi secondari durante la misurazione o il posizionamento. Per impostazione predefinita, la misurazione viene eseguita in misurazione. Se riscontri problemi con il nuovo comportamento, segnala un problema. (If6e3b)
Versione 1.6.0-alpha05
6 settembre 2023
androidx.compose.material:material-*:1.6.0-alpha05
viene rilasciato. La versione 1.6.0-alpha05 contiene questi commit.
Nuove funzionalità
- È stato aggiunto il supporto per le icone con mirroring automatico quando vengono visualizzate in layout da destra a sinistra. Le icone nei moduli material-icons-core e material-icons-extended ora forniscono set di icone aggiuntivi per supportare il mirroring automatico quando l'icona lo consente. I nuovi set hanno il prefisso
Icons.AutoMirrored.Filled...
e così via e contengono icone che vengono specchiate automaticamente nei layout RTL. Consulta l'elenco delle icone Material per l'elenco delle icone che possono (e devono) essere specchiate automaticamente.
Modifiche all'API
- È stato aggiunto il supporto per le icone con mirroring automatico quando vengono visualizzate in layout da destra a sinistra. Le icone nei moduli material-icons-core e material-icons-extended ora forniscono set di icone aggiuntivi per supportare il mirroring automatico quando l'icona lo consente. I nuovi set hanno il prefisso
Icons.AutoMirrored.Filled...
e così via e contengono icone che vengono specchiate automaticamente nei layout RTL. Consulta l'elenco delle icone Material per l'elenco delle icone che possono (e devono) essere specchiate automaticamente. Le proprietà delle icone fornite in precedenza per queste icone sono ora contrassegnate come deprecate e viene fornito un suggerimento per il blocco di sostituzione per facilitare la migrazione. Se non hai una gestione speciale per le icone specchiate in RTL, ti consigliamo di eseguire la migrazione al nuovo set di icone. Ad esempio,Icons.Filled.ArrowBack
deve essere sottoposto a refactoring inIcons.AutoMirrored.Filled.ArrowBack
. (I4b511)
Versione 1.6.0-alpha04
23 agosto 2023
androidx.compose.material:material-*:1.6.0-alpha04
viene rilasciato. 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 Scaffold all'interno di unLookaheadScope
tentavano di leggere le dimensioni troppo presto. (If2c5d) - È stato corretto il calcolo di
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. (Iccc74, b/294103942) - Sono stati ottimizzati gli elementi interni del layout di
BottomSheetScaffold
ed è stato risolto un potenziale problema conBottomSheetScaffold
all'interno di unLookaheadLayout
. (Ic0afa)
Versione 1.6.0-alpha03
9 agosto 2023
androidx.compose.material:material-*:1.6.0-alpha03
viene rilasciato. La versione 1.6.0-alpha03 contiene questi commit.
Modifiche all'API
- I componenti Material2 ora hanno un'API separata per passare
windowInsets
al fine di supportare la 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 informazioni, consulta i sample corrispondenti. (I655e8)
Versione 1.6.0-alpha02
26 luglio 2023
androidx.compose.material:material-*:1.6.0-alpha02
viene rilasciato. La versione 1.6.0-alpha02 contiene questi commit.
Modifiche all'API
- Stiamo spostando la dipendenza dalla densità a livello di componente. Questo vale per i seguenti componenti:
SwipeToDismiss
e componenti basati su fogli. Utilizza la nuova sovraccarica fornita in cui la densità è un parametro. (I1846e) - Annotazioni aggiuntive per specificare gli input consentiti per i composabili (I51109)
- File API aggiornati per annotare la soppressione della compatibilità (I8e87a, b/287516207)
- È stato aggiunto un nuovo allineamento di inizio per
FabPosition
(Ib7aea, b/170592777) TextFieldColorsWithIcons
nel Materiale 2 è stato deprecato in favore diTextFieldColors
. Quando sostituiscileadingIconColor
otrailingIconColor
, sostituisci anche il sovraccarico coninteractionSource
. (Id57ed, b/199377790)
Versione 1.6.0-alpha01
21 giu 2023
androidx.compose.material:material-*:1.6.0-alpha01
viene rilasciato. La versione 1.6.0-alpha01 contiene questi commit.
Modifiche al comportamento
includeFontPadding
ora èfalse
per impostazione predefinita nella tipografia Material 2. Anche lo stile dell'altezza della riga predefinito è stato modificato inTrim.None
eAlignment.Center
e sono stati aggiuntilineHeight
espliciti (in sp) aiTextStyle
diTypography
. Consulta la documentazione dell'API se vuoi personalizzare questi valori e leggi il post del blog per una spiegazione dettagliata di queste modifiche. (Icabc3, I3f801, I04c03)
Modifiche all'API
- Le API
Swipeable
di Material sono state ritirate. Fai riferimento alle APIAnchoredDraggable
di Foundation, ottimizzate per casi d'uso sia semplici che complessi. (I732e0)
Correzioni di bug
BottomSheetState
,ModalBottomSheetState
eBottomDrawerState
ora espongono una proprietà di avanzamento che indica l'avanzamento tra l'ancora corrente (stabilizzata) e l'ancora più vicina nella direzione dello scorrimento. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
Versione 1.5
Versione 1.5.4
18 ottobre 2023
androidx.compose.material:material-*:1.5.4
viene rilasciato. La versione 1.5.4 contiene questi commit.
Versione 1.5.3
4 ottobre 2023
androidx.compose.material:material-*:1.5.3
viene rilasciato. Questa versione non presenta modifiche
Versione 1.5.2
27 settembre 2023
androidx.compose.material:material-*:1.5.2
viene rilasciato. 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
androidx.compose.material:material-*:1.5.0
viene rilasciato. La versione 1.5.0 contiene questi commit.
Modifiche importanti dalla versione 1.4.0
Modifiche all'API
- Sono state incorporate modifiche nelle API Swipeable1 in
BottomSheetScaffold
. Il parametroconfirmStateChange
diBottomSheetState
è stato rinominatoconfirmValueChange
.progress
è ora visualizzato come valore in virgola mobile.animateTo
esnapTo
sono interni. Utilizza inveceexpand()
ecollapse()
.direction
eoverflow
sono stati rimossi.offset
è stato sostituito conrequireOffset()
. I323b4 - Contrassegna la funzione
snapTo
in Drawer come API non sperimentale. (Ib9c18, b/261425368) - È stato aggiunto un parametro di colore del tracciato per gli indicatori di avanzamento circolari e un parametro di tratto finale per gli indicatori di avanzamento circolari e lineari. (Ie668c, b/216325962, b/222964817)
confirmStateChange
diModalBottomSheetState
,ModalBottomSheetState.Saver
erememberModalBottomSheetState
è stato rinominato inconfirmValueChange
. (Ib48d1)- Aggiungi
Modifier.minimumInteractiveComponentSize
. Può essere utilizzato per riservare dimensioni di almeno 48 dp per distinguere le interazioni tocco se l'elemento è più piccolo. (I33f58, b/258495559) - Le modifiche alle API Swipeable sono state incorporate in
ModalBottomSheetLayout
. La funzione animateTo diModalBottomSheetState
non accetta più un parametroanimationSpec
e l'offset esposto ora è nullable. UsarequireOffset
per richiedere l'offset. (Ia2e79) - Aggiunta di un'annotazione
@JvmDefaultWithCompatibility
(I8f206) - Le modifiche incorporate nelle API Swipeable in
ModalDrawer. DrawerState
dianimateTo
sono state sostituite dai metodi open e close e l'offset ora è nullable. UsarequireOffset
per richiedere l'offset. (I3de9e) - È stato aggiornato il riquadro e i riquadri per posticipare correttamente le pressioni nel caso in cui i gesti possano diventare eventi di scorrimento.
- È stato aggiunto il parametro
minLines
in Material e Material3 Text,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 del movimento orizzontale eccessivo. È stata modificata anche la firma dell'API della lambdaonRelease
inModifier.pullRefresh
in modo da restituire un valore float per la velocità consumata (I7db65, b/266874741) BottomSheetState
,ModalBottomSheetState
eBottomDrawerState
ora espongono una proprietà di avanzamento che indica l'avanzamento tra l'ancora corrente (stabilizzata) e l'ancora più vicina nella direzione dello scorrimento. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)- È stato corretto l'errore relativo all'azione di chiusura
AlertDialog
che appariva sotto l'azione di conferma quando le azioni erano impilate una sopra l'altra per adattarsi alla 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
si arrestava in modo anomalo quando venivano forniti contenuti vuoti per gli slot. (Ib24a5, b/235588730) - Corregge i problemi di intercettazione degli eventi di clic/cursore
PullRefreshIndicator
. (2494256, b/271777421) - È stato risolto un problema per cui
ModalBottomSheetLayout
si arrestava in modo anomalo in un caso limite al cambio di orientamento. Le animazioni del layout (ad es.Modifier.animateContentSize
) nei contenuti del foglio ora funzionano senza problemi. (I2f981, b/266780234)
Versione 1.5.0-rc01
26 luglio 2023
androidx.compose.material:material-*:1.5.0-rc01
viene rilasciato. La versione 1.5.0-rc01 contiene questi commit.
Versione 1.5.0-beta03
28 giugno 2023
androidx.compose.material:material-*:1.5.0-beta03
viene rilasciato. La versione 1.5.0-beta03 contiene questi commit.
Correzioni di bug
BottomSheetState
,ModalBottomSheetState
eBottomDrawerState
ora espongono una proprietà di avanzamento che indica l'avanzamento tra l'ancora corrente (stabilizzata) e l'ancora più vicina nella direzione dello scorrimento. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
Versione 1.5.0-beta02
7 giugno 2023
androidx.compose.material:material-*:1.5.0-beta02
viene rilasciato. La versione 1.5.0-beta02 contiene questi commit.
Versione 1.5.0-beta01
24 maggio 2023
androidx.compose.material:material-*:1.5.0-beta01
viene rilasciato. La versione 1.5.0-beta01 contiene questi commit.
Modifiche all'API
- L'offset di
DrawerState
eBottomDrawerState
non è più nullable. Restituisce inveceFloat.NaN
per indicare l'assenza dell'offset. (Ie9855) - È stata aggiunta un'opzione per passare un
ScrollState
durante la creazione di unDropdownMenu
o unExposedDropdownMenu
per controllare lo stato di scorrimento verticale dei menu visualizzati. (Idb009, b/185304441) - Aggiungere il supporto per l'attivazione/la disattivazione del gesto
ModalBottomSheetLayout
in modo che l'utente possa configurarlo per un riquadro in basso più in primo piano (I40af0) - È stato aggiunto un parametro di colore a
BasicText
per consentire di animare o impostare il colore del testo in modo efficiente. (Iffd88, b/246961787) - Ridenominazione della proprietà Semantics da
isContainer
aisTraversalGroup
(I121f6)
Correzioni di bug
- È stato corretto l'errore relativo all'azione di chiusura
AlertDialog
che appariva sotto l'azione di conferma quando le azioni erano impilate una sopra l'altra per adattarsi alla 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
androidx.compose.material:material-*:1.5.0-alpha04
viene rilasciato. La versione 1.5.0-alpha04 contiene questi commit.
Modifiche all'API
- Stiamo spostando la dipendenza dalla densità a livello di componente. Questo vale per i seguenti componenti:
BottomDrawer
,ModalBottomSheetLayout
,BottomSheetScaffold
,Switch
,ModalDrawer
. Utilizza la nuova sovraccarica fornita in cui la densità è un parametro. (I8fbd8)
Versione 1.5.0-alpha03
19 aprile 2023
androidx.compose.material:material-*:1.5.0-alpha03
viene rilasciato. La versione 1.5.0-alpha03 contiene questi commit.
Modifiche all'API
- Aggiorna gli elementi 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
. Utilizziamo la composizione con unSwipeableV2State
interno. Ora Offset è una proprietà a virgola mobile con valori null, ma è comunque possibile accedere al valore corrente e a un valore target di scorrimento tramite le proprietà currentValue e targetValue. I metodi a livello di classe precedenti, come open/expand/close, e le proprietà comeisOpen/isClosed
continuano a essere supportati. (Iad40c, b/178529942, b/220676296)
Correzioni di bug
- Componenti interni del componente Switch aggiornati. Ora il pulsante mostrerà l'anteprima del valore più vicino (stato target) durante il trascinamento. (Id90d4)
- I contenuti animati del foglio (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
androidx.compose.material:material-*:1.5.0-alpha02
viene rilasciato. La versione 1.5.0-alpha02 contiene questi commit.
Correzioni di bug
- È stato corretto un bug per cui
BottomSheetScaffold
si arrestava in modo anomalo quando venivano forniti contenuti vuoti per gli slot. (Ib24a5, b/235588730) - Corregge i problemi relativi all'intercettazione di clic / eventi del cursore da parte di
PullRefreshIndicator
(2494256, b/271777421)
Versione 1.5.0-alpha01
22 marzo 2023
androidx.compose.material:material-*:1.5.0-alpha01
viene rilasciato. La versione 1.5.0-alpha01 contiene questi commit.
Correzioni di bug
- Aggiungi un esempio di ricollegamento del gruppo di chip. Aggiornare la spaziatura orizzontale tra i chip secondari nell'esempio di gruppo di chip 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 al cambio di orientamento. Le animazioni del layout (ad es.Modifier.animateContentSize
) nei contenuti del foglio ora 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 aggiornamento della versione).
Versione 1.4.2
19 aprile 2023
androidx.compose.material:material-*:1.4.2
viene rilasciato. La versione 1.4.2 contiene questi commit.
Versione 1.4.1
5 aprile 2023
androidx.compose.material:material-*:1.4.1
viene rilasciato. La versione 1.4.1 contiene questi commit.
Versione 1.4.0
22 marzo 2023
androidx.compose.material:material-*:1.4.0
viene rilasciato. La versione 1.4.0 contiene questi commit.
Modifiche importanti dalla versione 1.3.0
Modifiche all'API
- Aggiungi
Modifier.minimumInteractiveComponentSize
. Può essere utilizzato per riservare dimensioni di almeno 48 dp per distinguere le interazioni tocco se l'elemento è più piccolo. (I33f58, b/258495559) - Le modifiche alle API Swipeable sono state incorporate in
ModalDrawer
.animateTo
diDrawerState
è stato sostituito dai metodi open e close e l'offset ora è nullable. UsarequireOffset
per richiedere l'offset. (I3de9e) - È stato aggiunto il parametro
minLines
in Material e Material3 Text,TextField
eOutlinedTextField
che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d) - È stato aggiunto il parametro
minLines
aBasicText
eBasicTextField
. Consente di impostare l'altezza minima di questi composabili 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
androidx.compose.material:material-*:1.4.0-beta02
viene rilasciato. La versione 1.4.0-beta02 contiene questi commit.
Modifiche all'API
- Le modifiche alle API Swipeable sono state incorporate in
BottomSheetScaffold
. Il parametroconfirmStateChange
diBottomSheetState
è stato rinominatoconfirmValueChange
.progress
è ora visualizzato come valore in virgola mobile.animateTo
esnapTo
sono interni. Utilizza inveceexpand()
ecollapse()
.direction
eoverflow
sono stati rimossi.offset
è stato sostituito conrequireOffset()
. (I323b4)
Correzioni di bug
- Sono stati rimossi i ruoli semantici dalle aree cliccabili e selezionabili e sono stati aggiornati i componenti che li utilizzavano per impostare i ruoli utilizzando Modifier.semantics (Ibb4ba)
- Aggiornamento minore alle icone Materiale estese che modifica le icone riempite
desktop_mac
,directions
ekitchen
. (I65f5e)
Versione 1.4.0-beta01
8 febbraio 2023
androidx.compose.material:material-*:1.4.0-beta01
viene rilasciato. La versione 1.4.0-beta01 contiene questi commit.
Modifiche all'API
- È stato risolto un problema per cui
pullRefresh
non consumava la velocità, causando la visualizzazione del movimento orizzontale eccessivo. È stata modificata anche la firma dell'API della lambdaonRelease
inModifier.pullRefresh
in modo da restituire un valore float per la velocità consumata (I7db65, b/266874741) - Ripristina il getter della proprietà
LocalMinimuTouchTargetEnforcement
, contrassegnalo come deprecato e reindirizza aLocalMinimumInteractiveComponentEnforcement
. (I60dd5)
Versione 1.4.0-alpha05
25 gennaio 2023
androidx.compose.material:material-*:1.4.0-alpha05
viene rilasciato. La versione 1.4.0-alpha05 contiene questi commit.
Correzioni di bug
- Risolto un problema per cui lo stato
ModalBottomSheetLayout's HalfExpanded
veniva calcolato in modo errato e il foglio sembrava galleggiare. (I8c615, b/265610459) - È stato corretto un bug in
ModalBottomSheetLayout
per cui il foglio si arrestava in modo anomalo quando passava dallo stato nascosto a uno visibile in alcune circostanze. (Ia9265, b/265444789)
Versione 1.4.0-alpha04
11 gennaio 2023
androidx.compose.material:material-*:1.4.0-alpha04
viene rilasciato. La versione 1.4.0-alpha04 contiene questi commit.
Modifiche all'API
- Aggiunta nella proprietà di semantica
IsContainer
su Surfaces. Questa proprietà verrà utilizzata in una modifica successiva che determina l'ordine di attraversamento in base al significato semantico di elementi come le piattaforme. (I63379) - Contrassegna la funzione
snapTo
in Drawer come API non sperimentale. (Ib9c18, b/261425368) - È stato aggiunto un parametro di colore del tracciato per gli indicatori di avanzamento circolari e un parametro di tratto finale per gli indicatori di avanzamento circolari e lineari. (Ie668c, b/216325962, b/222964817)
confirmStateChange
diModalBottomSheetState
,ModalBottomSheetState.Saver
erememberModalBottomSheetState
è stato rinominato inconfirmValueChange
. (Ib48d1)- Maggiore nullabilità del tipo di ritorno delle funzioni nascoste ritirate (Ibf7b0)
- Aggiungi
Modifier.minimumInteractiveComponentSize
. Può essere utilizzato per riservare dimensioni di almeno 48 dp per distinguere le interazioni tocco se l'elemento è più piccolo. (I33f58, b/258495559) - Le modifiche alle API Swipeable sono state incorporate in
ModalBottomSheetLayout
.animateTo
diModalBottomSheetState
non accetta più un parametroanimationSpec
e l'offset
esposto ora è nullable. UtilizzarequireOffset
per richiedereoffset
. (Ia2e79)
Correzioni di bug
- Ora il foglio di un
ModalBottomSheetLayout
ha una larghezza massima di 640 dp. (I71a4f, b/234927577) - È stato risolto un problema per cui
rememberPullRefreshState
non aggiornavarefreshThreshold
erefreshingOffset
nel tempo. (Ifed10, b/263159832) - L'avanzamento per gli indicatori di avanzamento ora è correttamente limitato all'intervallo previsto. (I8a7eb, b/262262727)
- Quando
ModalBottomSheetState
non ha ancora ricevuto ancore, aggiornacurrentValue
senza un'animazione quando vengono chiamatisnapTo
oanimateTo
anziché generare un'eccezione. (I2c91b) - È stato corretto lo stato di attivazione nell'implementazione di Material 2
FilterChip
. (Id326a, b/261329817) - È stato corretto un bug per cui
ModalBottomSheetLayout
si arrestava in modo anomalo se eraHalfExpanded
durante la rotazione da verticale a orizzontale. Assicurati di passare 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 contenuti vuoti del foglio. Se i contenuti del foglio sono vuoti, avrà solo lo stato Nascosto. (Ic2288, b/200980998, b/216693030)
Problema noto
- Quando esegui l'aggiornamento da
androidx.compose.foundation:1.4.0-alpha03
aandroidx.compose.foundation:1.4.0-alpha04
, potresti riscontrare un errorejava.lang.NoSuchFieldError
. Qui è dove è stato segnalato il problema per la prima volta. È stata inviata una correzione che sarà disponibile nel prossimo aggiornamento di Scrivi. Come soluzione alternativa, aggiorna le librerieandroidx.compose.material
eandroidx.compose.material3
all'ultima versione(1.1.0-alpha04) o esegui il downgrade diandroidx.compose.foundation
alla versione 1.4.0-alpha03.
Versione 1.4.0-alpha03
7 dicembre 2022
androidx.compose.material:material-*:1.4.0-alpha03
viene rilasciato. La versione 1.4.0-alpha03 contiene questi commit.
Modifiche all'API
- Aggiunta di un'annotazione
@JvmDefaultWithCompatibility
(I8f206) - Sono state incorporate modifiche nelle API
Swipeable
inModalDrawer
.animateTo
diDrawerState
è stato sostituito dai metodiopen
eclose
e l'offset ora è nullable. UsarequireOffset
per richiedere l'offset. (I3de9e) - È stata aggiunta un'API Modifier per eseguire query sulle informazioni di scorrimento degli antenati. (I2ba9d, b/203141462)
- Utilizzato in
Clickable
per ritardare correttamente le interazioni con i tasti, quando i gesti potrebbero diventare eventi di scorrimento. - È stato corretto il problema per cui
Clickables
non ritardava correttamente le increspature quando veniva utilizzato all'interno di unScrollable ViewGroup
. - È stato aggiornato il riquadro e i riquadri per posticipare 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 l'istruzioneonRefresh
, se lo stato di aggiornamento non veniva modificato in true. (Ie2416, b/248274004)
Aggiornamenti delle dipendenze
- Compose UI e Compose Material ora dipendono da Lifecycle 2.5.1. (I05ab0, b/258038814)
Versione 1.4.0-alpha02
9 novembre 2022
androidx.compose.material:material-*:1.4.0-alpha02
viene rilasciato. La versione 1.4.0-alpha02 contiene questi commit.
Modifiche all'API
awaitFirstDown
ewaitForUpOrCancellation
ora accettano unPointerEventPass
per una maggiore flessibilità. (I7579a, b/212091796)- È stato aggiunto il parametro
minLines
in Material e Material3 Text,TextField
eOutlinedTextField
che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d) - È stato aggiunto il parametro
minLines
aBasicTex
eBasicTextField
. Consente di impostare l'altezza minima di questi composabili in termini di numero di righe (I24294, b/122476634)
Versione 1.4.0-alpha01
24 ottobre 2022
androidx.compose.material:material-*:1.4.0-alpha01
viene rilasciato. La versione 1.4.0-alpha01 contiene questi commit.
Modifiche all'API
- È stato aggiunto un nuovo metodo,
awaitEachGesture()
, per i rilevatori di gesti. Funziona in modo simile aforEachGesture()
, ma il ciclo dei gesti opera interamente all'interno diAwaitPointerEventScope
, quindi gli eventi non possono essere persi tra le iterazioni. forEachGesture()
è stato ritirato a favore diawaitEachGesture()
perché consente la perdita di eventi tra un gesto e l'altro. (Iffc3f, b/251260206)
Versione 1.3
Versione 1.3.1
9 novembre 2022
androidx.compose.material:material-*:1.3.1
viene rilasciato. La versione 1.3.1 contiene questi commit.
Versione 1.3.0
24 ottobre 2022
androidx.compose.material:material-*:1.3.0
viene rilasciato. La versione 1.3.0 contiene questi commit.
Modifiche importanti dalla versione 1.2.0
Modifica che comporta una rottura del comportamento
- L'elevazione massima supportata nelle finestre di dialogo e nei popup è stata ridotta a 8 dp.
Modifiche all'API
- Aggiungi un componente Aggiorna tirando a Compose (I29168).
- Modifica il nome del parametro da values a value in RangeSlider (I3b79a).
Versione 1.3.0-rc01
5 ottobre 2022
androidx.compose.material:material-*:1.3.0-rc01
viene rilasciato. La versione 1.3.0-rc01 contiene questi commit.
Versione 1.3.0-beta03
21 settembre 2022
androidx.compose.material:material-*:1.3.0-beta03
viene rilasciato. La versione 1.3.0-beta03 contiene questi commit.
Modifiche all'API
- Aggiungere un componente di aggiornamento a scorrimento a Componi (I29168)
Versione 1.3.0-beta02
7 settembre 2022
androidx.compose.material:material-*:1.3.0-beta02
viene rilasciato. 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
androidx.compose.material:material-*:1.3.0-beta01
viene rilasciato. La versione 1.3.0-beta01 contiene questi commit.
Modifica che comporta una rottura del comportamento
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 popup di Scrittura è stata ridotta da 30 dp a 8 dp. Questa modifica interessa sia le finestre di dialogo e popup personalizzate Material sia quelle ui. Questa modifica è stata apportata per attenuare un bug di accessibilità nelle versioni di Android precedenti a 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 una finestra di dialogo o di un popup personalizzato 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 disattivare questo nuovo comportamento, ti consigliamo di creare una copia della finestra di dialogo o del popup con l'elevazione impostata. Questa operazione non è consigliata, in quanto l'accessibilità potrebbe essere influenzata negativamente e lo sviluppatore deve assicurarsi 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
androidx.compose.material:material-*:1.3.0-alpha03
viene rilasciato. La versione 1.3.0-alpha03 contiene questi commit.
Versione 1.3.0-alpha02
27 luglio 2022
androidx.compose.material:material-*:1.3.0-alpha02
viene rilasciato. La versione 1.3.0-alpha02 contiene questi commit.
Contributo esterno
- Risolvere il problema
AnimatedVisibility
relativo aFloatingActionButton
in Scaffold (I3a0ae, b/224005027)
Versione 1.3.0-alpha01
29 giugno 2022
androidx.compose.material:material-*:1.3.0-alpha01
viene rilasciato. La versione 1.3.0-alpha01 contiene questi commit.
Modifiche all'API
- Modifica il nome del parametro da values a value in
RangeSlider
(I3b79a)
Correzioni di bug
- Aggiorna il Sample badge per fornire una descrizione dei contenuti più significativa. (I10b9d)
Versione 1.2
Versione 1.2.1
10 agosto 2022
androidx.compose.material:material-*:1.2.1
viene rilasciato. La versione 1.2.1 contiene questi commit.
Versione 1.2.0
27 luglio 2022
androidx.compose.material:material-*:1.2.0
viene rilasciato. La versione 1.2.0 contiene questi commit.
Versione 1.2.0-rc03
29 giugno 2022
androidx.compose.material:material-*:1.2.0-rc03
viene rilasciato. 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
androidx.compose.material:material-*:1.2.0-rc02
viene rilasciato. La versione 1.2.0-rc02 contiene questi commit.
Versione 1.2.0-rc01
15 giugno 2022
androidx.compose.material:material-*:1.2.0-rc01
viene rilasciato. La versione 1.2.0-rc01 contiene questi commit.
Modifiche all'API
- Le interfacce nelle librerie di composizione ora vengono create utilizzando i metodi di interfaccia predefiniti di JDK8 (I5bcf1)
Correzioni di bug
- Aggiorna il badge con la scheda dell'icona iniziale per applicarlo all'etichetta anziché all'icona. (I90993)
Versione 1.2.0-beta03
1° giugno 2022
androidx.compose.material:material-*:1.2.0-beta03
viene rilasciato. La versione 1.2.0-beta03 contiene questi commit.
Correzioni di bug
- È stato corretto un bug per cui
BottomSheetScaffold
veniva visualizzato sopra l'ombra della barra delle app superiore.BottomSheetScaffold
ora prende in considerazione anche lo stato del foglio quando posiziona le barre di app. Nello stato compresso, le barre di app vengono posizionate sopra il foglio e il pulsante flottante; nello stato espanso, le barre di app vengono ancorate alla parte inferiore del foglio. (Ia80b5, b/187771422)
Versione 1.2.0-beta02
18 maggio 2022
androidx.compose.material:material-*:1.2.0-beta02
viene rilasciato. La versione 1.2.0-beta02 contiene questi commit.
Versione 1.2.0-beta01
11 maggio 2022
androidx.compose.material:material-*:1.2.0-beta01
viene rilasciato. La versione 1.2.0-beta01 contiene questi commit.
Nuove funzionalità
- Questa è la prima release beta di 1.2.
Modifiche all'API
- Il composable
TextFieldDefaults.BorderStroke
che disegna un tratto del bordo inOutlinedTextField
è stato rinominato inTextFieldDefaults.BorderBox
. (I5f295)
Versione 1.2.0-alpha08
20 aprile 2022
androidx.compose.material:material-*:1.2.0-alpha08
viene rilasciato. La versione 1.2.0-alpha08 contiene questi commit.
Modifiche all'API
- Il consumo parziale (posizione OR verso il basso) è stato ritirato in
PointerInputChange
. Puoi utilizzareconsume()
per consumare completamente la modifica. Puoi utilizzareisConsumed
per determinare se qualcun altro ha già utilizzato la modifica. PointerInputChange::copy()
ora crea sempre una copia superficiale. Ciò significa che le copie diPointerInputChange
verranno consumate una volta consumata una delle copie. Se vuoi creare unPointerInputChange
non vincolato, utilizza il costruttore. (Ie6be4, b/225669674)
Versione 1.2.0-alpha07
6 aprile 2022
androidx.compose.material:material-*:1.2.0-alpha07
viene rilasciato. La versione 1.2.0-alpha07 contiene questi commit.
Versione 1.2.0-alpha06
23 marzo 2022
androidx.compose.material:material-*:1.2.0-alpha06
viene rilasciato. La versione 1.2.0-alpha06 contiene questi commit.
Modifiche all'API
- Aggiornamenti all'API Card cliccabile per seguire le modifiche all'API Surface (I56bcb)
- Aggiornamenti all'API Material 2 Surface che aggiungono ulteriori funzioni sovraccaricate per le superfici selezionabili e attivabili/disattivabili. (Ifcca5)
Versione 1.2.0-alpha05
9 marzo 2022
androidx.compose.material:material-*:1.2.0-alpha05
viene rilasciato. La versione 1.2.0-alpha05 contiene questi commit.
Modifiche all'API
LazyVerticalGrid
eLazyHorizontalGrid
ora sono stabili. (I307c0)LazyVerticalGrid/LazyHorizontalGrid
e tutte le API correlate sono state spostate nel sottopacchetto .grid. Aggiorna le importazioni da androidx.compose.foundation.lazy a androidx.compose.foundation.lazy.grid. (I2d446, b/219942574)- È stata ripristinata la modifica precedente che si basava esclusivamente su una visualizzazione per
WindowInsetsControllerCompat
e di nuovo è richiesta una finestra, obbligatoria per la gestione di alcuni flag della finestra. È stata ritirata la funzionalitàViewCompat.getWindowInsetsController
a favore diWindowCompat.getInsetsController
per garantire che venga utilizzata la finestra corretta (ad esempio se la visualizzazione si trova in una finestra di dialogo). (I660ae, b/219572936) - Testo:
includeFontPadding
è ora disattivato per impostazione predefinita. I problemi di ritaglio dovuti aincludeFontPadding=false
vengono gestiti e non dovrebbe verificarsi alcun ritaglio per gli script alti. (I31c84, b/171394808) - È stata aggiunta una nuova API
LazyVerticalGrid
per definire le dimensioni delle assi trasversali (I17723)
Versione 1.2.0-alpha04
23 febbraio 2022
androidx.compose.material:material-*:1.2.0-alpha04
viene rilasciato. La versione 1.2.0-alpha04 contiene questi commit.
Modifiche all'API
Add support for filter chips
(I39a6e, b/192585545)- Sono stati aggiunti
TextFieldDecorationBox
eOutlinedTextFieldDecorationBox
. Se li utilizzi insieme aBasicTextField
puoi creare un campo di testo personalizzato basato sui campi di testo di Material Design, ma con più opzioni di personalizzazione. - È stato fornito un modo per regolare i margini orizzontali e verticali nei campi di testo. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/168003617)
Sono stati aggiunti
ComposableTarget
,ComposableTargetMarker
eComposableOpenTarget
che consentono di generare report in fase di compilazione quando viene chiamata una funzione componibile che ha come target un applicatore per il quale non è stata progettata.Nella maggior parte dei casi, le annotazioni possono essere dedotte dal plug-in del compilatore di compose, pertanto l'utilizzo diretto di queste annotazioni dovrebbe essere raro . I casi che non possono essere dedotti includono la creazione e l'utilizzo di un applicatore personalizzato, funzioni composable astratte (come metodi di interface), campi o variabili globali che sono lambda composable (le variabili e i parametri locali vengono dedotti), o quando si utilizza
ComposeNode
o una funzione composable correlata.Per gli applicatori personalizzati, le funzioni composable che chiamano
ComposeNode
oReusableComposeNode
devono aggiungere un'annotazioneCompoableTarget
per la funzione e per eventuali tipi di parametri lambda composable. Tuttavia, è consigliabile creare un'annotazione annotata conComposableTargetMarker
e poi utilizzare l'annotazione contrassegnata anzichéComposableTarget
direttamente. Un'annotazione componibile contrassegnata conComposableTargetMarker
è equivalente a unComposbleTarget
con il nome completo della classe dell'attributo come parametro dell'applicatore. Per un esempio di utilizzo diComposableTargetMarker
, consultaanroidx.compose.ui.UiComposable
. (I38f11)
Versione 1.2.0-alpha03
9 febbraio 2022
androidx.compose.material:material-*:1.2.0-alpha03
viene rilasciato. La versione 1.2.0-alpha03 contiene questi commit.
Correzioni di bug
- Aggiunge un esempio di gruppo di chip (I97080, b/192585545)
Versione 1.2.0-alpha02
26 gennaio 2022
androidx.compose.material:material-*:1.2.0-alpha02
viene rilasciato. La versione 1.2.0-alpha02 contiene questi commit.
Modifiche all'API
- È stato aggiunto
NonRestartableComposable
ai metodi che sono sovraccarichi di metodi esistenti senza logica complessa. In questo modo, vengono ridotti i controlli di memorizzazione (uguale) generati dal compilatore per tutti i parametri che vengono ripetuti nella funzione interna chiamata. (I90490) - Aggiunta del supporto per il chip di azioni (I07100, b/192585545)
Versione 1.2.0-alpha01
12 gennaio 2022
androidx.compose.material:material-*:1.2.0-alpha01
viene rilasciato. La versione 1.2.0-alpha01 contiene questi commit.
Aggiornamenti delle dipendenze
- Ora dipende da Kotlin
1.6.10
.
Contributo esterno
ModalBottomSheetState
ora ha un flagisSkipHalfExpanded
. Può essere impostato tramite il costruttore o aggiornato in un secondo momento impostando la proprietàisSkipHalfExpanded
diModalBottomSheetState
sutrue
. L'aggiornamento del valore diisSkipHalfExpanded
provoca una ricostituzione del foglio. (I18b86, b/186669820)
Versione 1.1
Versione 1.1.1
23 febbraio 2022
androidx.compose.material:material-*:1.1.1
viene rilasciato. La versione 1.1.1 contiene questi commit.
Correzioni di bug
- Correggi
NullPointerException
il giornoandroidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
(aosp/1947059, b/206677462) - È stato risolto l'arresto anomalo causato dai contenuti degli appunti durante la lettura dagli appunti su Android. (I06020, b/197769306)
- È stato corretto il problema relativo alla formattazione RTL in
LazyVerticalGrid
(aosp/1931080, b/207510535)
Versione 1.1.0
9 febbraio 2022
androidx.compose.material:material-*:1.1.0
viene rilasciato. La versione 1.1.0 contiene questi commit.
Modifiche importanti dalla versione 1.0.0
- Supporto stabile per l'effetto overscroll di Android 12
- Miglioramenti alle dimensioni dei target di tocco
- Tieni presente che, rispetto a Compose 1.0, i componenti Material espanderanno lo spazio del layout per soddisfare le linee guida sull'accessibilità di Material per le dimensioni del touch target. Ad esempio, il touch target del pulsante verrà espanso fino a una dimensione minima di 48 x 48 dp, anche se imposti dimensioni inferiori per il pulsante. In questo modo, Compose Material si allinea allo stesso comportamento dei componenti di Material Design, garantendo un comportamento coerente se combini le viste e Compose. Questa modifica garantisce inoltre che, quando crei l'interfaccia utente utilizzando i componenti Material di Compose, vengano soddisfatti i requisiti minimi per l'accessibilità dei touch target.
- Supporto stabile per la barra di spostamento
- Passa a una versione stabile un certo numero di API precedentemente sperimentali
- Supporto per le versioni più recenti di Kotlin
Versione 1.1.0-rc03
26 gennaio 2022
androidx.compose.material:material-*:1.1.0-rc03
viene rilasciato. La versione 1.1.0-rc03 contiene questi commit.
Modifiche al comportamento
Tieni presente che, rispetto a Compose 1.0, i componenti Material espanderanno lo spazio del layout per soddisfare le dimensioni del touch target indicate nelle linee guida sull'accessibilità di Material. Ad esempio, il touch target del pulsante verrà espanso fino a una dimensione minima di 48 x 48 dp, anche se imposti dimensioni inferiori per il pulsante. In questo modo, Compose Material si allinea allo stesso comportamento dei componenti di Material Design, garantendo un comportamento coerente se combini le viste e Compose. Questa modifica garantisce inoltre che, quando crei l'interfaccia utente utilizzando i componenti Material di Compose, vengano soddisfatti i requisiti minimi per l'accessibilità dei touch target.
Correzioni di bug
- Sono state aggiunte informazioni di debug migliori per l'ispettore del layout durante l'ispezione dei modificatori del target di tocco minimo. (aosp/1955036)
Versione 1.1.0-rc01
15 dicembre 2021
androidx.compose.material:material-*:1.1.0-rc01
viene rilasciato. La versione 1.1.0-rc01 contiene questi commit.
Correzioni di bug
- Correggere il raggio del raggio applicato per i file
Checkbox
(I38b03, b/175198975, b/202309440)
Versione 1.1.0-beta04
1° dicembre 2021
androidx.compose.material:material-*:1.1.0-beta04
viene rilasciato. La versione 1.1.0-beta04 contiene questi commit.
Nuove funzionalità
- Aggiornata per essere compatibile con Kotlin
1.6.0
Versione 1.1.0-beta03
17 novembre 2021
androidx.compose.material:material-*:1.1.0-beta03
viene rilasciato. La versione 1.1.0-beta03 contiene questi commit.
Versione 1.1.0-beta02
3 novembre 2021
androidx.compose.material:material-*:1.1.0-beta02
viene rilasciato. La versione 1.1.0-beta02 contiene questi commit.
Correzioni di bug
- Le increspature e altre indicazioni ora verranno ritardate solo se si trovano all'interno di un contenitore Modifier.scrollable(), anziché essere sempre ritardate per un evento di scorrimento verso il basso. (Ibefe0, b/203141462)
Versione 1.1.0-beta01
27 ottobre 2021
androidx.compose.material:material-*:1.1.0-beta01
viene rilasciato. La versione 1.1.0-beta01 contiene questi commit.
Nuove funzionalità
- Le increspature ora supportano gli stati di passaggio del mouse e di attivazione, quindi il passaggio del mouse sopra un componente come Pulsante ora mostrerà l'overlay dello stato corretto.
Versione 1.1.0-alpha06
13 ottobre 2021
androidx.compose.material:material-*:1.1.0-alpha06
viene rilasciato. La versione 1.1.0-alpha06 contiene questi commit.
Modifiche all'API
- È stata aggiunta un'overload senza elementi secondari per Layout, con un'efficienza migliorata (Ib0d9a)
- Implementazione di
ExposedDropdownMenu
in base aExposedDropdownMenuBox
conTextField
eDropdownMenu
all'interno (If60b2) dismissOnOutsideClick
è stato aggiunto aPopupProperties
, sostituendodismissOnClickOutside
, che è stato deprecato. La nuova proprietà riceve la posizione del clic e i limiti dell'ancora, fornendo un controllo più preciso sull'eventuale chiamata di onDismissRequest. Ad esempio, può essere utile per impedire la chiusura dell'ancora per i tocchi sull'ancora.updateAndroidWindowManagerFlags
è stato aggiunto aPopupProperties
, offrendo un controllo a basso livello sui flag passati dal popup a WindowManager di Android. Il parametro della funzione lambda sarà costituito dagli indicatori calcolati dai valori PopupProperties che generano indicatori WindowManager: ad esempio, focusable. Il risultato della funzione lambda saranno i flag finali che verranno passati a WindowManager di Android. 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)
Versione 1.1.0-alpha05
29 settembre 2021
androidx.compose.material:material-*:1.1.0-alpha05
viene rilasciato. La versione 1.1.0-alpha05 contiene questi commit.
Modifiche all'API
- Aggiunge le dimensioni minime del touch target per i componenti Material che non hanno un touch target accessibile. Poiché vengono aggiunte spaziature aggiuntive attorno ai componenti per assicurarsi che abbiano un touch target sufficientemente grande, questo potrebbe modificare le UI esistenti che presuppongono che le dimensioni di questi componenti corrispondano alle dimensioni visive e non tengano conto delle dimensioni del touch target. Puoi utilizzare la proprietà sperimentale
LocalMinimumTouchTargetEnforcement
composition local per disattivare questo comportamento in una gerarchia, ma si tratta solo di una via di fuga temporanea durante l'aggiornamento delle UI esistenti per tenere conto delle nuove dimensioni minime. (I9b966, b/149691127, b/171509422) - È stata aggiunta l'interfaccia sperimentale TextFieldColorsWithIcons, che estende TextFieldColors per fornire InteractionSource a leadingColor e trailingColor. In questo modo è possibile modificare l'aspetto di TextField in base allo stato di attivazione. (I66923, b/198402662)
Versione 1.1.0-alpha04
15 settembre 2021
androidx.compose.material:material-*:1.1.0-alpha04
viene rilasciato. La versione 1.1.0-alpha04 contiene questi commit.
Modifiche all'API
performGesture
eGestureScope
ritirati, sostituiti daperformTouchInput
eTouchInjectionScope
. (Ia5f3f, b/190493367)- È stato aggiunto
touchBoundsInRoot
aSemanticsNode
per includere le dimensioni minime del touch target, in modo che gli sviluppatori possano assicurarsi 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 di touch target minimi. (I43e10, b/171509422)
- È stato aggiornato il composable
Divider
per rispettareDp.Hairline
per il parametro di spessore al fine di supportare il disegno di divisori di pixel singoli indipendentemente dalla densità del display. (I16ffb, b/196840810)
Versione 1.1.0-alpha03
1° settembre 2021
androidx.compose.material:material-*:1.1.0-alpha03
viene rilasciato. La versione 1.1.0-alpha03 contiene questi commit.
Nuove funzionalità
- Compose
1.1.0-alpha03
è stato aggiornato in modo da dipendere da Kotlin1.5.30
. (I74545)
Modifiche all'API
- È stato aggiunto il metodo di test per ottenere i limiti ritagliati. (I6b28e)
- È stata aggiunta una dimensione minima del touch target a ViewConfiguration per l'utilizzo nella semantica e nell'input del cursore per garantire l'accessibilità. (Ie861c)
Versione 1.1.0-alpha02
18 agosto 2021
androidx.compose.material:material-*:1.1.0-alpha02
viene rilasciato. La versione 1.1.0-alpha02 contiene questi commit.
Contributo esterno
- Correggere il comportamento di SwipeableState nel caso in cui l'offset scorrimento rientri in un errore di arrotondamento di un'ancora. (I03d39, b/191993377)
Versione 1.1.0-alpha01
4 agosto 2021
androidx.compose.material:material-*:1.1.0-alpha01
viene rilasciato. La versione 1.1.0-alpha01 contiene questi commit.
Modifiche all'API
- Metodo
DrawScope#drawImage
aggiornato che utilizza i rettangoli di origine e di destinazione per utilizzare un parametro facoltativo FilterQuality. Questa opzione è utile per l'arte pixel che deve essere pixelata quando viene aumentata di dimensioni per l'arte basata su pixel. È stato aggiornato il composable BitmapPainter + Image per utilizzare anche un parametro facoltativo FilterQuality (Ie4fb0, b/180311607) - BadgeBox è stato rinominato in BadgedBox e i parametri sono stati modificati per accettare il composable Badge. È stato aggiunto il componente Badge, che corrisponde ai contenuti tipici di un badge per una casella con badge. (I639c6)
- È stato aggiunto il componente NavigationRail. Consulta la documentazione e i sample per informazioni sull'utilizzo (I8de77)
Correzioni di bug
- È stato aggiunto un esempio di NavigationRail allineato in basso e una demo dell'app Catalog. (I3cffc)
- Ora i dialoghi seguono il comportamento di dimensionamento della piattaforma. Imposta usePlatformDefaultWidth su false per eseguire l'override di questo comportamento. (Iffaed, b/192682388)
- È stata aggiunta una demo della barra di navigazione all'app del catalogo. (I04960)
- È stata aggiunta una demo del badge all'app del catalogo. (If285d)
Versione 1.0
Versione 1.0.5
3 novembre 2021
androidx.compose.material:material-*:1.0.5
viene rilasciato. La versione 1.0.5 contiene questi commit.
Correzioni di bug
- È stato corretto un arresto anomalo durante il monitoraggio delle istanze derivedStateOf. (aosp/1792247)
Versione 1.0.4
13 ottobre 2021
androidx.compose.material:material-*:1.0.4
viene rilasciato. La versione 1.0.4 contiene questi commit.
Aggiornamenti delle dipendenze
- Aggiornata per dipendere da Kotlin
1.5.31
Versione 1.0.3
29 settembre 2021
androidx.compose.material:material-*:1.0.3
viene rilasciato. La versione 1.0.3 contiene questi commit.
Aggiornamenti delle dipendenze
- Aggiornata per dipendere da Kotlin
1.5.30
Versione 1.0.2
1° settembre 2021
androidx.compose.material:material-*:1.0.2
viene rilasciato. La versione 1.0.2 contiene questi commit.
Aggiornamento per supportare la release di Compose 1.0.2
. Compose 1.0.2
è ancora compatibile con Kotlin 1.5.21
.
Versione 1.0.1
4 agosto 2021
androidx.compose.material:material-*:1.0.1
viene rilasciato. La versione 1.0.1 contiene questi commit.
Aggiornamenti delle dipendenze
- Aggiornata per dipendere da Kotlin
1.5.21
.
Versione 1.0.0
28 luglio 2021
androidx.compose.material:material-*:1.0.0
viene rilasciato. La versione 1.0.0 contiene questi commit.
Funzionalità principali della versione 1.0.0
Questa è la prima release stabile di Compose. Per ulteriori dettagli, consulta il blog ufficiale relativo al rilascio di Compose.
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 a 24 o versioni successive nel file
build.gradle
. Questo problema verrà risolto nella prossima versione di Android Studio Bumblebee e AGP7.1
. (b/194289155)
Versione 1.0.0-rc02
14 luglio 2021
androidx.compose.material:material-*:1.0.0-rc02
viene rilasciato. La versione 1.0.0-rc02 contiene questi commit.
Correzioni di bug
- Ora i dialoghi seguono il comportamento di dimensionamento della piattaforma. Imposta
usePlatformDefaultWidth
su false per eseguire l'override di questo comportamento. (Iffaed, b/192682388)
Versione 1.0.0-rc01
1° luglio 2021
androidx.compose.material:material-*:1.0.0-rc01
viene rilasciato. La versione 1.0.0-rc01 contiene questi commit.
Modifiche all'API
- È stato aggiunto il componente
BadgeBox
. Consulta la documentazione e i sample per informazioni sull'utilizzo (I5e284) useDefaultMaxWidth
inPopupProperties
è stato rinominato inusePlatformDefaultWidth
. (I05710)- Ora le finestre di dialogo possono utilizzare l'intera larghezza dello schermo. (I83929, b/190810877)
- È stata aggiunta l'implementazione del cursore dell'intervallo sperimentale (I2f4b3)
Correzioni di bug
- Per allinearsi alle specifiche di Material Design, OutlinedTextField con input non valido ha smesso di utilizzare il colore di errore per l'etichetta quando l'etichetta viene utilizzata come segnaposto. Quest'ultimo è vero quando non è presente testo di immissione nel campo di testo e il campo di testo non è attivo. Con questa modifica è cambiato anche il significato del parametro
error:Boolean
nella funzioneTextFieldColors.labelColor()
: ora restituiràfalse
anche quando l'input non è valido se l'etichetta viene utilizzata come segnaposto. (I45f78)
Versione 1.0.0-beta09
16 giugno 2021
androidx.compose.material:material-*:1.0.0-beta09
viene rilasciato. La versione 1.0.0-beta09 contiene questi commit.
Modifiche all'API
- È stato aggiunto il parametro Forma a OutlinedTextField per poter personalizzare la forma del bordo (I8f39e, b/181322957)
- TextOverflow viene modificato in un'entità in linea. (I433af)
Correzioni di bug
- Lo scrim in BottomDrawer, BackdropScaffold e ModalBottomSheetLayout scompare quando viene passato Color.Unspecified (I2d899, b/182063309)
Regole del profilo aggiunte
Questa release aggiunge regole del profilo ai seguenti moduli di composizione (I14ed6):
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
Che cosa sono le regole del profilo?
Le regole del profilo per una raccolta sono specificate in un file di testo
baseline-prof.txt
situato nella directorysrc/main
o equivalente. Il file specifica una regola per riga, dove una regola in questo caso è un pattern per la corrispondenza a metodi o classi nella libreria. La sintassi di queste regole è un superset del formato del profilo ART leggibile da persone che viene utilizzato quando si utilizzaadb shell profman --dump-classes-and-methods ...
. Queste regole possono assumere una di due forme per scegliere 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>
è uno o più dei caratteriH
,S
eP
per indicare se questo metodo deve essere contrassegnato come "Hot", "Startup" o "Post Startup".<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 parametro e i tipi di ritorno del metodo. Ad esempio, il metodofun isPlaced(): Boolean
inLayoutNode
ha la firmaisPlaced()Z
.Questi pattern possono contenere caratteri jolly (
**
,*
e?
) per consentire a una singola regola di includere più metodi o classi.
A cosa servono le regole?
Un metodo con il flag
H
indica che si tratta di un metodo "hot" e deve essere compilato in anticipo.Un metodo che ha il flag
S
indica che si tratta di un metodo chiamato all'avvio e deve essere compilato in anticipo per evitare il costo della compilazione e dell'interpretazione del metodo all'avvio.Un metodo con il flag
P
indica che si tratta di un metodo chiamato 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 negli elementi AAR. Quando viene creato un APK che include questi elementi, le regole vengono unite e utilizzate per creare un profilo ART binario compatto specifico per l'APK. ART può quindi sfruttare questo profilo quando l'APK è installato sui dispositivi per compilare in anticipo un sottoinsieme specifico dell'applicazione al fine di migliorarne le prestazioni, in particolare la prima esecuzione. Tieni presente che questo non avrà alcun effetto sulle applicazioni di debug.
Versione 1.0.0-beta08
2 giugno 2021
androidx.compose.material:material-*:1.0.0-beta08
viene rilasciato. La versione 1.0.0-beta08 contiene questi commit.
Nuove funzionalità
Modifica dell'API che comporta una modifica del comportamento
- MODIFICHE AL COMPORTAMENTO: ora la scheda consuma i clic, rendendo nulli i clic aggiunti tramite
Card(Modifier.clickable)
. Utilizza il nuovo sovraccarico sperimentale di una scheda che accetta onClick. (Ia8744, b/183775620)- È stato aggiunto un nuovo sovraccarico della scheda che gestisce i clic e altre funzionalità cliccabili: indication, interactionSource, enabled/disabled. Non è stato possibile utilizzare una normale scheda non cliccabile con il simbolo
Modifier.clickable
perché in questi casi la scheda non taglia l'indicazione dell'eco.
- È stato aggiunto un nuovo sovraccarico della scheda che gestisce i clic e altre funzionalità cliccabili: indication, interactionSource, enabled/disabled. Non è stato possibile utilizzare una normale scheda non cliccabile con il simbolo
- BEHAVIOUR-BREAKING: Surface ora consuma i clic, rendendo i clic aggiunti tramite
Surface(Modifier.clickable)
non operativi. Utilizza il nuovo sovraccarico sperimentale di Surface che accetta onClick. (I73e6c, b/183775620)- È stata aggiunta una nuova sovraccarica di Surface che gestisce i clic e altre funzionalità selezionabili: indication, interactionSource, enabled/disabled. Non è stato possibile utilizzare una normale superficie non cliccabile con il simbolo
Modifier.clickable
perché in questi casi la superficie non taglia l'indicazione dell'ondulazione.
- È stata aggiunta una nuova sovraccarica di Surface che gestisce i clic e altre funzionalità selezionabili: indication, interactionSource, enabled/disabled. Non è stato possibile utilizzare una normale superficie non cliccabile con il simbolo
Modifiche all'API
FabPosition
è stato convertito in una classe in linea da enum per supportare una potenziale espansione in futuro (I030fb)- È stato eseguito il refactoring degli utilizzi degli enum nelle classi in linea per evitare problemi con le istruzioni when esaustive quando vengono aggiunti nuovi valori di enum. (I2b5eb)
- Aggiunge un timeout per i tocchi agli elementi cliccabili/attivabili/disattivabili per impedire la visualizzazione di un'eco durante lo scorrimento/trascinamento (Ia2704, b/168524931)
- Le proprietà ContentDescription e Semantica testo non sono più valori singoli, ma elenchi. In questo modo è possibile unirli così come sono anziché concatenarli. Sono state inoltre fornite API di test migliori per utilizzare queste modifiche (Ica6bf, b/184825850)
Modifier.focusModifier()
è deprecato e sostituito daModifier.focusTarget()
(I6c860)- Enum
FocusState
sostituito con un'interfacciaFocusState
(Iccc1a, b/187055290) LocalRippleNativeRendering
è stato rimosso ora che l'implementazione dell'effetto ripple basato sulla visualizzazione è stabile (I7fab3, b/188569367)
Correzioni di bug
Modifier.onGloballyPositioned()
è stato modificato per riportare 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 che verranno registrate. (Ieb67d, b/177926591)- È stato aggiunto un file README per il catalogo di materiale di Compose esistente. (If9191)
Versione 1.0.0-beta07
18 maggio 2021
androidx.compose.material:material-*:1.0.0-beta07
viene rilasciato. La versione 1.0.0-beta07 contiene questi commit.
Modifiche all'API
- Non è più necessario utilizzare i metodi di estensione per il supporto dei percorsi in Navigation Compose. (I22beb, b/172823546)
Versione 1.0.0-beta06
5 maggio 2021
androidx.compose.material:material-*:1.0.0-beta06
viene rilasciato. La versione 1.0.0-beta06 contiene questi commit.
Modifiche all'API
- È stata eseguita la migrazione di Ripple per utilizzare
RippleDrawable
internamente sui dispositivi Android. Ciò significa che le animazioni di ripple verranno eseguite su RenderThread e saranno fluide anche quando il thread dell'interfaccia utente è sotto carico, ad esempio quando si passa da una schermata all'altra. Ciò non modifica l'API di Ripple, ma potrebbero essere introdotte modifiche al comportamento a seguito di questa modifica. Per facilitare la migrazione, è stato aggiuntoLocalRippleNativeRendering
: fornisci un valorefalse
a questo CompositionLocal per eseguire il fallback all'implementazione dell'effetto ripple precedente all'interno di CompositionLocalProvider. Questa API è temporanea e verrà rimossa in futuro, quindi se riscontri problemi che ti inducono a utilizzarla, 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 di accessibilità
error
che consente di contrassegnare un nodo contenente input non validi (I12997, b/180584804, b/182142737)
Correzioni di bug
- Aggiornamento dell'implementazione degli inserti del catalogo Material di Compose da: https://github.com/google/accompanist/pull/365. (I25dc3)
- Le righe e le colonne secondarie con weight(fill = false) non fanno più in modo che l'elemento principale riempia l'intero spazio dell'asse principale disponibile. (Ied94d, b/186012444, b/184355105)
Versione 1.0.0-beta05
21 aprile 2021
androidx.compose.material:material-*:1.0.0-beta05
viene rilasciato. La versione 1.0.0-beta05 contiene questi commit.
Correzioni di bug
- Sono state aggiunte immagini dei riquadri dei componenti, un selettore di temi e URL di menu più specifici al catalogo di Materiale di Compose esistente. (I9b58e)
Versione 1.0.0-beta04
7 aprile 2021
androidx.compose.material:material-*:1.0.0-beta04
viene rilasciato. La versione 1.0.0-beta04 contiene questi commit.
Modifiche all'API
- MODIFICAZIONE ALL'API: lo stato
DrawerState
non estende più lo stato sperimentale SwipeableState.- MODIFICA ALL'API:
BottomDrawerState
ora è contrassegnato come sperimentale, in modo da corrispondere al componente BottomDrawer già sperimentale (I81114, b/181656094)
- MODIFICA ALL'API:
- Rinomina
hideSoftwareKeyboard
eshowSoftwareKeyboard
suSoftwareKeyboardController
inhide()
eshow()
rispettivamente.- Fornisci l'interfaccia CompositionLocal completa per LocalSoftwareKeyboardController, consentendo di impostarla (particolarmente utile nei test) (I579a6)
- È stata aggiunta l'API di accessibilità LiveRegion. Se il nodo è contrassegnato come regione in tempo reale, i servizi di accessibilità informeranno automaticamente l'utente delle relative modifiche (Idcf6f, b/172590946)
Correzioni di bug
- È stata aggiunta l'implementazione del catalogo di materiali di Compose al modulo esistente. Al momento mancano: immagini riquadri dei componenti, selettore di temi (da aggiungere nelle modifiche successive). (Ie7a94)
Versione 1.0.0-beta03
24 marzo 2021
androidx.compose.material:material-*:1.0.0-beta03
viene rilasciato. La versione 1.0.0-beta03 contiene questi commit.
Modifiche all'API
DefaultMonotonicFrameClock
è deprecato. La chiamata awithFrameNanos
oRecomposer.runRecomposeAndApplyChanges
senzaMonotonicFrameClock
ora genera un erroreIllegalStateException
. (I4eb0d)- È stata aggiunta una nuova API
LeadingIconTab
per supportare la visualizzazione di un'icona e di un testo in linea in una scheda. (I23267)
Contributo esterno
- [di Jossi Wolf]
BottomDrawer
ora inserisce un a capo nei contenuti della sezione del riquadro.BottomDrawer
non genera unIllegalStateException
quando l'elemento principale ha un'altezza infinita. Ora il riquadro a scomparsa inferiore si aprirà in uno stato espanso se è più piccolo del 50% del riquadro principale. I documenti relativi aBottomDrawerState
eModalBottomSheetLayoutState
sono stati aggiornati. OraBottomDrawerState#isOpen
restituisce true se è nello stato aperto o espanso. (I87241)
Versione 1.0.0-beta02
10 marzo 2021
androidx.compose.material:material-*:1.0.0-beta02
viene rilasciato. La versione 1.0.0-beta02 contiene questi commit.
Modifiche all'API
- È stata aggiunta una nuova API locale di composizione
LocalSoftwareKeyboardController
per sostituire l'interfacciaSoftwareKeyboardController
precedente su TextField. (I5951e, b/168778053)
Correzioni di bug
- Applicare limitazioni all'utilizzo pubblico delle API sperimentali (I6aa29, b/174531520)
- È stato modificato l'allineamento orizzontale predefinito per TopAppBar e BottomAppBar in Inizia, in linea con la riga (Ib2dc7)
- È stato aggiunto un nuovo modulo e un'interfaccia utente segnaposto per un catalogo di materiali di Compose, attualmente nidificato nelle demo dei test di integrazione esistenti. (Idfcb3)
androidx.compose.ui:ui
non dipende più da AppCompat o Fragment. Se nella tua applicazione utilizzi ComposeView e Fragment e/o AppCompat, assicurati di utilizzare AppCompat 1.3 o versioni successive / Fragment 1.3 o versioni successive. Queste versioni sono necessarie per impostare correttamente il ciclo di vita e i proprietari dello stato salvato richiesti per ComposeView. (I1d6fa, b/161814404)
Versione 1.0.0-beta01
24 febbraio 2021
androidx.compose.material:material-*:1.0.0-beta01
viene rilasciato. La versione 1.0.0-beta01 contiene questi commit.
Questa è la prima release di Compose 1.0.0 Beta.
Modifiche all'API
- I modificatori delle taglie sono stati rinominati. Modifier.width/height/size sono stati rinominati in requiredWidth/requiredHeight/requiredSize. Modifier.preferredWidth/preferredHeight/preferredSize sono stati rinominati in width/height/size. (I5b414)
- imageResource e vectorResource ora sono funzioni di estensione rispettivamente su ImageBitmap e ImageVector companion. Le funzioni load{Image,Vector,Font}Resource sono state eliminate. (I89130)
- I modificatori per le dimensioni in base ai valori intrinseci non sono più sperimentali. (I15744)
- Affermazioni dp rimosse (I798d2)
- È stato rimosso il callback SoftwareKeyboardController da tutti i campi di testo per essere sostituito a breve da una nuova API. (Iae869, b/168778053)
- Le funzioni lambda di azioni Switch, Checkbox e RadioButton ora sono facoltative. I Sample di caselle di controllo in riga cliccabile sono stati aggiornati per utilizzare questa funzionalità. (If601b, b/171819073)
InteractionState
è stato sostituito da[Mutable]InteractionSource
- Le interfacce sono responsabili dell'emissione / raccolta degli eventi di interazione.
- Anziché passare
interactionState = remember { InteractionState() }
a componenti comeButton
eModifier.clickable()
, utilizzainteractionSource = remember { MutableInteractionSource() }
. - Anziché:
Interaction.Pressed in interactionState
, dovresti utilizzare le funzioni di estensione su InteractionSource, ad esempio InteractionSource.collectIsPressedAsState(). - Per casi d'uso complessi, puoi utilizzare InteractionSource.interactions per osservare lo stream 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 AccessibilityManager e LocalAccessibilityManager in CompositionLocals (I53520)
- Sono stati rimossi i metodi LayoutCoordinates deprecati. Utilizza la funzione anziché la proprietà per positionInParent e boundsInParent (I580ed, b/169874631, b/175142755)
- Il dispositivo di scorrimento ora supporta lo stato attivo/disattivato (I6d56b, b/179793072)
- È stata creata una nuova TextInputSession per le sessioni di input da componenti di testo di basso livello come CoreTextField. (I8817f, b/177662148)
- AnimationEndReason.Interrupted viene rimosso. CancellationException viene lanciata se l'animazione viene interrotta. (I2cbbc, b/179695417)
- È stato rimosso
@ExperimentalRippleApi
eRippleAlpha
è stato modificato in modo da essere una classe con proprietà anziché un'interfaccia. (I6df7c) - È stata aggiunta l'interfaccia TextFieldColors per rappresentare i diversi colori utilizzati in TextField e OutlinedTextField in stati diversi. Per l'implementazione predefinita, consulta TextFieldDefaults.textFieldColors e TextFieldDefaults.outlinedTextFieldColors.
- Il parametro isErrorValue all'interno di TextField e OutlinedTextField è stato rinominato in isError. (I831f9, b/171305338, b/168004067)
- Aggiunge il modificatore selectionGroup che consente di contrassegnare una raccolta di schede o pulsanti di opzione per motivi di accessibilità (Ie5c29)
Aggiungi LazyListState.animateScrollToItem
Questo metodo scorre in modo fluido 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 i composabili contrassegnati con
@ReadOnlyComposable
ora vengono 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() è ora rappresentata con interi (I81298)
I pacchetti dei metodi smoothScrollBy e scrollBy sono stati modificati in
androidx.compose.foundation.gestures.*
(I3f7c1, b/175294473)FlingConfig è stato rinominato in FlingBehavior e ora consente la personalizzazione dell'animazione di sospensione anziché delle decelerazioni predefinite. (I02b86, b/175294473)
I modificatori delle taglie sono stati rinominati. Modifier.width/height/size sono stati rinominati in requiredWidth/requiredHeight/requiredSize. Modifier.preferredWidth/preferredHeight/preferredSize sono stati rinominati in width/height/size. (I5b414)
defaultMinSizeConstraints è stato rinominato in defaultMinSize. (I4eaae)
L'orientamento è stato spostato nel pacchetto di base. VelocityTracker è passato da ui.gesture a ui.input.pointer. (Iff4a8, b/175294473)
drawerState.open() e drawerState.close() sono ora funzioni di sospensione. Utilizza rememberCoroutineScope() per ottenere l'ambito della composizione da chiamare (I16f60, b/175294473)
Providers è stato rinominato in CompositionLocalProvider
- Il costruttore Composition non accetta più un parametro chiave ed è stato ritirato.
- currentCompositeKeyHash è stata trasformata in una proprietà di primo livello componibile anziché in una funzione di primo livello componibile.
- CompositionData e CompositionGroup sono stati spostati nello spazio dei nomi androidx.compose.runtime.tooling
- ComposableLambda è stata creata come interfaccia anziché come classe concreta e non ha più parametri di tipo.
- ComposableLambdaN è stata creata come interfaccia anziché come 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.
- La funzione Composer.collectKeySourceInformation è stata rimossa. Non è più necessario.
- I metodi isJoinedKey, joinedKeyLeft e joinedKeyRight sono stati rimossi. Non sono più necessari.
- Diverse API di primo livello sono state spostate e riorganizzate in file diversi. A causa della semantica della classe file di Kotlin, la compatibilità binaria verrà interrotta, ma non la compatibilità con il codice sorgente, pertanto non dovrebbe essere un problema per la maggior parte degli utenti.
- (I99b7d, b/177245490)
Modifier.scrollable è stato rielaborato. Ora utilizza l'interfaccia Scrollable anziché la classe ScrollableController (I4f5a5, b/174485541, b/175294473)
Modifier.draggable ora accetta DraggableState anziché una 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 precedentemente ritirate (Ice5da, b/178633932)
Sono state apportate le seguenti modifiche all'API Material:
- È stato aggiunto il parametro contentPadding a Top/BottomAppBar per consentire la personalizzazione del padding predefinito.
- I parametri in BackdropScaffold sono stati riordinati in modo da rispettare le linee guida dell'API per i parametri obbligatori che precedono i parametri facoltativi.
- Il parametro
icon
in BottomNavigationItem è stato spostato doposelected
eonClick
. - Il parametro
alwaysShowLabels
in BottomNavigationItem è stato rinominato inalwaysShowLabel
. - I parametri
bodyContent
in alcuni componenti sono stati rinominati incontent
. - Parametri riordinati in
ButtonDefaults.buttonColors()
. Tieni presente che, poiché il tipo di parametri non è cambiato, non verrà generato un errore nel codice. Assicurati di utilizzare parametri denominati o di aggiornare l'ordinamento manualmente, altrimenti il codice non funzionerà come in precedenza. - Parametro
secondaryVariant
aggiunto adarkColors()
. Questo colore è in genere uguale asecondary
nel tema scuro, ma viene aggiunto per coerenza e ulteriore personalizzazione. - Sono stati rimossi ElevationDefaults e animateElevation() dall'API pubblica perché non erano di uso comune / utili.
onValueChangeEnd
inSlider
è stato rinominato inonValueChangeFinished
e impostato come nullable.- Il parametro
text
inSnackbar
è stato rinominato incontent
per coerenza. - È stato aggiunto il parametro
contentPadding
aDropdownMenuItem
per consentire la personalizzazione del padding predefinito econtent
è stato reso un'estensione diRowScope
. ModalDrawerLayout
rinominato inModalDrawer
.BottomDrawerLayout
rinominato inBottomDrawer
.- (I1cc66)
BasicTextField ora accetta Brush anziché Color per una migliore personalizzazione (I83a36)
imageResource e vectorResource ora sono funzioni di estensione rispettivamente su ImageBitmap e ImageVector companion. Le funzioni load{Image,Vector,Font}Resource sono state eliminate. (I89130)
È stata modificata la funzione Indication#createIndication() in Indication#rememberUpdatedIndication(InteractionState) ed è stato rimosso il parametro InteractionState da IndicationInstance#drawIndication(). IndicationInstance deve essere responsabile solo del disegno degli effetti visivi e non dell'avvio delle animazioni / della scrittura dello stato in risposta alle modifiche di InteractionState. Queste animazioni e scritture dello stato devono invece avvenire entro
rememberUpdatedIndication()
. Anche il parametroindication
inModifier.indication
è stato modificato in modo da essere obbligatorio. (Ic1764, b/152525426)
Correzioni di bug
- È stata aggiunta una nuova API locale di composizione LocalSoftwareKeyboardController per sostituire l'interfaccia SoftwareKeyboardController precedente su TextField. (I658b6, b/168778053)
Versione 1.0.0-alpha12
10 febbraio 2021
androidx.compose.material:material-*:1.0.0-alpha12
viene rilasciato. La versione 1.0.0-alpha12 contiene questi commit.
Modifiche all'API
- Modifier.pointerInput ora richiede chiavi di memorizzazione per indicare quando deve essere riavviata la coroutine di rilevamento dell'input del cursore per le nuove dipendenze. (I849cd)
- BottomDrawerLayout e ListItem sono stati contrassegnati come @ExperimentalMaterialApi (Id766e)
- È stato aggiunto PaddingValues.Absolute e può essere utilizzato nelle API che accettano PaddingValues. (Ia5f30)
- onImeActionPerformed è deprecato. Utilizza KeyboardActions (If0bbd, b/179071523)
- Per una migliore corrispondenza delle convenzioni di denominazione con ImageBitmap e ImageVector, ImagePainter è stato rinominato in BitmapPainter per allinearsi a VectorPainter. (Iba381, b/174565889)
- Animatable.snapTo e Animatable.stop ora sono funzioni di sospensione (If4288)
- ComponentActivity.setContent è stato spostato in androidx.activity.compose.setContent nel modulo androidx.activity:activity-compose. (Icf416)
- I metodi di destrutturazione e copy() sono stati rimossi da diversi classi in cui venivano utilizzati raramente. (I26702, b/178659281)
- Rendi halfExpand() ed expand() in ModalBottomSheetState interni (Ic914e)
- È stato modificato Indication#createInstance in modo che sia @Composable e LocalIndication in modo che contenga un'indicazione, non () -> Indication. (I5eeea, b/157150564)
- Per il momento, AlertDialog e DropdownMenu sono stati spostati solo su Android. È stato aggiunto il parametro PopupProperties a DropdownMenu per una configurazione ulteriore del popup sottostante. (I9c443)
- loadFontResource è deprecato. Utilizza invece fontResource. imageResource, loadImageResource, vectorResource e loadVectorResource sono deprecati. Utilizza invece painterResource. (I6b809)
- Sono stati rimossi i parametri
toggle
etoggleModifier
da DropdownMenu e sono stati rinominati rispettivamentedropdownModifier
,dropdownOffset
edropdownContent
inmodifier
,offset
econtent
. DropdownMenu ora si comporta in modo coerente conPopup
, in cui il layout principale viene utilizzato per la posizione del menu. Nella maggior parte dei casi, puoi spostaretoggle
in modo che sia un fratello diDropdownMenu
e racchiudere entrambi in unBox
. Per ulteriori informazioni sull'utilizzo di questa API, consulta l'esempio aggiornato nella documentazione. (I884fb) - toIntPx() è stato rinominato in roundToPx(). (I9b7e4, b/173502290)
- IntBounds è stato rinominato in IntRect e l'API è stata migliorata. (I1f6ff)
- Sono state aggiunte le azioni di semantica di espansione e compressione. Aggiunti metodi expand e halfExpand in ModalBottomSheetState (Ib5064)
- Modifier.dragGestureFilter è stato ritirato. Utilizza invece
Modifier.pointerInput { detectDragGestures (...)}
. In alternativa, utilizza Modifier.draggable per i trascinamenti su un asse (I0ba93, b/175294473) - Gli ambienti sono stati rinominati in modo che corrispondano alla ridenominazione di Ambient -> CompositionLocal. Gli ambienti in precedenza si chiamavano AmbientFoo, ora i CompositionLocals si chiamano LocalFoo. (I2d55d)
- La selezione è stata spostata nella base. (I7892b)
- Analogamente a come abbiamo rimosso in precedenza il composable
state { 0 }
e ora promuoviamo l'utilizzo diremember { mutableStateOf(0) }
, rimuoveremo il composablesavedInstanceState { 0 }
. Dovresti utilizzarerememberSaveable { mutableStateOf(0) }
, che verrà salvato e ripristinato automaticamente se il tipo utilizzato all'interno di MutableState può essere archiviato nel bundle. Se in precedenza passavi un oggetto di salvataggio personalizzato, ora devi utilizzare un nuovo sovraccarico di rememberSaveable che ha il parametrostateSaver
. L'utilizzo sarà simile al seguente: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 a favore di tre annotazioni più specifiche.
@ComposableContract(restartable = false)
è diventato@NonRestartableComposable
@ComposableContract(readonly = true)
è diventato@ReadOnlyComposable
@ComposableContract(preventCapture = true)
è diventato@DisallowComposableCalls
@ComposableContract(tracked = true)
è stato rimosso.- (I60a9d)
Le utilità
emptyContent()
e(@Composable () -> Unit).orEmpty()
sono state ritirate perché non hanno più alcun impatto o valore positivo sul rendimento (I0484d)rememberSavedInstanceState() è stato rinominato in rememberSaveable() e spostato nel pacchetto androidx.compose.runtime.saveable. (I1366e, b/177338004)
Saver, listSaver(), mapSaver(), autoSaver sono stati spostati da androidx.compose.runtime.savedinstancestate ad androidx.compose.runtime.saveable (I77fe6)
I parametri di RounderCornerShape, CutCornerShape e CornerBasedShape sono stati rinominati da left/right a start/end per supportare lo specchio automatico della forma nella direzione RTL. AbsoluteRounderCornerShape e AbsoluteCutCornerShape sono stati introdotti per i casi in cui non è desiderato lo specchio automatico. (I61040, b/152756983)
I parametri
text
eicon
di Tab e il parametrolabel
di BottomNavigationItem sono stati modificati in modo da essere null, per trasmettere meglio il comportamento del componente quando questi parametri sono / non sono forniti, poiché influiscono sulle dimensioni e sul layout del componente. Se al momento passiemptyContent()
per rappresentare nessun testo / icona / etichetta, devi utilizzarenull
. (I57ed4)Il parametro di colore contentColorFor è stato rinominato in backgroundColor (I5bb67)
È stata ritirata la funzionalità TabDefaults e sostituita con TabRowDefaults. (I0f189)
È stata introdotta l'API ColorMatrix utilizzata per modificare i valori RGB dei contenuti di origine. È stata ristrutturata l'API ColorFilter in modo che sia un'interfaccia e corrisponda all'implementazione di PathEffect. (Ica1e8)
AnimatedValue/Float è ora deprecato. Utilizza invece Animatable. (I71345, b/177457083)
Aggiungi l'API SemanticsProperties.PaneTitle. (I20d5a)
Sono stati aggiunti i parametri abilitati a Tab e BottomNavigationItem per impedire che siano cliccabili. BottomNavigationItem è stato modificato in RowScope.BottomNavigationItem per esprimere meglio i requisiti di layout nell'API. (Id683d)
I filtri tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter e pressIndicaitonGestureFilter sono stati ritirati. Utilizza Modifier.clickable o Modifier.pointerInput con la funzione detectTapGestures. (I6baf9, b/175294473)
Aggiungi il parametro layoutDirection a createOutline della forma. In questo modo è possibile creare forme che tengano conto della direzione del layout. (I57c20, b/152756983)
Recomposer.current()
rimosso. [Abstract]Per impostazione predefinita, ComposeView ora utilizza Recomposer con ambito finestra creati in modo lazy e gestiti da ViewTreeLifecycleOwner per la finestra. I tick di animazione basati su recomposition e withFrameNanos vengono messi in pausa quando il ciclo di vita dell'host è interrotto. (I38e11)
Correzioni di bug
- L'icona verrà ora ridimensionata in base alle sue dimensioni, rispettando i modificatori di dimensioni applicati. Ad esempio,
Icon(.., modifier = Modifier.size(50.dp)
ora verrà visualizzato in uno spazio di 50 x 50 dp. (Ib2ba9, b/178796190)
Versione 1.0.0-alpha11
28 gennaio 2021
androidx.compose.material:material-*:1.0.0-alpha11
viene rilasciato. La versione 1.0.0-alpha11 contiene questi commit.
Modifiche all'API
- Alcune API Material non saranno più
@Experimental
(I5d20e) - Il parametro Descrizione dei contenuti è stato aggiunto a Immagine e Icona. Viene utilizzato per fornire una descrizione ai servizi di accessibilità (I2ac4c)
- Modifica le interfacce dei parametri con stato di Material per avere funzioni @Composable che restituiscono
State<T>
. AggiungeAnimatable.asState()
per semplificare la conversione di un elemento Animatable in uno stato. Modifica anche animateElevation in modo che sia un'estensione di sospensione su Animatable. (If613c) - Snackbar, SnackbarHost e SnackbarHostState non sono più
@ExperimentalMaterialAPI
(Id1fb5) - Le classi di dati Typography, Shapes e TabPosition non sono più disponibili. Aggiunge la funzione di copia per la tipografia e le forme per sostituire quelle generate. (I40037)
- Sono state eliminate alcune API Material precedentemente ritirate (Ifaa25)
Correzioni di bug
- onCommit, onDispose e onActive sono stati ritirati a favore delle API SideEffect e DisposableEffect (If760e)
- La transizione basata su TransitionDefinition è stata ritirata (I0ac57)
- Lo stato iniziale in updateTransition è ora supportato (Ifd51d)
- Con restrizioni è stato rielaborato come BoxWithConstraints e spostato in foundation.layout. (I9420b, b/173387208)
Ritirare scrollBy non in sospensione, rimuovere scrollTo non in sospensione
Ora consigliamo di utilizzare le funzioni di sospensione per controllare lo scorrimento e attendere la fine dello scorrimento. Nell'ambito di questa transizione, stiamo ritirando e/o rimuovendo le versioni non sospese di queste funzioni. (Ie9ced)
Ritiro della funzionalità smoothScrollBy non in sospensione Ora consigliamo di utilizzare le funzioni in sospensione per controllare lo scorrimento e attendere il completamento dello scorrimento. Nell'ambito di questa transizione, stiamo ritirando le versioni non in sospensione di queste funzioni. (I12880)
È stato introdotto
ComposeContentTestRule
, che estendeComposeTestRule
e definiscesetContent
, che è stato rimosso daComposeTestRule
. È stato aggiunto un metodo di fabbricacreateEmptyComposeRule()
che restituisce unComposeTestRule
e non avvia un'attività per lo sviluppatore. Da utilizzare quando vuoi avviare l'attività durante il test, ad esempio utilizzandoActivityScenario.launch
(I9d782, b/174472899)L'effetto ripple utilizzato in Button e FloatingActionButton non può più essere personalizzato fornendo una nuova indicazione tramite AmbientIndication. Non è mai stato inteso come un modo per personalizzare questi componenti e ora li rende coerenti con gli altri componenti Material. Per personalizzare le increspature in un'applicazione, consulta RippleTheme. (I546c5)
animateAsState ora è animateFooAsState, dove Foo è il tipo della variabile da animare, ad esempio Float, Dp, Offset e così via (Ie7e25)
BasicTextField ha ricevuto un nuovo parametro denominato
decorationBox
. Consente di aggiungere decorazioni come icone, segnaposto, etichette e simili al campo di testo e di aumentare l'area target di hit. (I16996)Correzione di un bug che non consentiva di impostare la larghezza del campo di testo Materiale su un valore inferiore a 280 dp (I78373)
Il parametro canDrag è stato rimosso da Modifier.draggable (Ic4bec, b/175294473)
Rimuovi displaySize perché deve essere evitato. In genere è meglio utilizzare almeno le dimensioni di onRoot() o le dimensioni della finestra. (I62db4)
Ora la superficie può avere più elementi secondari di layout. (I66a92, b/144488459)
invalidate e compositionReference() sono ora deprecati a favore di currentRecomposeScope e rememberCompositionReference rispettivamente. (I583a8)
Modifica PopupPositionProvider in modo che utilizzi coordinate relative alla finestra, non coordinate globali. Rinomina parentGlobalBounds in anchorBounds e modifica windowGlobalBounds in
windowSize: IntSize
(I2994a)La durata e il tempo di attività verranno sostituiti da Long millisecondi e questo passaggio rimuove la dipendenza dell'input del cursore da queste classi. (Ia33b2, b/175142755, b/177420019)
AnimatedFloat.fling che accetta FlingConfig è stato rimosso. Utilizza invece suspend Animatable.animateDecay. (I4659b, b/177457083)
ora è possibile creare elementi cliccabili, attivabili e selezionabili al di fuori della composizione (I0a130, b/172938345, b/175294473)
La funzionalità di attenuazione è stata modificata in un'interfaccia funzionale (Ib14e5)
Le colonne/le righe scorrevoli sono state ritirate. L'utilizzo di ScrollableColumn è meno efficiente rispetto a LazyColumn quando hai contenuti di scorrimento di grandi dimensioni, perché con LazyColumn possiamo comporre/misurare/disegnare solo gli elementi visibili. Per evitare che gli utenti utilizzino un metodo inefficace, abbiamo deciso di ritirare ScrollableColumn e ScrollableRow e di promuovere l'utilizzo di LazyColumn e LazyRow. Gli utenti possono comunque decidere di non avere bisogno del comportamento lazy e utilizzare direttamente i modificatori come questo: 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 le utilizzi. Nuovi sovraccarichi di estensioni per gli array:items(items: Array)
eitemsIndexed(Array)
(I803fc, b/175562574)Sono stati rimossi i metodi sperimentali monotonicFrameAnimationClockOf (Ib753f, b/170708374)
Sono stati ritirati i metodi per le coordinate globali e sono stati creati nuovi metodi per le coordinate basate su finestre. (Iee284)
È stato aggiunto Modifier.toolingGraphicsLayer, che aggiunge un modificatore del livello grafico quando l'ispezione è attivata. (I315df)
FocusRequester.createRefs è ora contrassegnato come sperimentale perché potrebbe cambiare. (I2d898, b/177000821)
SemanticsPropertyReceiver.hidden è stato rinominato in invisibleToUser e contrassegnato come @ExperimentalComposeUiApi. AccessibilityRangeInfo è stato rinominato in ProgressBarRangeInfo. stateDescriptionRange è stato rinominato in progressBarRangeInfo. AccessibilityScrollState è stato rinominato in ScrollAxisRange. horizontalAccessibilityScrollState è stato rinominato in horizontalScrollAxisRange. verticalAccessibilityScrollState è stato rinominato in verticalScrollAxisRange. (Id3148)
Utilizza TestCoroutineDispatcher nei test (I532b6)
È stata aggiornata l'API di grafica vettoriale per supportare l'analisi della colorazione applicata alla radice della grafica vettoriale. (Id9d53, b/177210509)
Versione 1.0.0-alpha10
13 gennaio 2021
androidx.compose.material:material-*:1.0.0-alpha10
viene rilasciato. La versione 1.0.0-alpha10 contiene questi commit.
Modifiche all'API
- Velocità modificata per includere componenti e operazioni matematiche. (Ib0447)
@ExperimentalTesting
è stato rinominato in@ExperimentalTestApi
per essere coerente con annotazioni API sperimentali simili (Ia4502, b/171464963)- È stata rinominata la posizione in DpOffset ed è stato rimosso getDistance() (Ib2dfd)
- È stato rinominato Color.useOrElse() in Color.takeOrElse() (Ifdcf5)
- Aggiungi il pulsante di attivazione/disattivazione a Strings.kt di base (I4a5b7, b/172366489)
- FlowRow e FlowColumn sono stati ritirati. Utilizza invece un layout personalizzato. (I09027)
- Modifier.focus() e Modifier.focusRequester() sono deprecati. Utilizza invece Modifier.focusModifier() e Modifier.focusReference(). (I75a48, b/175160751, b/175160532, b/175077829)
- nativeClass è stato spostato nel modulo UI e reso interno. Sono stati aggiornati gli utilizzi di nativeClass nelle implementazioni di equals in modo da utilizzare "è MyClass". (I4f734)
Correzioni di bug
- È stato aggiunto il supporto per i campi di testo disattivati e di sola lettura (I35279, b/171040474, b/166478534)
animate()
viene ora sostituito conanimateAsState()
, che restituisce unState<T>
anzichéT
. Ciò consente un miglior rendimento, in quanto l'ambito dell'invalidazione può essere ridotto al punto in cui viene letto il valore di Stato. (Ib179e)- Aggiungi l'API di ruolo Semantics e aggiungi il ruolo come parametro a SemanticsModifier, che è selezionabile, attivabile e disattivabile. È stato modificato Modifier.progressSemantics in modo che possa essere utilizzato anche da Slider. (I216cd)
Versione 1.0.0-alpha09
16 dicembre 2020
androidx.compose.material:material-*:1.0.0-alpha09
viene rilasciato. La versione 1.0.0-alpha09 contiene questi commit.
Modifiche all'API
- È stata aggiunta un'API per attivare manualmente l'animazione di assestamento e il trascinamento in Modifier.swipeable (Iaa17a, b/162408885)
- Gli oggetti *Constants, come ButtonConstants, sono stati rinominati in modo che terminino con Defaults, ad esempio ButtonDefaults. Rimuove anche i prefissi
default
non necessari dalle proprietà in questi nuovi oggetti. (Ibb915, b/159982740) Compose supporta i getter delle proprietà che possono eseguire invocazioni composable. Il supporto per questa funzionalità non verrà rimosso, ma la sintassi per dichiarare un getter della proprietà come @Composable sta cambiando.
La sintassi ora non più supportata per farlo consisteva nell'annotare la proprietà stessa:
@Composable val someProperty: Int get() = ...
La sintassi ora corretta per farlo è annotare il getter della proprietà:
val someProperty: Int @Composable get() = ...
Entrambe le sintassi funzioneranno per un po' di tempo, ma la sintassi precedente ritirata diventerà eventualmente un errore di compilazione. (Id9197)
È stata aggiunta la libreria
androidx.compose.material:material-ripple
contenente le API di ripple per consentire la creazione di componenti interattivi senza il resto della libreria Material. rememberRippleIndication è stato ritirato e sostituito da rememberRipple. (Ibdf11)
Correzioni di bug
- Le lambda nei modificatori di offset ora restituiscono IntOffset anziché Float. (Ic9ee5, b/174137212, b/174146755)
È stato eseguito il refactoring di ShaderBrush per creare in modo lazy un'istanza di shader quando sono disponibili informazioni sulle dimensioni dell'ambiente di disegno. Questo è utile per definire gradienti che occupano l'intero spazio di disegno di un composable al momento della composizione, senza dover implementare DrawModifier personalizzati.
API del costruttore della funzione di gradiente ritirate a favore dei metodi di fabbrica su un oggetto Gradient. (I511fc, b/173066799)
Modifier.focusObserver è deprecato. Utilizza Modifier.onFocusChanged o Modifier.onFocusEvent (I30f17, b/168511863, b/168511484)
Ritiro di LazyColumnFor, LazyRowFor, LazyColumnForIndexed e LazyRowForIndexed. Utilizza LazyColumn e LazyRow (I5b48c)
È stato spostato Dp.VectorConverter, Position.VectorConverter e così via in animation-core e sono stati ritirati i vecchi VectorConveters (If0c4b)
L'API Autofill è ora un'API sperimentale e richiede l'attivazione (I0a1ec)
Aggiunta di dichiarazioni di scomposizione per creare istanze di FocusRequester (I35d84, b/174817008)
accessibilityLabel è stata rinominata contentDescription. accessibilityValue è stata rinominata stateDescription. (I250f2)
Nuova funzione infiniteRepeatable per la creazione di un'istanza InfiniteRepeatableSpec (I668e5)
Il comportamento di posizionamento dei menu a discesa è stato leggermente modificato in base alle specifiche di Material. (I34c72, b/168594123)
È stato aggiunto il supporto di InteractionState per i campi di testo. (I61d91)
È stato aggiunto Modifier.clearAndSetSemantics per cancellare le semantiche dei discendenti e impostarne di nuove. (I277ca)
È stato spostato ContentDrawScope nel modulo ui-graphics per essere associato a DrawScope. (Iee043, b/173832789)
Versione 1.0.0-alpha08
2 dicembre 2020
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
vengono rilasciati. La versione 1.0.0-alpha08 contiene questi commit.
Modifiche all'API
- MaterialTheme ora imposta i colori corretti per i manici 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 lint per il nome e la posizione dei parametri lambda componibili, per verificare la coerenza con le linee guida di Compose.
È stata inoltre eseguita la migrazione di alcune API che utilizzano
children
come nome per la funzione lambda finale acontent
, in base alle indicazioni e al controllo lint. (Iec48e) - È stato rinominato VectorAsset in ImageVector. È stato spostato e rinominato VectorAsset in Builder per essere una classe interna di ImageVector in base alle linee guida del Consiglio API. È stato aggiunto un alias di tipo di VectorAssetBuilder per collegarsi a ImageVector.Builder per la compatibilità. (Icfdc8)
- I metodi ImageAsset e correlati sono stati rinominati in ImageBitmap. (Ia2d99)
- Le proprietà di semantica di base sono state spostate nella UI (I6f05c)
fun RippleIndication()
è stato ritirato e sostituito conrememberRippleIndication()
per coerenza con altre API. (Id8e2c)- È stato aggiunto un parametro a riga singola in BasicTextField, TextField e OutlinedTextField. Imposta questo parametro su true per fare in modo che il campo di testo sia una singola riga scorrevole orizzontalmente. (I57004, b/168187755)
Correzioni di bug
- Aggiungi l'azione di semantica Ignora (I2b706)
- Le API DrawModifier sono state spostate dal pacchetto androidx.compose.ui al pacchetto androidx.compose.ui.draw. È stato creato il file DrawModifierDeprecated.kt per includere metodi di tipo/helper per assistere nella migrazione dalle API non più supportate alle API attuali. (Id6044, b/173834241)
- Modifier.drawLayer è stato rinominato in Modifier.graphicsLayer. Inoltre, sono state aggiornate le classi correlate a GraphicsLayer in base al feedback sull'API. (I0bd29, b/173834241)
<T>
è stato rimosso dalla dichiarazione SubcomposeLayout. Ora puoi utilizzarlo senza specificare un tipo. (Ib60c8)- Sono state aggiunte le API Modifier.scale/rotate per comodità di drawLayer.
Modifier.drawOpacity
rinominato inModifier.alpha
Modifier.drawShadow
rinominato inModifier.shadow
(I264ca, b/173208140)
- Il parametro di allineamento della casella è stato rinominato in contentAlignment. (I2c957)
- I modificatori offsetPx sono stati rinominati in offset. Ora accettano parametri lambda anziché stato. (Ic3021, b/173594846)
- Sono state introdotte le API SweepGradientShader e SweepGradientBrush. (Ia22c1)
- È stato aggiunto il controllo lint per i parametri di modificatore nelle funzioni Composable. Questo controllo lint verifica la consistenza di nome, tipo di ritorno, valore predefinito e ordine del parametro con le linee guida di Compose. (If493b)
- API TextFieldValue aggiornata
- è stato impostato TextFieldValue.composition come di sola lettura
- Eccezione rimossa lanciata per intervallo di selezione non valido (I4a675, b/172239032)
- È stato aggiunto un nuovo sovraccarico
Modifier.drawLayer()
. Richiede un blocco lambda in un nuovo GraphicsLayerScope in cui definisci i parametri del livello in modo da saltare la ricompozione e il nuovo layout quando si verifica la modifica dello stato. DrawLayerModifier è ora interno in preparazione alla migrazione della relativa logica nel metodoplaceable.placeWithLayer()
di LayoutModifier (I15e9f, b/173030831) - Sono stati ritirati gli ambienti con il suffisso
Ambient
e sostituiti con nuove proprietà con prefisso Ambient, seguendo le linee guida per gli altri ambienti e l'API Compose. (I33440) - È stato aggiunto il controllo lint per verificare che le fabbriche di modificatori utilizzino
androidx.compose.ui.composed {}
internamente, anziché essere contrassegnate come@Composable
. (I3c4bc) - L'argomento semantico mergeAllDescendants è stato rinominato in mergeDescendants. (Ib6250)
- Il controllo del tempo nei test (TestAnimationClock e i relativi utilizzi) è ora sperimentale (I6ef86, b/171378521)
- Rimuovi il vecchio modulo ui-test e i relativi stub (I3a7cb)
- TextUnit.Inherit viene rinominato in TextUnit.Unspecified per coerenza con le altre unità. (Ifce19)
- L'interfaccia di Allineamento è stata aggiornata e resa funzionale. (I46a07, b/172311734)
- L'ID è stato rinominato in layoutId per LayoutIdParentData. Measurable.id è stato rinominato in Measurable.layoutId. (Iadbcb, b/172449643)
Versione 1.0.0-alpha07
11 novembre 2020
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
vengono rilasciati. La versione 1.0.0-alpha07 contiene questi commit.
Modifiche all'API
- L'evidenziazione è stata ritirata e sostituita da AmbientContentAlpha. AmbientContentAlpha è un'astrazione più semplice che rappresenta l'alpha dei contenuti preferiti per una parte della gerarchia, in modo simile a come AmbientContentColor rappresenta il colore dei contenuti preferiti. Per impostazione predefinita, il testo e l'icona ora utilizzano il valore corrente di AmbientContentAlpha e puoi eseguire manualmente:
color.copy(alpha = AmbientContentAlpha.current)
per ottenere lo stesso effetto nei componenti. Anziché utilizzare ProvideEmphasis, puoi semplicemente fornire un valore direttamente 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 personalizzabile di alto livello. Per un componente di testo di base che non utilizza il colore / lo stile di testo del tema, utilizza BasicText. (Ie6ae0)
- È stato aggiunto maxLines ai campi di testo (Ib2a5b)
- Aggiorna TextFields in modo che accetti KeyboardOptions (Ida7f3)
- Ora la superficie utilizza l'elevazione assoluta (totale) per calcolare gli overlay di elevazione, quindi una superficie nidificata in un'altra 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 ritirati. Utilizza invece le nuove versioni disponibili nella libreria Material. Per le applicazioni non Material, devi invece creare ambienti di temi specifici del tuo sistema di design che possono essere utilizzati nei tuoi componenti. (I74acc, b/172067770)
- foundation.Text è stato ritirato e sostituito con material.Text. Per un'API di testo di base senza opinioni che non utilizza i valori di un tema, consulta androidx.compose.foundation.BasicText. (If64cb)
- Rinomina KeyboardOptions in ImeOptions (I82f36)
- KeyboardType e ImeAction sono stati spostati in KeyboardOptions (I910ce)
- BaseTextField è stato ritirato. Utilizza invece BasicTextField. (I896eb)
- L'annotazione ExperimentalSubcomposeLayoutApi è stata rimossa. Ora SubcomposeLayout può essere utilizzato senza aggiungere @OptIn (I708ad)
- FirstBaseline e LastBaseline sono stati spostati nel pacchetto androidx.compose.ui.layout (Ied2e7)
- L'API Icon è stata aggiornata in modo da accettare Color.Unspecified come possibile colore di tinta che disegnerà l'asset o il pittore fornito senza un filtro di colore. In precedenza, gli tentativi di ignorare la colorazione con Color.Unspecified coloravano con un colore trasparente, senza che venisse visualizzato nulla. (I049e2, b/171624632)
- relativePaddingFrom è stato rinominato in paddingFrom. È stato aggiunto il modificatore paddingFromBaseline per specificare facilmente le distanze dai limiti del layout alle linee di base del testo. (I0440a, b/170633813)
- LaunchedTask è stato rinominato in LaunchedEffect per coerenza con le API SideEffect e DisposableEffect. Per promuovere le best practice, non è consentito LaunchedEffect senza parametri subject. (Ifd3d4)
- MeasureResult è stato spostato 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
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
vengono rilasciati. La versione 1.0.0-alpha06 contiene questi commit.
Modifiche all'API
- androidx.compose.foundation.Icon è stato spostato in androidx.compose.material.Icon. Se non vuoi 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 un interruttore in stati diversi. Consulta 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. Consulta le funzioni predefinite in ButtonConstants per personalizzare questi parametri. (Ic5b7b)
- Aggiunge l'interfaccia RadioButtonColors per rappresentare i colori utilizzati da un RadioButton in stati diversi. Consulta RadioButtonConstants.defaultColors() per personalizzare i colori utilizzati in stati diversi. (I74130)
- Aggiunge l'interfaccia CheckboxColors per rappresentare i colori utilizzati da una casella di controllo in stati diversi. Consulta CheckboxConstants.defaultColors() per personalizzare i colori utilizzati in stati diversi. (I7dbdb)
Correzioni di bug
- I componenti Material non impostano più l'elevazione come z-index. Ciò significa che all'interno dello stesso elemento principale, l'elemento secondario con l'ombra più grande non verrà disegnato automaticamente sopra l'elemento secondario con l'ombra più piccola. Se hai ancora bisogno di questo comportamento, imposta Modifier.zIndex() manualmente dove necessario (I70417, b/170623932)
- Ritirare VectorPainter in favore di rememberVectorPainter per indicare meglio che l'API composable internamente sfrutta "remember" per mantenere i dati nelle composizioni. (Ifda43)
- Attiva le transizioni in ComposeTestRule; rimuovi l'opzione per attivare il cursore lampeggiante da ComposeTestRule. (If0de3)
- È stata aggiunta l'opzione di tastiera a riga singola a CoreTextField (I72e6d)
- L'API Radius è stata rinominata in CornerRadius per esprimere meglio il modo in cui viene utilizzata in Compose. Documentazione aggiornata per indicare che i raggi di angolo negativi vengono bloccati a zero. (I130c7, b/168762961)
- È stato eseguito il refactoring di DrawScope e
ContentDrawScope in modo che siano interfacce
invece di classi astratte
- È stata creata l'implementazione di CanvasDrawScope di DrawScope
- Implementazioni ristrutturate di DrawScope per utilizzare CanvasScope
- È stato creato DrawContext per racchiudere le dipendenze per DrawScope
- Sono stati rimossi i metodi obsoleti in DrawScope (I56f5e)
- La casella è stata creata come funzione in linea. (Ibce0c, b/155056091)
Versione 1.0.0-alpha05
14 ottobre 2020
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
vengono rilasciati. La versione 1.0.0-alpha05 contiene questi commit.
Modifiche all'API
- I popup e le finestre di dialogo ora ereditano FLAG_SECURE dalla finestra principale. È stata aggiunta anche l'opzione per configurare questa impostazione in modo esplicito (I64966, b/143778148, b/143778149)
- Per impostazione predefinita, Modifier.swipeable ha soglie di 56 dp per gli stati (Iab825, b/168610267)
- Tutti gli stati di Scaffold contrassegnati come @Stable. drawerGesturesEnabled in ScaffoldState è stato spostato in Scaffold stesso. (I36645, b/168297016)
- Rimuove il tipo nullable dai parametri lambda di Scaffold. Puoi utilizzare emptyContent() per rappresentare l'assenza di contenuti per un determinato parametro. (I2b318, b/157633857, b/158551084)
Ritirata l'API contentColor() e currentTextStyle(), che vengono sostituite rispettivamente con gli ambienti AmbientContentColor e AmbientTextStyle. Puoi accedere al valore corrente utilizzando
.current
nella proprietà ambient, come per qualsiasi altro ambient. Questa modifica è stata apportata per garantire la coerenza e per evitare di avere più modi per ottenere lo stesso risultato. Inoltre, rinomina alcune proprietà dell'ambiente per descriverne meglio lo scopo, come segue:- ColoreContenutoAmbiente -> ColoreContenutoAmbiente
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
Aggiunge AmbientElevationOverlay, che consente di personalizzare / disattivare l'overlay di elevazione predefinito applicato alle superfici nel tema scuro. (I5b74d)
Correzioni di bug
- Nell'ambito della standardizzazione degli indicatori di valori per le classi in linea, rinomina Color.Unset in Color.Unspecified per garantire la coerenza con le altre classi in linea (I97611, b/169797763)
- Viene introdotto TextOverflow.None. Quando overflow è None, Text non gestisce più l'overflow e segnala le sue dimensioni effettive a LayoutNode. (I175c9, b/158830170)
- launchInComposition è stato rinominato in LaunchedTask per rispettare le linee guida dell'API Compose (I99a8e)
- OnPositionedModifier viene rinominato in OnGloballyPositionedModifier e onPositioned() viene rinominato in onGloballyPositioned(). (I587e8, b/169083903)
Versione 1.0.0-alpha04
1° ottobre 2020
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
vengono rilasciati. La versione 1.0.0-alpha04 contiene questi commit.
Modifiche all'API
- Espone i parametri InteractionState nei componenti Material con stato, per consentire l'estrazione dello stato e la lettura / il controllo dello stato. (Iaca5f, b/168025711, b/167164434)
- Modifica i parametri
*color
su RadioButton e TriStateCheckbox per consentire la personalizzazione completa dei colori utilizzati in ogni stato, nonché la modifica dell'animazione dei colori tra gli stati, se lo desideri. Per ulteriori informazioni, consulta le nuove funzioni di colore animateDefault* in CheckboxConstants e RadioButtonConstants. (I1c532) - È stato rinominato rememberBackdropState in rememberBackdropScaffoldState e aggiunto un parametro aggiuntivo per l'orologio dell'animazione. Il parametro backdropScaffoldState di BackdropScaffold è stato rinominato in scaffoldState. Rinominato BackdropConstants in BackdropScaffoldConstants. (Ib644d)
- È stato aggiunto il componente sperimentale BottomSheetScaffold. (Ie02f0, b/148996320)
- È stato aggiunto il componente sperimentale ModalBottomSheetLayout. (Ic209e, b/148996320)
- Rinomina ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation in defaultElevation e ora restituisce un valore Dp anziché un AnimatedValue. (I5f3ed)
Correzioni di bug
- Sono state aggiornate molte API di grafica
- API di trasformazione di scala e rotazione aggiornate per utilizzare un singolo parametro Offset per rappresentare la coordinata pivot anziché parametri float separati per le coordinate x/y in DrawScope e DrawTransform
- Sono stati rimossi i metodi Rect.expandToInclude e Rect.join
- La documentazione di Raggio è stata aggiornata per indicare ovale oltre a ellittico
- È stata aggiunta la documentazione per indicare che il costruttore pubblico della classe Radius inline non deve essere chiamato direttamente, ma gli oggetti Radius devono essere istigati tramite i costruttori delle funzioni.
- Sono state rimosse le API RoundRect per eseguire query su topRight, bottomRight, bottomCenter e così via.
- Ritiro di Rect.shift a favore di Rect.translate
- Sono state rimosse le API RoundRect.grow e Rect.shrink
- Rinominata RoundRect.outerRect in Rect.boundingRect
- Sono stati rimossi i metodi RoundRect.middleRect/tallMiddleRect/wideMiddleRect e Rect.isStadium
- RoundRect.latoPiùLungo è stato rinominato in RoundRect.maxDimension
- Rinominata RoundRect.shortestSide in RoundRect.minDimension
- È stata modificata la proprietà RoundRect.center in modo che sia una proprietà anziché una funzione
- Il costruttore RoundRect è stato aggiornato in modo da utilizzare le proprietà Radius anziché i singoli parametri per i valori del raggio x/y
- Sono state rimosse le API Size che presupponevano che si trattasse di un rettangolo con inizio in 0,0
- È stata aggiunta un'API di destrutturazione a Radius
- È stata eseguita la migrazione di varie funzioni di estensione di RoundRect in modo che diventino proprietà
- (I8f5c7, b/168762961)
- foundation.Box è stato ritirato. Utilizza invece foundation.layout.Box. (Ie5950, b/167680279)
- La funzionalità Stack è stata rinominata in Box. La cassetta esistente verrà ritirata a favore della nuova cassetta in compose.foundation.layout. Il comportamento della nuova casella è impilare gli elementi secondari uno sopra l'altro quando sono presenti più elementi secondari. Questo è diverso dalla casella precedente, che si comportava in modo simile a una colonna. (I94893, b/167680279)
- I parametri di decorazione delle caselle sono stati ritirati. Se vuoi aggiungere decorazioni/spaziatura alla casella, utilizza i modificatori (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
- Sono state aggiornate molte API di grafica
- API DrawScope aggiornate con metodi di trasformazione basati su ambito per indicare che la trasformazione viene applicata solo all'interno del callback e rimossa dopo l'invocazione del callback
- Documentazione di clipPath aggiornata per fare riferimento a Path instead of rounded rectangle
- Spaziatura fissa nella documentazione per il parametro giusto in clipPath
- È stato rinominato DrawScope.drawCanvas in drawIntoCanvas e è stato rimosso il parametro size
- I parametri dx/dy nel metodo inset sono stati rinominati in orizzontale e verticale
- È stata aggiunta un'overload di inset che fornisce lo stesso valore di inset a tutti e quattro i limiti
- È stata rimossa la documentazione relativa al metodo di inset che indicava che l'inset verrebbe applicato a tutti e quattro i lati
- Documentazione aggiornata per la classe Rect
- Commenti aggiornati sui parametri Rect in modo che corrispondano allo stile kdoc
- Sono stati rimossi Rect.join e Rect.expandToInclude
- È stata creata un'overload per Rect.translate(offset) e ritirato Rect.shift
- (If086a, b/167737376)
- Abbiamo impedito le importazioni statiche dei contenuti degli ambiti di layout (ad es. alignWithSiblings in RowScope). Dovresti utilizzare l'alternativa di ambito esplicito:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be, b/166760797)
Versione 1.0.0-alpha03
16 settembre 2020
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
vengono rilasciati. La versione 1.0.0-alpha03 contiene questi commit.
Modifiche all'API
- Rinomina il parametro
onSelect
diBottomNavigationItem
inonClick
(I91925, b/161809324) - Aggiunge il parametro InteractionState a BottomNavigationItem e Tab, consentendo di sollevare questo stato e di modificare la visualizzazione del componente in stati diversi. (Ia3e9e, b/168025711)
- Rimuove i parametri
disabledBackgroundColor
edisabledContentColor
dai pulsanti. Dovresti invece utilizzare le nuove funzioni di colore predefinite in ButtonConstants. Se stai già impostando contentColor / backgroundColor in modo esplicito, ti consigliamo di utilizzare queste funzioni predefinite e di personalizzare alcuni / tutti i parametri per evitare di sovrascrivere il colore per entrambi gli stati abilitati / disattivati. (If9b52) - Il colore di sfondo del campo di testo non applica più implicitamente la trasparenza alpha. Verrà invece applicato direttamente qualsiasi colore fornito tramite il parametro backgroundColor. (Iecee9, b/167951441)
- InnerPadding è stato rinominato in PaddingValues. (I195f1, b/167389171)
- I parametri
resistanceFactorAtMin
eresistanceFactorAtMax
inModifier.swipeable
sono stati sostituiti da un singolo parametro di resistenza. InSwipeableConstants
è stato aggiunto un nuovo metododefaultResistanceConfig
. (I54238) - Aggiunge il supporto dell'elevazione stateful animata per Button e FloatingActionButton. Ora l'elevazione viene animata tra gli stati predefinito e premuto. Per personalizzare l'elevazione tra gli 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 OutlinedTextField (I267f6, b/162234081)
Correzioni di bug
- Le funzioni di test globali come
onNode
owaitForIdle
sono ora ritirate. Esegui la migrazione alle nuove controparti definite in ComposeTestRule (I7f45a). - DpConstraints e le API che lo utilizzano sono stati ritirati. (I90cdb, b/167389835)
- I parametri minWidth e maxWidth di widthIn sono stati rinominati in min e max. Analogamente per preferredWidthIn, heightIn, preferredHeightIn. (I0e5e1, b/167389544)
- Rimuovi le azioni di scorrimento avanti/indietro. Sono stati aggiunti passaggi in AccessibilityRangeInfo. (Ia47b0)
- Gli utilizzi di gravity sono stati rinominati in modo coerente in allineamento o allineamento nelle API di layout. (I2421a, b/164077038)
- È stato aggiunto onNode e altri metodi globali a ComposeTestRule poiché quelli globali attuali verranno ritirati. (Ieae36)
createAndroidComposeRule
eAndroidInputDispatcher
spostati daandroidx.ui.test.android
aandroidx.ui.test
(Idef08, b/164060572)
Versione 1.0.0-alpha02
2 settembre 2020
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
vengono rilasciati. La versione 1.0.0-alpha02 contiene questi commit.
Modifiche all'API
- È stato aggiunto un componente BackdropScaffold sperimentale. (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
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
vengono rilasciati. La versione 1.0.0-alpha01 contiene questi commit.
Problema noto
= Il primo carattere di un materiale TextField
non può essere rimosso utilizzando il tasto Backspace (b/165956313)
Versione 0.1.0-dev
Versione 0.1.0-dev17
19 agosto 2020
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
vengono rilasciati. La versione 0.1.0-dev17 contiene questi commit.
Modifiche all'API
- I componenti RadioGroup e RadioGroupItems precedentemente ritirati sono stati rimossi. Utilizza invece riga e RadioButton (I381b7, b/163806637)
- Sono stati rimossi i callback onFocusChanged da TextField. Utilizza invece Modifier.focusObserver. (I51089, b/161297615)
- Modifier.drawBorder è stato ritirato. Utilizza invece Modifier.border. La classe di dati del bordo è stata sostituita da BorderStroke (I4257d, b/158160576)
- Sono state rinominate alcune proprietà in SwipeableState: swipeTarget -> targetValue, swipeProgress -> progress, swipeDirection -> direction. È stata aggiunta una funzione rememberSwipeableState per la creazione di SwipeableState. (I2fc9c, b/163129614, b/163132293)
- È stato aggiunto il supporto della barra di notifica con il posizionamento e l'inserimento in coda corretto. Accedi tramite la funzione di sospensione
SnackbarHostState.showSnackbar
. Inoltre:- Sono stati aggiunti i componenti SnackbarHost. Ospita snackbar in base allo stato ed è responsabile della transizione tra snackbar.
- È stato aggiunto SnackbarHostState per consentire il controllo delle snackbar e degli host di snackbar e per disaccoppiarlo da ScaffoldState. Puoi accedere a questo stato anche tramite
scaffoldState.snackbarHostState
. - È stato aggiunto il sovraccarico della barra snack per supportare l'interfaccia comune tra snackbarHostState e le barre snack stesse. (I79aaa)
- Aggiunge il parametro abilitato a IconButton e riordina i parametri in IconToggleButton (I0a941, b/161809385, b/161807956)
- La versione di ListItem con API basata su stringhe è stata rimossa. Utilizza la versione dello slot. (Ib8f57, b/161804681)
- È stato rimosso il componente FilledTextField deprecato. Utilizza invece TextField per ottenere l'implementazione di Material Design del campo di testo compilato. (I5e889)
- AlertDialog ora utilizza FlowRow per i pulsanti (I00ec1, b/161809319, b/143682374)
- Sono stati aggiunti i parametri in Modifier.swipeable per modificare l'entità della resistenza quando si scorre oltre i limiti. Parametri Value [min/max]rimossi. (I93d98)
- È stato aggiunto il parametro backgroundColor a LinearProgressIndicator e la spaziatura interna è stata rimossa da CircularProgressIndicator. È stato aggiunto il nuovo ProgressIndicatorConstants.DefaultProgressAnimationSpec che può essere utilizzato come AnimationSpec predefinito per l'animazione dell'avanzamento tra i valori (If38b5, b/161809914, b/161804677)
- Parametro facoltativo velocityThreshold aggiunto a Modifier.swipeable. (I698ba)
- bottomBarSize, fabSize e altri e non sono più disponibili in ScaffoldState. Utilizza Modifier.onPosition sul componente di cui vuoi conoscere le dimensioni. I parametri contentColor e Modifier sono stati aggiunti a Scaffold (Ic6f7b, b/161811485, b/157174382)
- Rinomina e riordina alcuni parametri nella scheda per garantire la coerenza con altre API (Ia2d12, b/161807532)
- Suddivide TabRow in TabRow e ScrollableTabRow, rimuovendo isScrollable da TabRow. Espone anche edgePadding in ScrollableTabRow, che consente di controllare lo spazio libero prima / dopo le schede. (I583e8, b/161809544)
- L'oggetto
TabRow
è stato rimosso e sostituito da TabConstants. TabRow.TabPosition è stato spostato a livello superiore (TabPosition) e indicatorContainer è stato rinominato inindicator
. Consulta gli esempi e la documentazione per informazioni dettagliate su come utilizzare l'API aggiornata e i valori predefiniti. (I54d45, b/161809544) - Il parametro thresholds in Modifier.swipeable è stato modificato; ora preleva una coppia di stati (di tipo T) e restituisce la soglia tra di loro sotto forma di ThresholdConfig. A SwipeToDismiss è stato aggiunto il parametro dismissThresholds, che è una funzione lambda (DismissDirection) -> ThresholdConfig. (Ie1080)
- Il cursore ha più colori per una personalizzazione granulare (I73e64, b/161810475)
- Il parametro di colore della scheda è stato rinominato in backgroundColor (I01fc1, b/161809546)
- Ora la barra di notifica ha colori di sfondo e contenuti personalizzabili (I238f2, b/161804381)
- I parametri di personalizzazione modifier, backgroundColor, contentColor e scrimColor sono stati aggiunti ai riquadri (I23655, b/161804378)
- Il composable
state { ... }
è stato ritirato a favore di chiamate esplicite aremember { mutableStateOf(...) }
per maggiore chiarezza. Ciò riduce la superficie complessiva dell'API e il numero di concetti per la gestione dello stato e corrisponde al patternby mutableStateOf()
per la delega delle proprietà della classe. (Ia5727) - Il parametro padding del pulsante è stato rinominato in contentPadding (Id252e, b/161809394)
- Aggiungi un componente Materiale sperimentale SwipeToDismiss. (I129e5)
Correzioni di bug
onChildPositioned
eOnChildPositionedModifier
sono stati rimossi. Gli sviluppatori devono utilizzareonPositioned
eOnPositionedModifier
nel layout secondario. (I4522e, b/162109766)- È stata aggiunta la funzione lambda mergePolicy a SemanticsPropertyKey. Questo può essere utilizzato per definire un criterio personalizzato per l'unione con la semantica di mergeAllDescendants. Il criterio predefinito è utilizzare il valore principale se già presente, altrimenti il valore secondario. (Iaf6c4, b/161979921)
- IntSize ora è una classe in linea (I2bf42)
PlacementScope.placeAbsolute()
è stato rinominato inPlacementScope.place()
e il precedentePlacementScope.place()
è stato rinominato inPlacementScope.placeRelative()
. Di conseguenza, il metodoPlacementScope.place()
non rispecchierà più automaticamente la posizione nei contesti da destra a sinistra. Se vuoi, utilizza invecePlacementScope.placeRelative()
. (I873ac, b/162916675)- È stato ritirato PxBounds in favore di Rect. Sono stati aggiornati tutti gli utilizzi di PxBounds con rect e sono state aggiunte annotazioni di ritiro/sostituzione appropriate per facilitare la migrazione. (I37038, b/162627058)
- RRect è stato rinominato in RoundRect per adattarsi meglio ai pattern di denominazione di compose Sono stati creati costruttori di funzioni simili a RRect e sono stati ritirati i costruttori di funzioni RRect (I5d325)
Versione 0.1.0-dev16
5 agosto 2020
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
vengono rilasciati. La versione 0.1.0-dev16 contiene questi commit.
Modifiche all'API
- Colors ora è una classe finale anziché un'interfaccia. Anziché estendere e fornire un'implementazione personalizzata, devi creare un nuovo ambiente per l'oggetto tema personalizzato e accedere all'oggetto tema tramite il nuovo ambiente nei componenti, in modo simile al funzionamento interno di MaterialTheme. (Ibae84)
- ColorPalette è stato rinominato in Colori per mappare meglio il sistema di colori di Material e rimuovere la confusione sul fatto che ColorPalette sia un oggetto di temi "generico", anziché un'implementazione specifica del sistema di colori di Material. Inoltre, rinomina lightColorPalette e darkColorPalette in lightColors e darkColors rispettivamente. (I9e976, b/161812111)
- Rinomina il parametro
text
di BottomNavigationItem inlabel
,onSelected
inonSelect
,activeColor
inselectedContentColor
,inactiveColor
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.swipeable. È stata introdotta una nuova classe SwipeableState e DrawerState e BottomDrawerState sono stati sottoposti a refactoring per ereditarlo. [Modal/Bottom]DrawerLayout non accetta più un parametro onStateChange. (I72332, b/148023068)- Il pacchetto foundation.shape.corner è stato appiattito in foundation.share (I46491, b/161887429)
- È stata aggiunta l'annotazione ExperimentalMaterialApi. RippleTheme contrassegnato come sperimentale (Ic5fa0, b/161784800)
- Material FilledTextField è stato rinominato in TextField e la funzionalità di base TextField è stata rinominata in BaseTextField per rendere più semplice la scoperta e l'utilizzo dell'API più semplice (Ia6242, b/155482676)
Correzioni di bug
- OnChildPositioned è stato ritirato. Utilizza invece OnPositioned sul componente figlio. (I87f95, b/162109766)
- Risolvere correzioni generali dell'API (I077bc)
- Rimuovere l'interfaccia OffsetBase inutilizzata
- Allinea le classi Offset e IntOffset per avere una piattaforma API coerente
- Rinomina IntOffset.Origin in IntOffset.Zero per essere coerente con l'API Offset
- Il metodo nativeCanvas è stato spostato dall'interfaccia Canvas per consentire ai consumatori di creare le proprie istanze Canvas
- È stata creata la classe stub EmptyCanvas per eseguire il refactoring di DrawScope in modo che sia un parametro non nullo anziché lateinit e garantire la non nullità del campo
- I valori enumerati ClipOp sono stati rinominati in Pascal Case
- Le enum FilterQuality sono state rinominate in Pascal Case
- Gli enum StrokeJoin sono stati rinominati in Pascal Case
- Gli enum PointMode sono stati rinominati in Pascal Case
- Gli enum PaintingStyle sono stati rinominati in Pascal Case
- Gli enum PathFillType sono stati rinominati in Pascal Case
- I valori enumerati di StrokeCap sono stati rinominati in Pascal Case
- È stata aggiornata l'implementazione di DrawCache in modo che non utilizzi più i parametri lateinit
- DrawScope è stato aggiornato in modo da non utilizzare più la delega lazy per i parametri interni fillPaint e strokePaint
- Componibile immagine aggiornato per evitare l'utilizzo di Box per un overhead ridotto
- Aggiornamento della classe Outline per includere le annotazioni @Immutable
- PathNode è stato aggiornato in modo da avere annotazioni @Immutable per ogni istruzione del percorso
- È stata aggiornata la composizione secondaria di vettore per rimuovere i controlli condizionali ridondanti per l'uguaglianza, poiché la composizione li gestisce già
- Metodi di costruttore complementari di Rect ritirati a favore di costruttori di funzioni
- Classi e costruttori di funzioni di Brush aggiornati con API @Immutable e @Stable
- È stato aggiornato l'enum VertexMode in modo che sia in PascalCase
- Aggiornamento del metodo selectPaint di DrawScope per sovrascrivere in modo condizionale i parametri di tratto sul colore se sono stati modificati
- È stato aggiornato il parametro Size per aggiungere l'API di destrutturazione, rinominare UnspecifiedSize in Unspecified e rimuovere i metodi inutilizzati
- Spostare la finestra di dialogo nell'interfaccia utente (I47fa6)
SemanticsNodeInteraction.performPartialGesture
rimosso. Utilizza inveceSemanticsNodeInteraction.performGesture
. (Id9b62)SemanticsNodeInteraction.getBoundsInRoot()
rinominato inSemanticsNodeInteraction.getUnclippedBoundsInRoot()
(Icafdf, b/161336532)- Le API per il supporto della scrittura 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 in Modifier.progressSemantics (I9c0b4)
- Aggiorna material-icons-extended con le icone più recenti aggiunte a Material.io/icons (I4b1d3)
- Richiedi che il tipo T sia specificato esplicitamente per transitionDefinition. (I1aded)
- Modifier.plus è deprecato. Utilizza Modifier.then. "Poi" indica più chiaramente l'ordine, ma impedisce anche di digitare
Modifier.padding().background() + anotherModifier
, che interrompe la catena ed è più difficile da leggere (Iedd58, b/161529964) - Il nome di AndroidComposeTestRule è stato rinominato in createAndroidComposeRule. (I70aaf)
- Aggiungi SemanticsMatcher per isFocused() e isNotFocused(). (I0b760)
- È stato rimosso
BaseGestureScope.globalBounds
, che non deve essere utilizzato nei test. Utilizza invece le coordinate locali del nodo con cui interagisci. (Ie9b08) - Posizione del popup fissa sui display con ritaglio. (Idd7dd)
- Modifier.drawBackground è stato rinominato in Modifier.background (I13677)
Versione 0.1.0-dev15
22 luglio 2020
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
vengono rilasciati. La versione 0.1.0-dev15 contiene questi commit.
Aggiornamento delle dipendenze
- Per utilizzare la versione
0.1.0-dev15
di Compose, devi aggiornare le dipendenze in base ai nuovi snippet di codice mostrati sopra in Dichiarazione delle dipendenze.
Modifiche all'API
L'annotazione
@Model
è stata ritirata. Utilizza state e mutableStateOf come alternative. Questa decisione di ritiro è stata presa dopo un'attenta discussione.Giustificazione
La motivazione include, a titolo esemplificativo:
- Riduce la superficie dell'API e i concetti che dobbiamo insegnare
- Maggiore allineamento con altri kit di strumenti paragonabili (Swift UI, React, Flutter)
- Decisione reversibile. Possiamo sempre ripristinare
@Model
in un secondo momento. - Rimuovi l'utilizzo di casi limite e le domande difficili da rispondere sulla configurazione di
@Model
come elementi da gestire - Classi di dati
@Model
, uguale, hashcode e così via. - Come faccio ad avere alcune proprietà "osservate" e altre no?
- Come faccio a specificare l'uguaglianza strutturale rispetto a quella referenziale da utilizzare nell'osservazione?
- Riduce la "magia" nel sistema. Ridurrebbe la probabilità che qualcuno presuma che il sistema sia più intelligente di quanto non sia (ad es. che sappia confrontare un elenco)
- Rende la granularità dell'osservazione più intuitiva.
- Migliora la possibilità di eseguire il refactoring da variabile a proprietà nella classe
- Potrebbe aprire la possibilità di eseguire ottimizzazioni specifiche per stato create manualmente
- Si allinea di più al resto dell'ecosistema e riduce l'ambiguità rispetto allo stato immutabile o all'approccio "abbracciamo lo stato mutabile"
Note sulla migrazione
Quasi tutti gli utilizzi esistenti di
@Model
possono essere trasformati in uno dei due modi seguenti. L'esempio seguente contiene una classe@Model
con due proprietà solo per fare un esempio e viene utilizzata in un composable.@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: utilizza
State<OriginalClass>
e crea copie.Questo approccio è semplificato con le classi di dati di Kotlin. In sostanza, trasforma 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 utilitàcopy(...)
della classe di dati.È importante notare che questo approccio funziona solo quando le uniche mutazioni a quella classe sono state eseguite nello stesso ambito in cui viene creata l'istanza
State
. Se la classe si sottopone a mutazioni interne al di fuori dell'ambito di utilizzo e ti basi sull'osservazione di questo comportamento, l'approccio successivo è quello che ti consigliamo di utilizzare.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: utilizza mutableStateOf e i delegati delle proprietà
Questo approccio è semplificato con i delegati delle proprietà di Kotlin e l'API
mutableStateOf
che consente di creare istanze di MutableState al di fuori della composizione. In sostanza, sostituisci tutte le proprietàvar
della classe originale con proprietàvar
conmutableStateOf
come delegato della proprietà. Il vantaggio è che l'utilizzo della classe non cambierà affatto, solo la sua implementazione interna. Tuttavia, il comportamento non è completamente identico all'esempio originale, poiché ora ogni proprietà viene osservata/sottoscritta singolarmente, pertanto le ricostruzioni che vedi dopo questa riorganizzazione potrebbero essere più limitate (un bene).class Position(x: Int, y: Int) { var x by mutableStateOf(x) var y by mutableStateOf(y) } // source of Example is identical to original @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }
(I409e8, b/152050010, b/146362815, b/146342522, b/143413369, b/135715219, b/143263925, b/139653744)
Il callback onFocusChange nei campi di testo è stato rinominato in onFocusChanged (Ida4a1)
È stato aggiunto il parametro soglie in statoDraggable per specificare le soglie tra le ancore. È stato utilizzato per impostare una soglia di 56 dp nel riquadro inferiore. Inoltre, BottomDrawerLayout ora utilizza un enum BottomDrawerState separato. (I533fa)
Rimuove Modifier.ripple, precedentemente deprecato. Ora clickable utilizza l'effetto ripple come indicazione predefinita (se hai impostato MaterialTheme {} nella tua applicazione), quindi nella maggior parte dei casi puoi semplicemente utilizzare clickable e ottenere l'indicazione dell'effetto ripple senza costi. Se devi personalizzare il parametro colore / dimensioni / contenuto per l'eco, puoi creare manualmente un'indicazione di eco e passarla a selezionabile come parametro indicazione. (I663b2, b/155375067)
È stata rimossa l'override deprecato del composable FilledTextField (I7f8f8)
Rinomina l'oggetto Button (contenente i valori predefiniti utilizzati dalla funzione Button) in ButtonConstants (I7c5f7, b/159687878)
Lo slot dei contenuti del pulsante ora si comporta come una riga (utile quando devi avere un'icona con un testo; consulta gli esempi su come scrivere il pulsante) (I0ff10, b/158677863)
RadioGroup e RadioGroupItem sono stati ritirati. Utilizza Box con Modifier.selectable, riga e colonna per creare un insieme appropriato di scelte di radioButton in base al tuo design (I7f5cf, b/149528535)
È stato aggiunto il campo di testo con riquadro Materiale (I1a518)
androidx.ui.foundation.TextFieldValue e androidx.ui.input.EditorValue sono deprecati. Anche i composabili TextField, FilledTextField e CoreTextField che utilizzano questo tipo sono deprecati. Utilizza invece androidx.ui.input.TextFieldValue (I4066d, b/155211005)
TabRow.TabPosition non contiene la posizione in DP, né in IntPx (I34a07, b/158577776)
È stato sostituito l'utilizzo di IntPx con Int. È stata sostituita IntPxPosition con IntOffset. IntPxSize sostituito con IntSize. (Ib7b44)
Per consolidare il numero di classi utilizzate per rappresentare le informazioni sulle dimensioni, standardizza l'utilizzo della classe Size anziché PxSize. Ciò offre i vantaggi di una classe in linea per sfruttare un valore lungo per imballare 2 valori float per rappresentare la larghezza e l'altezza rappresentate come valori float. (Ic0191)
Viene ritirato Modifier.ripple. Ora clickable utilizza l'effetto ripple come indicazione predefinita (se hai impostato MaterialTheme {} nella tua applicazione), quindi nella maggior parte dei casi puoi semplicemente utilizzare clickable e ottenere l'indicazione dell'effetto ripple senza costi. Se devi personalizzare il parametro colore / dimensioni / contenuto per l'eco, puoi creare manualmente un'indicazione di eco e passarla a selezionabile come parametro indicazione. (I101cd, b/155375067)
L'API Scaffold è stata rielaborata: alcuni parametri sono stati rinominati e sono stati aggiunti nuovi parametri per una migliore personalizzazione. È stato aggiunto un getter per le dimensioni delle query di Fab, TopBar e BottomBar (I0e7ce)
È stato aggiunto il componente DropdownMenu 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 un'indicazione di pressione/trascinamento/altro sugli elementi interattivi personalizzati (I8425f, b/155287131)
Implementazioni CanvasScope consolidate quindi ora ci sono solo DrawScope e ContentDrawScope CanvasScope è stato rinominato in DrawScope. È stato aggiornato DrawScope per implementare l'interfaccia Density e fornire LayoutDirection. È stato eliminato il sottotipo DrawScope in ContentDrawScope. Painter e PainterModifier sono stati aggiornati in modo da non gestire più autonomamente una proprietà RTL, poiché DrawScope la fornisce già senza doverla fornire manualmente (I1798e)
Rinomina Emphasis.emphasize() in Emphasis.applyEmphasis() (Iceebe)
I pulsanti disattivati ora rispettano visivamente la specifica Material Design (I47dcb, b/155076924)
FilledTextField supporta l'azione IME, la trasformazione visiva e il tipo di tastiera (I1f9cf, b/155075201)
Aggiunge il parametro strokeWidth a CircularProgressIndicator per personalizzare la dimensione del tratto. Per modificare la dimensione (altezza) del tratto di un indicatore di avanzamento lineare, puoi utilizzare Modifier.preferredHeight() o un altro modificatore delle dimensioni. (Icea16, b/154919081)
Aggiunge il parametro strokeWidth a CircularProgressIndicator per personalizzare la dimensione del tratto. Per modificare la dimensione (altezza) del tratto di un indicatore di avanzamento lineare, puoi utilizzare Modifier.preferredHeight() o un altro modificatore delle dimensioni. (Icea16, b/154919081)
È stata aggiunta l'API slot per le icone iniziali e finali in FilledTextField e la gestione dello stato di errore (Ic12e0)
Il colore predefinito del FAB e del FAB esteso è stato modificato in MaterialTheme.colors.secondary. (I3b9b9, b/154118816)
Sono stati sostituiti tutti gli utilizzi di Color nullable nell'API con valori non nullable e viene utilizzato Color.Unset anziché null (Iabaa7)
EdgeInsets è stato rinominato in InnerPadding. Il parametro innerPadding dei pulsanti Material è stato rinominato in padding. (I66165)
Il cursore ora è senza stato. Gli utenti dovranno passare e aggiornare lo stato autonomamente, come in qualsiasi altro controllo. (Ia00aa)
StaticDrawer è stato rimosso. Se necessario, utilizza una casella con larghezza specificata in base al materiale (I244a7)
È stata aggiunta l'implementazione di Material Design per il campo di testo compilato (Ic75cd)
È stato aggiunto il parametro modificatore a ListItem e sono stati riordinati i parametri per promuovere il corpo lambda finale (I66e21)
Aggiunge il parametro del costruttore defaultFontFamily a Typography, consentendo di specificare la famiglia di caratteri predefinita che verrà utilizzata per tutti gli stili di testo forniti che non hanno una famiglia impostata. (I89d07)
Le tabelle di dati dei materiali sono state rimosse temporaneamente dall'interfaccia API. (Iaea61)
Parametri rinominati nel composable Divider (Ic4373)
children (Ia6d19)
Rimuove MaterialTheme.emphasisLevels, utilizza invece EmphasisAmbient.current per recuperare i livelli di enfasi (Ib5e40)
Il sistema di temi delle forme viene aggiornato in base alle specifiche di Material Design. Ora puoi fornire forme piccole, medie e grandi da utilizzare per la maggior parte dei componenti (Ifb4d1)
Le API MaterialTheme, come MaterialTheme.colors() e MaterialTheme.typography(), sono state modificate in modo da essere proprietà anziché funzioni. Rimuovi le parentesi dalle chiamate esistenti. Non è prevista alcuna modifica del comportamento. (I3565a)
Le API FloatingActionButton sono state sottoposte a refactoring per accettare lambda composibili anziché primitivi. Consulta i sample aggiornati per informazioni sull'utilizzo. (I00622)
Aggiungi il parametro
enabled
a casella di controllo, pulsante di attivazione/disattivazione e pulsante di attivazione/disattivazione (I41c16)Ora l'effetto Ripple è un modificatore. Anche se lo stato Cliccabile non è ancora stato convertito, l'utilizzo consigliato è
Clickable(onClick = { ... }, modifier = ripple())
(Ie5200, b/151331852, b/150060763)Le classi Surface e Card sono state spostate da androidx.ui.material.surface ad androidx.ui.material (I88a6d, b/150863888)
Button, FloatingActionButton e Clickable ora hanno un parametro
enabled
separato. Alcuni dei parametri di Button sono stati rinominati o riordinati. (I54b5a)Il nome Image è stato rinominato in ImageAsset per distinguere meglio la differenza tra i dati di Image e il componente composable Image in arrivo utilizzato per partecipare al layout e disegnare i contenuti. _Body:Created extension method on android.graphics.Bitmap, Bitmap.asImageAsset(), to create an instance of an ImageAsset useful for combining traditional Android application development with the compose framework (Id5bbd)
È stata rimossa l'API Snackbar con parametri String a favore dell'utilizzo dell'overload che accetta lambda composibili. Visualizza i sample aggiornati per informazioni sull'utilizzo (I55f80)
API Tab sottoposte a refactoring per accettare lambda
text
eicon
(Ia057e)È stato aggiunto il componente BottomNavigation. Consulta la documentazione e gli esempi per informazioni sull'utilizzo (I731a0)
Sono stati aggiunti Icon, IconButton e IconToggleButton e rimosso AppBarIcon. Puoi sostituire direttamente gli utilizzi esistenti di AppBarIcon con IconButton, e ora avranno il target di tocco corretto. Consulta i Samples per informazioni sull'utilizzo e la sezione Icone per le icone Material fornite che puoi utilizzare direttamente con questi componenti. (I96849)
È stato sostituito ButtonStyle con funzioni distinte ed è stato rimosso il sovraccarico di testo (stringa). Consulta i sample aggiornati per informazioni sull'utilizzo. (If63ab, b/146478620, b/146482131)
Rinomina il modificatore
Border
inDrawBorder
(I8ffcc)LayoutCoordinates non ha più una proprietà position. La proprietà posizione non ha senso se si prendono in considerazione LayoutModifiers, la rotazione o la scalatura. Gli sviluppatori devono invece utilizzare parentCoordinates e childToLocal() per calcolare la trasformazione da un LayoutCoordinate all'altro.
LayoutCoordinates utilizza IntPxSize per la proprietà size anziché PxSize. I layout utilizzano dimensioni in pixel interi, pertanto tutte le dimensioni del layout devono utilizzare numeri interi e non valori in virgola mobile. (I9367b)
Modifiche non compatibili all'API Ambient. Per informazioni dettagliate, consulta il log e la documentazione di
Ambient<T>
(I4c7ee, b/143769776)È stato aggiunto il componente Materiale di base. Implementazioni di Scaffold (I7731b)
DrawBorder è stato sostituito da Border Modifier (Id335a)
Correzioni di bug
- FocusModifier è deprecato a favore di Modifier.focus, Modifier.focusRequester, Modifier.focusObserver. FocusState e FocusDetailedState sono stati ritirati a favore di FocusState2 (I46919, b/160822875, b/160922136)
- VerticalScroller e HoriziontalScroller sono stati ritirati. Utilizza ColonnaScorrevole e RigaScorrevole per un'esperienza integrata con il comportamento e i parametri di Colonna/Riga oppure Modifier.verticalScroll e Modifier.horizontalScroll sul tuo elemento. Analogamente, ScrollerPosition è stato ritirato a favore di ScrollState (I400ce, b/157225838, b/149460415, b/154105299)
- Le API Modifier.draggable e Modifier.scrollable sono state riscritte. DragDirection è stato rimosso a favore di Orientation. Lo stato richiesto per la funzionalità scorrevole è stato semplificato. ScrollableState è stato rinominato in ScrollableController (Iab63c, b/149460415)
runOnIdleCompose
è stato rinominato inrunOnIdle
(I83607)- Le proprietà di semantica a valore singolo ora utilizzano uno stile di chiamata. Ad esempio, "semantics { hidden = true }" ora viene scritto come: 'semantics { hidden() }'. (Ic1afd, b/145951226, b/145955412)
- Diverse API di test sono state rinominate per essere più intuitive. Tutte le API findXYZ sono state rinominate in onNodeXYZ. Tutte le API doXYZ sono state rinominate in performXYZ. (I7f164)
- L'API Transition è stata modificata in modo da restituire un TransitionState anziché passare il TransitionState ai figli. In questo modo, l'API è più coerente con le API animate(). (I24e38)
- È stata aggiunta una classe di unità IntBounds che rappresenta i limiti di pixel interi del layout. L'API di PopupPositionProvider è stata aggiornata per utilizzarla. (I0d8d0, b/159596546)
- È stato aggiunto un nuovo flag facoltativo useUnmergedTree per testare i finder. (I2ce48)
- Sono state rimosse le API di test delle dimensioni obsolete. (Iba0a0)
- È stata rimossa la classe Shader in linea che avvolgeva la classe di attesa NativeShader. È stato rinominato NativeShader in Shader. La classe inline Shader con wrapping non ha aggiunto nulla di utile all'interfaccia API ed era una classe inline, quindi utilizza direttamente la classe NativeShader. (I25e4d)
- I popup, le finestre di dialogo e i menu ora ereditano il MaterialTheme contestuale (Ia3665, b/156527485)
- I menu a discesa Material sono ora scorrevoli. (Ide699)
- È stato 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 della misura (Ic7d9d)
- Utilizza AnimationSpec anziché AnimationBuilder nelle API di primo livello per chiarire il concetto di specifica di animazione statica - Migliora il DSL di transizione rimuovendo il requisito lambda per creare AnimationSpec come tween, spring. ma accettano direttamente i parametri del costruttore. -Migliora la facilità d'uso complessiva di AnimationSpec aprendo i metodi di costruzione anziché fare affidamento sui costruttori -Modifica la durata e il ritardo per KeyFrames e Tween in Int. Questo elimina il casting di tipo e il sovraccarico di metodi non necessari (per supportare sia Long che Int). (Ica0b4)
- Ora il pulsante di attivazione/disattivazione viene visualizzato in uno stato disattivato quando
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 Int della linea di allineamento restituite da Placeable#get(AlignmentLine) ora non sono nulle. Se la riga di allineamento sottoposta a query non è presente, verrà restituito AlignmentLine.Unspecified. (I896c5, b/158134875)
La classe Radius è stata sottoposta a refactoring per diventare una classe in linea. Sono stati rimossi i metodi di creazione di compagni in favore del costruttore di funzioni con parametro predefinito per fare in modo che il raggio sull'asse y corrisponda a quello del parametro obbligatorio del raggio sull'asse x.
È stato aggiornato DrawScope.drawRoundRect in modo da utilizzare un singolo parametro Radius anziché due valori float distinti per il raggio lungo gli assi x e y (I46d1b)
Per consolidare il numero di classi utilizzate per rappresentare le informazioni di posizionamento, standardizza l'utilizzo della classe Offset anziché PxPosition. Ciò offre i vantaggi di una classe in linea per sfruttare un valore long per imballare 2 valori float per rappresentare gli offset x e y rappresentati come valori float. (I3ad98)
È stato sostituito l'utilizzo della classe Px in varie classi compose nell'ambito del grande impegno di refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel. Classe Px eliminata nella sua interezza (I3ff33)
Il componente attivabile/disattivabile è stato ritirato. Utilizza Modifier.toggleable (I35220, b/157642842)
È stato sostituito l'utilizzo della classe Px in varie classi compose nell'ambito del grande impegno di refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel (I086f4)
È stato sostituito l'utilizzo della classe Px in varie classi compose nell'ambito del grande impegno di refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel (Id3434)
È stato sostituito l'utilizzo della classe Px in varie classi compose nell'ambito del grande impegno di refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel (I97a5a)
È stato corretto il problema per cui l'evento onClick non veniva invocato per gli elementi DropdonMenuItem. (I3998b, b/157673259)
MutuallyExclusiveSetItem è stato ritirato. Utilizza 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)
È stato sostituito l'utilizzo della classe Px in vari classi di composizione nell'ambito del grande impegno di refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel (I19d02)
VerticalScroller ora fornisce la colonna out of the box. HorizontalScroller ora fornisce la riga out of the box. (Ieca5d, b/157020670)
È stato sostituito l'utilizzo della classe Px in varie classi compose nell'ambito del grande impegno di refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel (Iede0b)
Modifier.semantics non è più deprecato per consentire l'utilizzo per i componenti di alto livello. (I4cfdc)
L'API dei modificatori DrawLayer è stata modificata: outlineShape è stato rinominato in shape e ha il valore predefinito RectangleShape e ora non è null; clipToOutline è stato rinominato in clip; clipToBounds è stato rimosso perché è uguale a clip == true con RectangleShape (I7ef11, b/155075735)
Sono state aggiornate le API compose di livello superiore che espongono un Canvas per esporre CanvasScope. In questo modo, i consumatori non dovranno più gestire i propri oggetti Paint. I consumatori che hanno ancora bisogno di accedere a un Canvas possono utilizzare il metodo drawCanvas dell'estensione, che fornisce un callback per emettere comandi di disegno con il Canvas di base. (I80afd)
Il composable AlignmentLineOffset è deprecato. Utilizza invece il modificatore relativePaddingFrom(). Il composable CenterAlignmentLine è stato rimosso. (I60107)
L'API lambda finale WithConstraints è stata modificata. Ora, anziché due parametri, ha un ambito del ricevitore che, oltre a constraints e layoutDirection, fornisce le proprietà minWidth, maxWidth, minHeight e maxHeight in DP (I91b9a, b/149979702)
È stato aggiunto il modificatore di layout defaultMinSizeConstraints, che imposta i vincoli delle dimensioni sul layout con a capo 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 è stato rimosso. Utilizza FocusModifier.requestFocus per ottenere lo stato attivo. (Ic4826)
È stata creata l'API CanvasScope che avvolge un oggetto Canvas per esporre un'API di disegno dichiarativa e senza stato. Le trasformazioni sono contenute nel proprio ambito del ricevitore e le informazioni sulle dimensioni sono limitate anche ai limiti di inset corrispondenti. Non richiede all'utente di gestire un proprio oggetto stato di Paint per la configurazione delle operazioni di disegno.
È stato aggiunto CanvasScopeSample e l'app di dimostrazione è stata aggiornata in modo da includere una dimostrazione di grafica dichiarativa (Ifd86d)
Aggiungere la personalizzazione del colore del cursore al TextField (I6e33f)
TextFieldValue utilizzato con TextField ora può sopravvivere alla ricreazione dell'attività se utilizzato come segue:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
(I5c3ce, b/155075724)LayoutModifier2 è stato rinominato LayoutModifier. (Id29f3)
Interfaccia LayoutModifier ritirata. (I2a9d6)
È stato sostituito il parametro focusIdentifier di CoreTextField/TextField con FocusNode per l'integrazione con il sottosistema di messa a fuoco. (I7ea48)
Le funzioni di misurazione intrinseca in Layout e LayoutModifier2 ora hanno un ricevitore IntrinsicMeasureScope che fornisce l'API di query intrinseca con la direzione del layout propagata implicitamente. (Id9945)
È stato aggiunto il nuovo Modifier.zIndex() per controllare l'ordine di disegno degli elementi secondari all'interno dello stesso layout principale. La proprietà elevation in DrawLayerModifier è stata rinominata in shadowElevation e non controlla più l'ordine di disegno. L'ordine dei parametri di DrawShadow è cambiato: l'elevazione è ora la prima e la forma è la seconda con un valore predefinito RectangleShape. (I20150, b/152417501)
RectangleShape è passato da androidx.ui.foundation.shape.* ad androidx.ui.graphics.* (Ia74d5, b/154507984)
Aggiornamento dell'API TextField: i callback onFocus e onBlur sono stati uniti in un unico callback onFocusChange(Boolean) con parametro (I66cd3)
Sono stati aggiunti i parametri verticalGravity e horizontalGravity rispettivamente a Riga e Colonna. (I7dc5a)
Aggiornati wrapContentWidth e wrapContentHeight in modo che prevedano l'allineamento verticale o orizzontale anziché qualsiasi allineamento. Il modificatore di gravità è stato aggiornato in modo da accettare l'allineamento verticale o orizzontale. Le opzioni Riga, Colonna e Serie sono state aggiornate per supportare gli allineamenti continui personalizzati. (Ib0728)
È stata creata l'API PixelMap per supportare la query delle informazioni sui pixel da un asset immagine. (I69ad6)
Rimuove ProvideContentColor, ma utilizza direttamente ContentColorAmbient con
Providers
(Iee942)Il modulo ui-text-compose è stato rinominato in ui-text. ui-text now contiene composabili CoreText e CoreTextField (Ib7d47)
Il modulo ui-text viene rinominato ui-text-core (I57dic)
Sono stati spostati i composabili ui-framework/CoreText, CoreTextField in ui-text-compose. Ti consigliamo di includere ui-text-compose nel tuo progetto. (I32042)
Miglioramento dell'API DrawModifier:
- È stato creato l'ambito del ricevente per draw() ContentDrawScope
- Sono stati rimossi tutti i parametri in draw()
- DrawScope ha la stessa interfaccia dell'ex CanvasScope
- ContentDrawScope ha il metodo drawContent() (Ibaced, b/152919067)
runOnIdleCompose
erunOnUiThread
ora sono funzioni globali invece di metodi su ComposeTestRule. (Icbe8f)[Mutabile]Gli operatori di delega della proprietà stato sono stati spostati nelle estensioni per supportare le ottimizzazioni della delega della proprietà di Kotlin 1.4. Gli utenti che chiamano devono aggiungere importazioni per continuare a utilizzare
by state { ... }
oby mutableStateOf(...)
. (I5312c)Aggiunti positionInParent e boundsInParent per LayoutCoordinates. (Icacdd, b/152735784)
ColoredRect è stato ritirato. Utilizza invece Box(Modifier.preferredSize(width, height).drawBackground(color)). (I499fa, b/152753731)
LayoutResult è stato rinominato in MeasureResult. (Id8c68)
È stata aggiunta LayoutModifier2, una nuova API per definire i modificatori di layout. È stato deprecato LayoutModifier (If32ac)
Operatore Modificatore più sostituito con funzioni di estensione di fabbrica (I225e4)
La funzionalità Trascinabile è stata spostata nel modificatore (Id9b16, b/151959544)
Il composable ParentData è deprecato. Devi creare un modificatore che implementi l'interfaccia ParentDataModifier o utilizzare il modificatore LayoutTag se devi semplicemente taggare gli elementi layout secondari per riconoscerli all'interno del blocco di misura. (I51368, b/150953183)
Componente componibile del Centro ritirato. Deve essere sostituito con il modificatore LayoutSize.Fill + LayoutAlign.Center o con uno dei composabili Box o Stack con modificatori appropriati applicati (Idf5e0)
È stata aggiunta l'API VectorPainter per sostituire l'API di composizione secondaria esistente per le immagini vettoriali. Il risultato della composizione secondaria è un oggetto VectorPainter anziché DrawModifier. Sono stati ritirati i composabili DrawVector precedenti a favore di VectorPainter.
L'API Image(Painter) è stata rinominata in PaintBox(Painter) È stato creato un composable vettoriale che si comporta come il composable Immagine, tranne che con un asset vettoriale anziché un asset immagine (I9af9a, b/149030271)
LayoutFlexible è stato rinominato LayoutWeight. Il parametro tight è stato rinominato in fill. (If4738)
È stato rimosso RepaintBoundary in favore di DrawLayerModifier (I00aa4)
DrawVector è stata modificata da una funzione composable normale in modo da restituire un modificatore drawVector() che disegnerà il vettore come sfondo di un layout. (I7b8e0)
La funzione composable Opacity è stata sostituita con il modificatore drawOpacity. (I5fb62)
Sostituisci la funzione composable Clip con il modificatore drawClip(). DrawClipToBounds è un modificatore pratico da utilizzare quando devi solo ritagliare in base ai limiti del livello con una forma rettangolare. (If28eb)
La funzione composable DrawShadow è stata sostituita con il modificatore drawShadow(). Le ombre vengono ora disegnate all'interno di LayerModifier. (I0317a)
È stato aggiunto LayerModifier, un modificatore che consente di aggiungere un RenderNode per un layout. Consente di impostare clipping, opacità, rotazione, ridimensionamento e ombre. Verrà sostituito da RepaintBoundary. (I7100d, b/150774014)
androidx.compose.ViewComposer è stato spostato in androidx.ui.node.UiComposer androidx.compose.Emittable è stato rimosso. Era ridondante con ComponentNode. androidx.compose.ViewAdapters è stato rimosso. Non sono più un caso d'uso supportato. Compose.composeInto è stato ritirato. Utilizza invece
setContent
osetViewContent
. Compose.disposeComposition è stato ritirato. Utilizza invece il metododispose
suComposition
restituito dasetContent
. 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)È stato creato un composable immagine per gestire le dimensioni/il layout, oltre a disegnare un determinato asset immagine sullo schermo. Questo composable supporta anche il disegno di qualsiasi istanza Painter arbitraria nel rispetto delle sue dimensioni intrinseche, nonché di una determinata dimensione fissa o minima (Ibcc8f).
Componibile Wrap deprecato. Può essere sostituito con il modificatore LayoutAlign o con il composable Stack (Ib237f)
WithConstraints ha ricevuto il parametro LayoutDirection (I6d6f7)
La direzione del layout è stata propagata dal nodo del layout principale ai figli. È stato aggiunto il modificatore dell'orientamento del layout. (I3d955)
Il componente Stack supporta la direzione da destra a sinistra (Ic9e00)
Il composable DrawShape è stato rimosso. Utilizza invece il modificatore DrawBackground. (I7ceb2)
Supporto della direzione da destra a sinistra nel modificatore LayoutPadding (I9e8da)
È stato aggiunto AdapterList, un componente dell'elenco con scorrimento che compone e dispone solo gli elementi visibili. I problemi attualmente noti includono il fatto che è solo verticale e non gestisce completamente tutti i casi di modifiche ai suoi elementi secondari. (Ib351b)
È stato aggiornato il flag
ComposeFlags.COMPOSER_PARAM
intrue
, il che comporterà la modifica della strategia di generazione del codice per il plug-in di composizione. A un livello generale, questo fa sì che le funzioni @Composable vengano generate con un parametro sintetico aggiuntivo, che viene trasmesso alle chiamate @Composable successive affinché il runtime possa gestire correttamente l'esecuzione. Si tratta di una modifica significativa che comporta la rottura del codice binario, ma dovrebbe preservare la compatibilità a livello di codice sorgente in tutti gli utilizzi consentiti di compose. (I7971c)È stato aggiunto il componente Canvas. Questo composable occupa alcune dimensioni (fornite dall'utente) e ti consente di disegnare utilizzando CanvasScope (I0d622)
Density e DensityScope sono stati uniti in un'unica interfaccia. Ora puoi utilizzare DensityAmbient.current anziché ambientDensity(). Anziché withDensity(density), usa semplicemente with(density) (I11cb1)
È stato modificato LayoutCoordinates in modo che le linee di allineamento fornite siano un insieme anziché una mappa e che LayoutCoordinates implementi l'operatore get() per il recupero di un valore. In questo modo, è più facile per i modificatori modificare uno o più valori dell'insieme senza creare una nuova raccolta per ogni modificatore. (I0245a)
Ora i cursori mostrano il comportamento di movimento fling nativo di Android. (I922af, b/147493715)
Miglioramenti all'API Constraints (I0fd15)