Comporre materiale

Crea interfacce utente Jetpack Compose con componenti Material Design pronti all'uso. Si tratta del punto di ingresso di livello superiore di Compose, progettato per fornire componenti che corrispondono a quelli descritti all'indirizzo www.material.io.
Ultimo aggiornamento Release stabile Candidato per la release Versione beta Alpha Release
2 luglio 2025 1.8.3 - 1.9.0-beta02 -

Struttura

Compose è una combinazione di 7 ID gruppo Maven all'interno di androidx. Ogni gruppo contiene un sottoinsieme mirato di funzionalità, ognuna con il proprio insieme di note di rilascio.

Questa tabella spiega i gruppi e fornisce i link a ogni insieme di note di rilascio.

GruppoDescrizione
compose.animationCreare animazioni nelle applicazioni Jetpack Compose per arricchire l'esperienza utente.
compose.compilerTrasforma le funzioni @Composable e attiva le ottimizzazioni con un plug-in del compilatore Kotlin.
compose.foundationScrivi applicazioni Jetpack Compose con componenti di base pronti all'uso ed estendi le fondamenta per creare i tuoi elementi del sistema di progettazione.
compose.materialCrea interfacce utente Jetpack Compose con componenti Material Design pronti all'uso. Si tratta del punto di ingresso di livello superiore di Compose, progettato per fornire componenti che corrispondono a quelli descritti all'indirizzo www.material.io.
compose.material3Crea UI Jetpack Compose con i componenti Material Design 3, la prossima evoluzione di Material Design. Material 3 include componenti e temi aggiornati e funzionalità di personalizzazione Material You come il colore dinamico. È progettato per essere coerente con il nuovo stile visivo e l'interfaccia utente di sistema di Android 12.
compose.runtimeElementi costitutivi fondamentali del modello di programmazione e della gestione dello stato di Compose e runtime di base per il plug-in del compilatore Compose da utilizzare come target.
compose.uiComponenti fondamentali dell'interfaccia utente di Compose necessari per interagire con il dispositivo, inclusi layout, disegno e input.

Dichiarazione di dipendenze

Per aggiungere una dipendenza da Compose, devi aggiungere il repository Maven di Google al tuo progetto. Per saperne di più, consulta il repository Maven di Google.

Aggiungi le dipendenze per gli artefatti che ti servono nel file build.gradle per la tua app o il tuo modulo:

Groovy

dependencies {
    implementation "androidx.compose.material:material:1.8.3"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.material:material:1.8.3")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Per saperne di più sulle dipendenze, consulta Aggiungere dipendenze di build.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa libreria. Prima di crearne uno nuovo, dai un'occhiata ai problemi esistenti in questa libreria. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.

Creare un nuovo problema

Per ulteriori informazioni, consulta la documentazione di Issue Tracker.

Versione 1.9

Versione 1.9.0-beta02

2 luglio 2025

androidx.compose.material:material-*:1.9.0-beta02 viene ritirata. La versione 1.9.0-beta02 contiene questi commit.

Versione 1.9.0-beta01

18 giugno 2025

androidx.compose.material:material-*:1.9.0-beta01 viene ritirata. La versione 1.9.0-beta01 contiene questi commit.

Correzioni di bug

  • I link ipertestuali in Text(AnnotatedString) ora hanno lo stile Material per impostazione predefinita. (I0e8ed, b/339843816)

Versione 1.9.0-alpha04

4 giugno 2025

androidx.compose.material:material-*:1.9.0-alpha04 viene ritirata. La versione 1.9.0-alpha04 contiene questi commit.

Versione 1.9.0-alpha03

20 maggio 2025

androidx.compose.material:material-*:1.9.0-alpha03 viene ritirata. La versione 1.9.0-alpha03 contiene questi commit.

Versione 1.9.0-alpha02

7 maggio 2025

androidx.compose.material:material-*:1.9.0-alpha02 viene ritirata. La versione 1.9.0-alpha02 contiene questi commit.

Versione 1.9.0-alpha01

23 aprile 2025

androidx.compose.material:material-*:1.9.0-alpha01 viene ritirata. La versione 1.9.0-alpha01 contiene questi commit.

Modifiche al comportamento

  • I controlli Lint forniti con Compose ora richiedono una versione minima di AGP 8.8.2. Se non riesci a eseguire l'upgrade di AGP, puoi eseguire l'upgrade di Lint separatamente utilizzando android.experimental.lint.version=8.8.2 (o una versione più recente) in gradle.properties. Per eseguire i controlli lint di Compose all'interno dell'IDE, è necessario Android Studio Ladybug o versioni successive.

Modifiche alle API

  • I progetti rilasciati con Kotlin 2.0 richiedono KGP 2.0.0 o versioni successive per essere utilizzati. (Idb6b5)
  • Le API per la casella di decorazione del campo di testo non sono più sperimentali (I7480f, b/269651160)
  • Ritira runWithTimingDisabled a favore di runWithMeasurementDisabled, che descrive più chiaramente il comportamento: tutte le metriche vengono messe in pausa. Inoltre, espone la superclasse MicrobenchmarkScope poiché non è possibile dichiarare nuovamente la funzione runWithMeasurementDisabled per aprire l'accesso, in quanto è inline. (I9e23b, b/389149423, b/149979716)

Correzioni di bug

  • ExposedDropdownMenu è compatibile a livello binario con le versioni precedenti. (I133f7)
  • È stato corretto un arresto anomalo negli indicatori di avanzamento e caricamento nel caso in cui venga passato un Float.NaN come avanzamento. (I4fa96, b/352364576)

Versione 1.8

Versione 1.8.3

18 giugno 2025

androidx.compose.material:material-*:1.8.3 viene ritirata. La versione 1.8.3 contiene questi commit.

Versione 1.8.2

20 maggio 2025

androidx.compose.material:material-*:1.8.2 viene ritirata. La versione 1.8.2 contiene questi commit.

Versione 1.8.1

7 maggio 2025

androidx.compose.material:material-*:1.8.1 viene ritirata. La versione 1.8.1 contiene questi commit.

Versione 1.8.0

23 aprile 2025

androidx.compose.material:material-*:1.8.0 viene ritirata. La versione 1.8.0 contiene questi commit.

Versione 1.8.0-rc03

9 aprile 2025

androidx.compose.material:material-*:1.8.0-rc03 viene ritirata. La versione 1.8.0-rc03 contiene questi commit.

Versione 1.8.0-rc02

26 marzo 2025

androidx.compose.material:material-*:1.8.0-rc02 viene ritirata. La versione 1.8.0-rc02 contiene questi commit.

Versione 1.8.0-rc01

12 marzo 2025

androidx.compose.material:material-*:1.8.0-rc01 viene ritirata. La versione 1.8.0-rc01 contiene questi commit.

Versione 1.8.0-beta03

26 febbraio 2025

androidx.compose.material:material-*:1.8.0-beta03 viene ritirata. La versione 1.8.0-beta03 contiene questi commit.

Versione 1.8.0-beta02

12 febbraio 2025

androidx.compose.material:material-*:1.8.0-beta02 viene ritirata. La versione 1.8.0-beta02 contiene questi commit.

Versione 1.8.0-beta01

29 gennaio 2025

androidx.compose.material:material-*:1.8.0-beta01 viene ritirata. La versione 1.8.0-beta01 contiene questi commit.

Versione 1.8.0-alpha08

15 gennaio 2025

androidx.compose.material:material-*:1.8.0-alpha08 viene ritirata. La versione 1.8.0-alpha08 contiene questi commit.

Correzioni di bug

  • Aggiunge displayCutout al gruppo di rientri che i componenti Material prendono in considerazione per impostazione predefinita, per evitare che i contenuti si sovrappongano al ritaglio del display.
    • Si tratta di una modifica del comportamento che influirà sul modo in cui i componenti compatibili con l'inset si comportano intorno a un'interruzione del display. Sono inclusi il valore predefinito del parametro WindowInsets per i componenti Material 3 con consapevolezza dell'insetto e i valori WindowInsets forniti nel componente.
    • Oggetti predefiniti per Material 2 e Material 3. Se questa modifica causa un comportamento indesiderato, specifica manualmente il parametro WindowInsets per ogni componente. (I43ee9, b/362508045)
  • L'attività utilizzata come host per il composable in fase di test quando si utilizza ComposeContentTestRule.setContent ora utilizza il tema Theme.Material.Light.NoActionBar, per evitare che ActionBar si sovrapponga ai contenuti di test quando si ha come target l'SDK 35. Per disattivare questo comportamento, puoi rimuovere la dipendenza da ui-test-manifest e aggiungere una voce di attività in AndroidManifest.xml dell'app di test per ComponentActivity con il tema che preferisci. (I7ae1b, b/383368165)

Contributo esterno

Versione 1.8.0-alpha07

11 dicembre 2024

androidx.compose.material:material-*:1.8.0-alpha07 viene ritirata. La versione 1.8.0-alpha07 contiene questi commit.

Correzioni di bug

  • Correzione dei modificatori di dimensione del campo di testo che a volte non vengono seguiti. (I90d4c, b/356905963)

Versione 1.8.0-alpha06

13 novembre 2024

androidx.compose.material:material-*:1.8.0-alpha06 viene ritirata. 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 ritirata. La versione 1.8.0-alpha05 contiene questi commit.

Correzioni di bug

  • Ottimizza il comportamento di Scaffold contentPadding per evitare di ricomporre sempre i contenuti del corpo quando contentPadding cambia. (I8c8e2, b/373904168)
  • Fai in modo che il cursore 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 ritirata. La versione 1.8.0-alpha04 contiene questi commit.

Modifiche alle API

  • Rimuovi readOnly da TextFields per bloccare la versione stabile di Foundation. (I3aaba)

Correzioni di bug

  • Aggiunge il supporto per le increspature nei componenti in espansione su Android S+, ad esempio una scheda che si espande con un clic. In precedenza, l'increspatura 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 ritirata. 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 ritirata. La versione 1.8.0-alpha01 contiene questi commit.

Modifiche alle API

  • È stato aggiunto un nuovo builder NavGraphBuilder.bottomSheet per creare un foglio inferiore con argomenti sicuri ((I28589, I777db, b/351858980))
  • Aggiunte nuove sovraccariche TextField e OutlinedTextField che richiedono un TextFieldState (I3b74c)

Versione 1.7

Versione 1.7.8

12 febbraio 2025

androidx.compose.material:material-*:1.7.8 viene ritirata. La versione 1.7.8 contiene questi commit.

Versione 1.7.7

29 gennaio 2025

androidx.compose.material:material-*:1.7.7 viene ritirata. Nessuna modifica rispetto alla versione 1.7.6.

Versione 1.7.6

11 dicembre 2024

androidx.compose.material:material-*:1.7.6 viene ritirata. La versione 1.7.6 contiene questi commit.

Versione 1.7.5

30 ottobre 2024

androidx.compose.material:material-*:1.7.5 viene ritirata. La versione 1.7.5 contiene questi commit.

Versione 1.7.4

16 ottobre 2024

androidx.compose.material:material-*:1.7.4 viene ritirata. La versione 1.7.4 contiene questi commit.

Versione 1.7.2

18 settembre 2024

androidx.compose.material:material-*:1.7.2 viene ritirata. La versione 1.7.2 contiene questi commit.

Versione 1.7.1

10 settembre 2024

  • Nessuna modifica agli artefatti Android. Sono stati rimossi -desktop artefatti e sono stati aggiunti -jvmStubs e -linuxx64Stubs artefatti. Nessuno di questi target è destinato all'uso, sono segnaposto per supportare gli sforzi di Jetbrains Compose.

Versione 1.7.0

4 settembre 2024

androidx.compose.material:material-*:1.7.0 viene ritirata. La versione 1.7.0 contiene questi commit.

Modifiche importanti dalla versione 1.6.0

  • I componenti Material sono stati migrati per utilizzare le nuove API ripple e non eseguono più query su RippleTheme.
  • I componenti Material che in precedenza accettavano un MutableInteractionSource e utilizzavano remember { MutableInteractionSource() } come valore predefinito ora accettano un MutableInteractionSource che ammette valori nulli e utilizzano null come valore predefinito. Se non stai eseguendo l'hosting e utilizzando MutableInteractionSource, devi passare null. Ciò consente ad alcuni componenti di creare un'istanza solo quando necessario, migliorando le prestazioni. Ti consigliamo inoltre di apportare modifiche simili nei tuoi componenti.
  • BottomDrawer, ModalBottomSheet, BackdropScaffold e Bottomsheet standard sono stati promossi ad API stabile.

Versione 1.7.0-rc01

21 agosto 2024

androidx.compose.material:material-*:1.7.0-rc01 viene ritirata. 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 ritirata. 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 ritirata. 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 ritirata. 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 ritirata. 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 ritirata. 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 ritirata. La versione 1.7.0-beta02 contiene questi commit.

Modifiche alle API

  • Aggiornamento dell'API per lo stile dei link: è stato spostato TextLinkStyles in TextStyle ed è stato rimosso TextDefaults da Material (I5477b)

Versione 1.7.0-beta01

14 maggio 2024

androidx.compose.material:material-*:1.7.0-beta01 viene ritirata. La versione 1.7.0-beta01 contiene questi commit.

Modifiche alle API

  • È stata aggiornata l'API per ottenere link con tema Material nel testo. In particolare, sono stati rimossi i metodi da TextDefaults per costruire LinkAnnotations a tema e analizzare l'HTML con link a tema. È stata invece aggiunta una classe TextLinkStyles che consente di applicare uno stile ai link come parametro del composable Text. (I31b93)

Versione 1.7.0-alpha08

1° maggio 2024

androidx.compose.material:material-*:1.7.0-alpha08 viene ritirata. La versione 1.7.0-alpha08 contiene questi commit.

Modifiche alle API

  • Correzione backgroundColor non applicata a TextFieldDecorationBox e OutlinedTextFieldDecorationBox. Ora le caselle di decorazione accettano un parametro shape. (I371c2, b/307694651)
  • RippleConfiguration#isEnabled è stato rimosso e LocalRippleConfiguration è stato reso annullabile. Per disattivare un'increspatura, anziché fornire un RippleConfiguration con isEnabled = false, fornisci null a LocalRippleConfiguration. (I22725)
  • I link di testo hanno un'opzione di stile per lo stato premuto, oltre allo stile normale, al passaggio del mouse e alla messa a fuoco. I metodi TextDefaults hanno ciascuno un argomento pressedStyle a supporto. (Ic473f, b/139312671)

Correzioni di bug

  • Il padding superiore dell'etichetta ora tiene conto delle dimensioni del carattere di sistema.OutlinedTextField (Idc781)

Versione 1.7.0-alpha07

17 aprile 2024

androidx.compose.material:material-*:1.7.0-alpha07 viene ritirata. La versione 1.7.0-alpha07 contiene questi commit.

Modifiche alle API

  • I link di testo hanno ricevuto l'opzione di stile dello stato premuto, oltre allo stile normale, al passaggio del mouse e alla messa a fuoco. (I5f864, b/139312671)
  • È stato aggiunto un oggetto TextDefaults che contiene metodi per costruire un LinkAnnotation e analizzare una stringa con tag HTML che applicano MaterialTheme ai link. (I98532, b/139312671)

Versione 1.7.0-alpha06

3 aprile 2024

androidx.compose.material:material-*:1.7.0-alpha06 viene ritirata. La versione 1.7.0-alpha06 contiene questi commit.

Annuncio

  • androidx.compose.material non richiede più l'utilizzo della stessa versione di ogni artefatto in questo gruppo Maven. Gli utenti possono combinare le versioni delle librerie di base di Compose (Ie5fba)

Modifiche alle API

  • Sono stati spostati altri valori predefiniti di ModalDrawer e BottomDrawer nell'oggetto DrawerDefaults. (Ib5b2e)

Versione 1.7.0-alpha05

20 marzo 2024

androidx.compose.material:material-*:1.7.0-alpha05 viene ritirata. La versione 1.7.0-alpha05 contiene questi commit.

Modifiche alle API

  • Il flag ScaffoldSubcomposeInMeasureFix è stato rimosso. (I67363)

Versione 1.7.0-alpha04

6 marzo 2024

androidx.compose.material:material-*:1.7.0-alpha04 viene ritirata. La versione 1.7.0-alpha04 contiene questi commit.

Nuove funzionalità

Versione 1.7.0-alpha03

21 febbraio 2024

androidx.compose.material:material-*:1.7.0-alpha03 viene ritirata. La versione 1.7.0-alpha03 contiene questi commit.

Modifiche alle 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 e confirmStateChange non è più una lambda finale. (I9c029, b/261423850)
  • BackdropScaffold è stato promosso da sperimentale a stabile. La specifica dell'animazione ora è una specifica tween in conformità con le linee guida. Il parametro snackbarHost di BackdropScaffold non è più l'ultimo parametro per evitare confusione con le funzioni lambda finali. BackdropScaffoldState espone un'API progress(from, to) per eseguire query sullo stato di avanzamento tra gli ancoraggi. (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

  • Risolto un problema per cui BackdropScaffold poteva arrestarsi in modo anomalo in scenari specifici in combinazione con LookaheadScope. (I51396)
  • Rimossa la composizione secondaria all'interno di BottomSheetScaffold per migliorare le prestazioni. Risolto un problema per cui BottomSheetScaffold si arrestava in modo anomalo in scenari specifici in combinazione con LookaheadScope. (I2f90c)
  • 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 ritirata. 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 ritirata. La versione 1.7.0-alpha01 contiene questi commit.

Modifiche al comportamento

  • I componenti Material sono stati migrati per utilizzare le nuove API ripple e non eseguono più query su RippleTheme.

Modifiche alle API

  • rememberRipple e RippleTheme sono stati ritirati da material-ripple e sono state aggiunte nuove API ripple e RippleConfiguration a material e ad altre librerie di sistemi di progettazione.

  • I componenti Material che in precedenza accettavano un MutableInteractionSource e ricordavano { MutableInteractionSource() } per impostazione predefinita ora accettano un MutableInteractionSource che ammette valori nulli e sono impostati su null per impostazione predefinita. Se non stai eseguendo l'hosting e utilizzando MutableInteractionSource, devi passare null. Ciò consente ad alcuni componenti di creare un'istanza 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 ritirata. La versione 1.6.8 contiene questi commit.

Versione 1.6.7

1° maggio 2024

androidx.compose.material:material-*:1.6.7 viene ritirata. La versione 1.6.7 contiene questi commit.

Versione 1.6.6

17 aprile 2024

androidx.compose.material:material-*:1.6.6 viene ritirata. Nessuna modifica dall'ultima release.

Versione 1.6.5

3 aprile 2024

androidx.compose.material:material-*:1.6.5 viene ritirata. La versione 1.6.5 contiene questi commit.

Versione 1.6.4

20 marzo 2024

androidx.compose.material:material-*:1.6.4 viene ritirata. La versione 1.6.4 contiene questi commit.

Versione 1.6.3

6 marzo 2024

androidx.compose.material:material-*:1.6.3 viene ritirata. La versione 1.6.3 contiene questi commit.

Correzioni di bug

  • Correzione della 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 ritirata. La versione 1.6.2 contiene questi commit.

Versione 1.6.1

7 febbraio 2024

androidx.compose.material:material-*:1.6.1 viene ritirata. La versione 1.6.1 contiene questi commit.

Versione 1.6.0

24 gennaio 2024

androidx.compose.material:material-*:1.6.0 viene ritirata. 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 ritirata. 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 ritirata. 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 ritirata. 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 ritirata. 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 ritirata. La versione 1.6.0-alpha08 contiene questi commit.

Modifiche alle API

  • Ritira una funzione materialIcon a favore del suo overload che accetta un parametro autoMirror. (Ia338d)

Correzioni di bug - Aumento automatico dell'altezza della voce 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 ritirata. 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 ritirata. La versione 1.6.0-alpha06 contiene questi commit.

Modifica che provoca un errore nel comportamento

  • Funzionalità relative al riquadro rimosse da BottomSheetScaffold. Inserisci BottomSheetScaffold in un composable Drawer per ottenere la funzionalità precedente. Per un esempio, vedi BottomSheetScaffoldWithDrawerSample. (I1dcc8)

Modifiche alle API

  • È stato introdotto un flag temporaneo per controllare se lo scaffolding deve misurare i suoi elementi secondari durante la misurazione o il posizionamento. Per impostazione predefinita, la misurazione viene effettuata in unità di misura. 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 ritirata. 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 sono preceduti da Icons.AutoMirrored.Filled... e così via e contengono icone che verranno automaticamente specchiate nei layout da destra a sinistra. Consulta l'elenco delle icone Material per l'elenco delle icone che possono (e devono) essere sottoposte a mirroring automatico.

Modifiche alle 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 sono preceduti da Icons.AutoMirrored.Filled... e così via e contengono icone che verranno automaticamente specchiate nei layout da destra a sinistra. Consulta l'elenco delle icone Material per l'elenco delle icone che possono (e devono) essere sottoposte a mirroring automatico. Le proprietà delle icone fornite in precedenza per queste icone sono ora contrassegnate come deprecate e forniscono un suggerimento di blocco di sostituzione per facilitare la migrazione. Se non hai una gestione speciale per il mirroring delle icone su RTL, ti consigliamo di eseguire la migrazione al nuovo set di icone. Ad esempio, Icons.Filled.ArrowBack deve essere sottoposto a refactoring in Icons.AutoMirrored.Filled.ArrowBack. (I4b511)

Versione 1.6.0-alpha04

23 agosto 2023

androidx.compose.material:material-*:1.6.0-alpha04 viene ritirata. 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 uno Scaffold all'interno di un LookaheadScope tentavano di leggere le proprie dimensioni troppo presto. (If2c5d)
  • È stato corretto il calcolo di offset di DropdownMenu 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 vicino alla parte inferiore dello schermo. (Iccc74, b/294103942)
  • Sono stati ottimizzati gli elementi interni del layout di BottomSheetScaffold ed è stato risolto un potenziale problema con BottomSheetScaffold all'interno di un LookaheadLayout. (Ic0afa)

Versione 1.6.0-alpha03

9 agosto 2023

androidx.compose.material:material-*:1.6.0-alpha03 viene ritirata. La versione 1.6.0-alpha03 contiene questi commit.

Modifiche alle API

  • I componenti Material2 ora hanno un'API separata per passare windowInsets per 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 gli esempi corrispondenti. (I655e8)

Versione 1.6.0-alpha02

26 luglio 2023

androidx.compose.material:material-*:1.6.0-alpha02 viene ritirata. La versione 1.6.0-alpha02 contiene questi commit.

Modifiche alle API

  • Stiamo spostando la dipendenza dalla densità a livello di componente. Questo vale per i seguenti componenti: SwipeToDismiss e componenti basati su Fogli. Utilizza il nuovo sovraccarico fornito in cui la densità è un parametro. (I1846e)
  • Annotazioni aggiuntive per specificare gli input consentiti per i composable (I51109)
  • File API aggiornati per annotare la soppressione della compatibilità (I8e87a, b/287516207)
  • Aggiunto un nuovo allineamento iniziale per FabPosition (Ib7aea, b/170592777)
  • TextFieldColorsWithIcons in Material 2 è stato ritirato a favore di TextFieldColors. Quando esegui l'override di leadingIconColor o trailingIconColor, esegui l'override anche del sovraccarico con interactionSource. (Id57ed, b/199377790)

Versione 1.6.0-alpha01

21 giu 2023

androidx.compose.material:material-*:1.6.0-alpha01 viene ritirata. 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 linea predefinita è stato modificato in Trim.None e Alignment.Center e sono stati aggiunti lineHeight espliciti (in sp) ai TextStyle di Typography. 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 alle API

  • Le API Swipeable di Material sono state ritirate. Fai riferimento alle API AnchoredDraggable di Foundation, ottimizzate per casi d'uso semplici e complessi. (I732e0)

Correzioni di bug

  • BottomSheetState, ModalBottomSheetState e BottomDrawerState ora espongono una proprietà di avanzamento che indica l'avanzamento tra l'ancora corrente (stabilita) 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 ritirata. La versione 1.5.4 contiene questi commit.

Versione 1.5.3

4 ottobre 2023

androidx.compose.material:material-*:1.5.3 viene ritirata. Questa versione non presenta modifiche

Versione 1.5.2

27 settembre 2023

androidx.compose.material:material-*:1.5.2 viene ritirata. 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 ritirata. La versione 1.5.0 contiene questi commit.

Modifiche importanti dalla versione 1.4.0

Modifiche alle API

  • Sono state incorporate modifiche alle API Swipeable1 in BottomSheetScaffold. Il parametro confirmStateChange di BottomSheetState è stato rinominato in confirmValueChange. progress ora è esposto come valore in virgola mobile. animateTo e snapTo sono interni. Utilizza invece expand() e collapse(). direction e overflow sono stati rimossi. offset è stato sostituito da requireOffset(). I323b4
  • Contrassegna la funzione snapTo in Drawer come API non sperimentale. (Ib9c18, b/261425368)
  • È stato aggiunto un parametro per il colore della traccia per gli indicatori di avanzamento circolari e un parametro per la chiusura del tratto per gli indicatori di avanzamento circolari e lineari. (Ie668c, b/216325962, b/222964817)
  • confirmStateChange di ModalBottomSheetState, ModalBottomSheetState.Saver e rememberModalBottomSheetState rinominato in confirmValueChange. (Ib48d1)
  • Aggiungi Modifier.minimumInteractiveComponentSize. Può essere utilizzato per riservare almeno 48 dp di dimensione per disambiguare le interazioni touch se l'elemento dovesse misurare meno. (I33f58, b/258495559)
  • Modifiche incorporate nelle API per lo scorrimento in ModalBottomSheetLayout. animateTo di ModalBottomSheetState non accetta più un parametro animationSpec e l'offset esposto ora è annullabile. Usa requireOffset per richiedere l'offset. (Ia2e79)
  • Aggiunta dell'annotazione @JvmDefaultWithCompatibility (I8f206)
  • Le modifiche incorporate nelle API Swipeable nella versione animateTo di ModalDrawer. DrawerState sono state sostituite dai metodi open e close e l'offset ora è annullabile. Usa requireOffset per richiedere l'offset. (I3de9e)
  • Aggiornamento di riquadri e fogli per ritardare correttamente le pressioni nel caso in cui i gesti possano diventare eventi di scorrimento.
  • È stato aggiunto il parametro minLines a Text, TextField e OutlinedTextField di Material e Material3, che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d).

Correzioni di bug

  • Corregge un problema per cui pullRefresh non consumava la velocità, causando la visualizzazione dello scorrimento eccessivo. È stata inoltre modificata la firma API della lambda onRelease in Modifier.pullRefresh per restituire un valore Float per la velocità consumata (I7db65, b/266874741)
  • BottomSheetState, ModalBottomSheetState e BottomDrawerState ora espongono una proprietà di avanzamento che indica l'avanzamento tra l'ancora corrente (stabilita) e l'ancora più vicina nella direzione dello scorrimento. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
  • È stata corretta l'AlertDialog azione di chiusura in modo che venga visualizzata sotto l'azione di conferma quando le azioni sono impilate l'una sull'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 quando gesturesEnabled è 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)
  • Correzioni PullRefreshIndicator intercettazione di clic/eventi puntatore. (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/sui 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 ritirata. 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 ritirata. La versione 1.5.0-beta03 contiene questi commit.

Correzioni di bug

  • BottomSheetState, ModalBottomSheetState e BottomDrawerState ora espongono una proprietà di avanzamento che indica l'avanzamento tra l'ancora corrente (stabilita) 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 ritirata. 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 ritirata. La versione 1.5.0-beta01 contiene questi commit.

Modifiche alle API

  • L'offset di DrawerState e BottomDrawerState non è più annullabile. Restituiscono invece Float.NaN per indicare l'assenza dell'offset. (Ie9855)
  • È stata aggiunta un'opzione per passare un ScrollState durante la creazione di un DropdownMenu o di un ExposedDropdownMenu per controllare lo stato di scorrimento verticale delle voci di menu visualizzate. (Idb009, b/185304441)
  • Aggiungi il supporto per l'attivazione/disattivazione del gesto di ModalBottomSheetLayout in modo che l'utente possa configurarlo per un foglio inferiore più ricco di funzionalità (I40af0).
  • È stato aggiunto un parametro di colore a BasicText per consentire l'animazione o l'impostazione del colore del testo in modo efficiente. (Iffd88, b/246961787)
  • Ridenominazione della proprietà Semantica isContainer in isTraversalGroup (I121f6)

Correzioni di bug

  • È stata corretta l'AlertDialog azione di chiusura in modo che venga visualizzata sotto l'azione di conferma quando le azioni sono impilate l'una sull'altra per adattarsi alla larghezza della finestra di dialogo. Questa correzione allinea l'implementazione alla specifica Material Design. (I029de, b/235454277)

Versione 1.5.0-alpha04

10 maggio 2023

androidx.compose.material:material-*:1.5.0-alpha04 viene ritirata. La versione 1.5.0-alpha04 contiene questi commit.

Modifiche alle API

  • Stiamo spostando la dipendenza dalla densità a livello di componente. Ciò vale per i seguenti componenti: BottomDrawer, ModalBottomSheetLayout, BottomSheetScaffold, Switch, ModalDrawer. Utilizza il nuovo sovraccarico fornito in cui la densità è un parametro. (I8fbd8)

Versione 1.5.0-alpha03

19 aprile 2023

androidx.compose.material:material-*:1.5.0-alpha03 viene ritirata. La versione 1.5.0-alpha03 contiene questi commit.

Modifiche alle API

  • Aggiorna gli elementi interni di BottomDrawer per utilizzare le nuove API SwipeableV2. Per questo motivo, BottomDrawerState ora avrà solo API definite a livello di classe e non erediterà metodi/proprietà da SwipeableState. Stiamo utilizzando la composizione con un SwipeableV2State interno. L'offset è ora una proprietà a virgola mobile nullable. È ancora possibile accedere al valore corrente e a un valore target di scorrimento tramite le proprietà currentValue e targetValue. I metodi di livello della classe precedenti, come open/expand/close e le proprietà come isOpen/isClosed, continuano a essere supportati. (Iad40c, b/178529942, b/220676296)

Correzioni di bug

  • Aggiornamento degli elementi interni del componente Interruttore. Ora, quando lo trascini, il pulsante mostra l'anteprima dello stato più vicino (stato di destinazione). (Id90d4)
  • I contenuti dei fogli animati (ad es. Modifier.animateContentSize sui contenuti dei fogli) in BottomSheetScaffold sono stati ottimizzati e ora funzionano senza problemi. (Ia913c, b/270518202, b/254446195)
  • BottomSheetScaffold non parteciperà più allo scorrimento nidificato quando gesturesEnabled è impostato su false. (I634f3, b/215403277)

Versione 1.5.0-alpha02

5 aprile 2023

androidx.compose.material:material-*:1.5.0-alpha02 viene ritirata. 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)
  • Correzioni PullRefreshIndicator intercettazione di clic / eventi puntatore (2494256, b/271777421)

Versione 1.5.0-alpha01

22 marzo 2023

androidx.compose.material:material-*:1.5.0-alpha01 viene ritirata. La versione 1.5.0-alpha01 contiene questi commit.

Correzioni di bug

  • Aggiungi un esempio di reflow di chipgroup. Aggiorna il padding orizzontale tra i chip secondari nell'esempio di chipgroup a una sola riga 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/sui 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 aumento della versione).

Versione 1.4.2

19 aprile 2023

androidx.compose.material:material-*:1.4.2 viene ritirata. La versione 1.4.2 contiene questi commit.

Versione 1.4.1

5 aprile 2023

androidx.compose.material:material-*:1.4.1 viene ritirata. La versione 1.4.1 contiene questi commit.

Versione 1.4.0

22 marzo 2023

androidx.compose.material:material-*:1.4.0 viene ritirata. La versione 1.4.0 contiene questi commit.

Modifiche importanti dalla versione 1.3.0

Modifiche alle API

  • Aggiungi Modifier.minimumInteractiveComponentSize. Può essere utilizzato per riservare almeno 48 dp di dimensione per disambiguare le interazioni touch se l'elemento dovesse misurare meno. (I33f58, b/258495559)
  • Modifiche incorporate nelle API per lo scorrimento in ModalDrawer. DrawerState's animateTo è stato sostituito dai metodi open e close e l'offset ora è annullabile. Usa requireOffset per richiedere l'offset. (I3de9e)
  • È stato aggiunto il parametro minLines a Text, TextField e OutlinedTextField di Material e Material3, che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d).
  • È stato aggiunto il parametro minLines a BasicText e BasicTextField. Consente di impostare l'altezza minima di questi composable 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 ritirata. La versione 1.4.0-beta02 contiene questi commit.

Modifiche alle API

  • Modifiche incorporate nelle API per lo scorrimento in BottomSheetScaffold. Il parametro confirmStateChange di BottomSheetState è stato rinominato in confirmValueChange. progress ora è esposto come valore in virgola mobile. animateTo e snapTo sono interni. Utilizza invece expand() e collapse(). direction e overflow sono stati rimossi. offset è stato sostituito da requireOffset(). (I323b4)

Correzioni di bug

  • Rimozione dei ruoli semantici dalle superfici selezionabili e cliccabili, aggiornamento dei componenti che li utilizzavano per impostare i ruoli utilizzando Modifier.semantics (Ibb4ba)
  • Aggiornamento secondario delle icone Material estese che modifica le icone desktop_mac, directions e kitchen piene. (I65f5e)

Versione 1.4.0-beta01

8 febbraio 2023

androidx.compose.material:material-*:1.4.0-beta01 viene ritirata. La versione 1.4.0-beta01 contiene questi commit.

Modifiche alle API

  • Corregge un problema per cui pullRefresh non consumava la velocità, causando la visualizzazione dello scorrimento eccessivo. È stata inoltre modificata la firma API della lambda onRelease in Modifier.pullRefresh per restituire un valore Float per la velocità consumata (I7db65, b/266874741)
  • Ripristina il getter della proprietà LocalMinimuTouchTargetEnforcement, contrassegnalo come ritirato e reindirizza a LocalMinimumInteractiveComponentEnforcement. (I60dd5)

Versione 1.4.0-alpha05

25 gennaio 2023

androidx.compose.material:material-*:1.4.0-alpha05 viene ritirata. La versione 1.4.0-alpha05 contiene questi commit.

Correzioni di bug

  • Risolto un problema per cui lo stato di ModalBottomSheetLayout's HalfExpanded veniva calcolato in modo errato e il foglio sembrava fluttuare. (I8c615, b/265610459)
  • È stato corretto un bug in ModalBottomSheetLayout a causa del quale il foglio si arrestava in modo anomalo quando passava dallo stato nascosto a quello visibile in alcune circostanze. (Ia9265, b/265444789)

Versione 1.4.0-alpha04

11 gennaio 2023

androidx.compose.material:material-*:1.4.0-alpha04 viene ritirata. La versione 1.4.0-alpha04 contiene questi commit.

Modifiche alle API

  • Aggiunta della proprietà semantica IsContainer sulle piattaforme. Questa proprietà verrà utilizzata in una modifica successiva che determina l'ordine di attraversamento in base al significato semantico di elementi come le superfici. (I63379)
  • Contrassegna la funzione snapTo in Drawer come API non sperimentale. (Ib9c18, b/261425368)
  • È stato aggiunto un parametro per il colore della traccia per gli indicatori di avanzamento circolari e un parametro per la chiusura del tratto per gli indicatori di avanzamento circolari e lineari. (Ie668c, b/216325962, b/222964817)
  • confirmStateChange di ModalBottomSheetState, ModalBottomSheetState.Saver e rememberModalBottomSheetState rinominato in confirmValueChange. (Ib48d1)
  • Maggiore annullabilità del tipo restituito delle funzioni ritirate e nascoste (Ibf7b0)
  • Aggiungi Modifier.minimumInteractiveComponentSize. Può essere utilizzato per riservare almeno 48 dp di dimensione per disambiguare le interazioni touch se l'elemento dovesse misurare meno. (I33f58, b/258495559)
  • Modifiche incorporate nelle API per lo scorrimento in ModalBottomSheetLayout. animateTo di ModalBottomSheetState non accetta più un parametro animationSpec e offset esposto ora è annullabile. Utilizza requireOffset per richiedere offset. (Ia2e79)

Correzioni di bug

  • Il foglio di un ModalBottomSheetLayout ora ha una larghezza massima di 640 dp. (I71a4f, b/234927577)
  • È stato risolto un problema per cui rememberPullRefreshState non aggiornava refreshThreshold e refreshingOffset nel tempo. (Ifed10, b/263159832)
  • L'avanzamento degli indicatori di avanzamento è ora correttamente limitato all'intervallo previsto. (I8a7eb, b/262262727)
  • Quando ModalBottomSheetState non ha ancora ricevuto ancore, aggiornerà currentValue senza un'animazione quando vengono chiamati snapTo o animateTo 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 era HalfExpanded quando si ruotava da verticale a orizzontale. Assicurati di passare il initialValue corretto, ad esempio controllando la configurazione. (Ie8df7, b/182882364)
  • È stato risolto un problema per cui ModalBottomSheetLayout si arrestava in modo anomalo se il contenuto del foglio era vuoto. ModalBottomSheetLayout ora consente contenuti del foglio vuoti. Se il contenuto del foglio è vuoto, avrà solo lo stato Nascosto. (Ic2288, b/200980998, b/216693030)

Problema noto

  • Quando esegui l'aggiornamento da androidx.compose.foundation:1.4.0-alpha03 a androidx.compose.foundation:1.4.0-alpha04, potresti riscontrare un errore java.lang.NoSuchFieldError. Qui è stato segnalato il problema originariamente. È stata inviata una correzione, che sarà disponibile nel prossimo aggiornamento di Compose. Come soluzione alternativa, aggiorna le librerie androidx.compose.material e androidx.compose.material3 all'ultima versione(1.1.0-alpha04) o esegui il downgrade di androidx.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 ritirata. La versione 1.4.0-alpha03 contiene questi commit.

Modifiche alle API

  • Aggiunta dell'annotazione @JvmDefaultWithCompatibility (I8f206)
  • Sono state incorporate modifiche alle API Swipeable in ModalDrawer. animateTo di DrawerState è stato sostituito dai metodi open e close e l'offset ora è annullabile. Usa requireOffset per richiedere l'offset. (I3de9e)
  • È stata aggiunta un'API Modifier per eseguire query sulle informazioni di scorrimento degli elementi principali. (I2ba9d, b/203141462)
  • Utilizzato in Clickable per ritardare correttamente le interazioni di pressione, quando i gesti potrebbero diventare eventi di scorrimento.
  • È stato corretto il problema per cui Clickables non ritardava correttamente gli effetti ripple quando veniva utilizzato all'interno di un Scrollable ViewGroup.
  • Aggiornamento di riquadri e fogli per ritardare correttamente le pressioni nel caso in cui i gesti possano diventare eventi di scorrimento.

Correzioni di bug

  • È stato risolto un problema per cui PullRefreshIndicator poteva bloccarsi dopo la chiamata di onRefresh, se lo stato di aggiornamento non veniva impostato su 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 ritirata. La versione 1.4.0-alpha02 contiene questi commit.

Modifiche alle API

  • awaitFirstDown e waitForUpOrCancellation ora accettano un PointerEventPass per una maggiore flessibilità. (I7579a, b/212091796)
  • È stato aggiunto il parametro minLines a Text, TextField e OutlinedTextField di Material e Material3, che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d).
  • È stato aggiunto il parametro minLines a BasicTex e BasicTextField. Consente di impostare l'altezza minima di questi composable 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 ritirata. La versione 1.4.0-alpha01 contiene questi commit.

Modifiche alle API

  • È stato aggiunto un nuovo metodo, awaitEachGesture(), per i rilevatori di gesti. Funziona in modo simile a forEachGesture(), ma il ciclo sui gesti opera interamente all'interno di AwaitPointerEventScope, quindi gli eventi non possono essere persi tra le iterazioni.
  • forEachGesture() è stato ritirato a favore di awaitEachGesture() perché consente di perdere eventi tra i gesti. (Iffc3f, b/251260206)

Versione 1.3

Versione 1.3.1

9 novembre 2022

androidx.compose.material:material-*:1.3.1 viene ritirata. La versione 1.3.1 contiene questi commit.

Versione 1.3.0

24 ottobre 2022

androidx.compose.material:material-*:1.3.0 viene ritirata. La versione 1.3.0 contiene questi commit.

Modifiche importanti dalla versione 1.2.0

Modifica che causa un'interruzione del comportamento

  • L'elevazione massima supportata nelle finestre di dialogo e nei popup è stata ridotta a 8 dp.

Modifiche alle API

  • Aggiungi un componente Pull-To-Refresh a Compose (I29168).
  • Modifica il nome del parametro da valori a valore in RangeSlider (I3b79a).

Versione 1.3.0-rc01

5 ottobre 2022

androidx.compose.material:material-*:1.3.0-rc01 viene ritirata. 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 ritirata. La versione 1.3.0-beta03 contiene questi commit.

Modifiche alle API

  • Aggiungi un componente Pull-To-Refresh a Compose (I29168)

Versione 1.3.0-beta02

7 settembre 2022

androidx.compose.material:material-*:1.3.0-beta02 viene ritirata. 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 ritirata. La versione 1.3.0-beta01 contiene questi commit.

Modifica che causa un'interruzione 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 i popup di Compose è stata ridotta da 30 dp a 8 dp. Questa modifica riguarda sia le finestre di dialogo personalizzate sia i popup di Material e dell'interfaccia utente. Questa modifica viene apportata per mitigare un bug di accessibilità nelle versioni di Android precedenti alla S e per garantire che i servizi di accessibilità all'interno di queste finestre possano interagire con i contenuti all'interno della finestra di dialogo o del popup.

Questa modifica ti interesserà solo se stai creando un'implementazione personalizzata di finestre di dialogo o popup 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, valuta la possibilità di creare un tuo dialogo o popup con il livello di elevazione desiderato. Questa operazione non è consigliata, in quanto l'accessibilità potrebbe essere compromessa e spetta allo sviluppatore garantire che la parte inferiore della finestra di dialogo o del popup sia interattiva e leggibile dai servizi di accessibilità.

Versione 1.3.0-alpha03

10 agosto 2022

androidx.compose.material:material-*:1.3.0-alpha03 viene ritirata. 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 ritirata. La versione 1.3.0-alpha02 contiene questi commit.

Contributo esterno

  • Risolvi il problema AnimatedVisibility con FloatingActionButton in Scaffold (I3a0ae, b/224005027)

Versione 1.3.0-alpha01

29 giugno 2022

androidx.compose.material:material-*:1.3.0-alpha01 viene ritirata. La versione 1.3.0-alpha01 contiene questi commit.

Modifiche alle API

  • Modifica il nome del parametro da valori a valore in RangeSlider (I3b79a)

Correzioni di bug

  • Aggiorna l'esempio di 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 ritirata. La versione 1.2.1 contiene questi commit.

Versione 1.2.0

27 luglio 2022

androidx.compose.material:material-*:1.2.0 viene ritirata. 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 ritirata. 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 ritirata. 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 ritirata. La versione 1.2.0-rc01 contiene questi commit.

Modifiche alle API

  • Le interfacce nelle librerie Compose ora sono create utilizzando i metodi di interfaccia predefiniti di jdk8 (I5bcf1)

Correzioni di bug

  • Aggiorna il badge con la scheda dell'icona principale per apporre il badge all'etichetta anziché all'icona. (I90993)

Versione 1.2.0-beta03

1 giugno 2022

androidx.compose.material:material-*:1.2.0-beta03 viene ritirata. La versione 1.2.0-beta03 contiene questi commit.

Correzioni di bug

  • È stato corretto un bug per cui BottomSheetScaffold veniva disegnato sopra l'ombra della barra delle app superiore. BottomSheetScaffold ora tiene conto anche dello stato del foglio quando posiziona le barre di notifica: nello stato compresso, le barre di notifica vengono posizionate sopra il foglio e il FAB; nello stato espanso, le barre di notifica sono 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 ritirata. 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 ritirata. La versione 1.2.0-beta01 contiene questi commit.

Nuove funzionalità

  • Questa è la prima release beta della versione 1.2.

Modifiche alle API

  • Rinomina il composable TextFieldDefaults.BorderStroke che disegna un tratto del bordo in OutlinedTextField in TextFieldDefaults.BorderBox. (I5f295)

Versione 1.2.0-alpha08

20 aprile 2022

androidx.compose.material:material-*:1.2.0-alpha08 viene ritirata. La versione 1.2.0-alpha08 contiene questi commit.

Modifiche alle API

  • Il consumo parziale (in basso O posizione) è stato ritirato in PointerInputChange. Puoi utilizzare consume() per utilizzare completamente la modifica. Puoi utilizzare isConsumed per determinare se qualcun altro ha già utilizzato la modifica.
  • PointerInputChange::copy() ora crea sempre una copia superficiale. Ciò significa che le copie di PointerInputChange verranno consumate una volta che una delle copie sarà stata consumata. Se vuoi creare un PointerInputChange non associato, utilizza il costruttore. (Ie6be4, b/225669674)

Versione 1.2.0-alpha07

6 aprile 2022

androidx.compose.material:material-*:1.2.0-alpha07 viene ritirata. 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 ritirata. La versione 1.2.0-alpha06 contiene questi commit.

Modifiche alle API

  • Aggiornamenti all'API Card cliccabile per seguire le modifiche all'API Surface (I56bcb)
  • Aggiornamenti dell'API Material 2 Surface che aggiungono ulteriori funzioni sovraccariche 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 ritirata. La versione 1.2.0-alpha05 contiene questi commit.

Modifiche alle API

  • LazyVerticalGrid e LazyHorizontalGrid 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 ad androidx.compose.foundation.lazy.grid. (I2d446, b/219942574)
  • È stato ripristinato il precedente cambiamento di affidarsi esclusivamente a una View per WindowInsetsControllerCompat ed è nuovamente necessario un Window, che è necessario per gestire alcuni flag della finestra. Ritirato ViewCompat.getWindowInsetsController a favore di WindowCompat.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 a includeFontPadding=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 dell'asse trasversale (I17723)

Versione 1.2.0-alpha04

23 febbraio 2022

androidx.compose.material:material-*:1.2.0-alpha04 viene ritirata. La versione 1.2.0-alpha04 contiene questi commit.

Modifiche alle API

  • Add support for filter chips (I39a6e, b/192585545)
  • Aggiunta di TextFieldDecorationBox e OutlinedTextFieldDecorationBox. Se li utilizzi insieme a BasicTextField, potrai creare campi di testo personalizzati basati sui campi di testo Material Design, ma con più opzioni di personalizzazione.
  • È stato fornito un modo per regolare i margini interni 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 e ComposableOpenTarget che consentono la generazione di report in fase di compilazione quando viene chiamata una funzione componibile che ha come target un applicatore per cui non è stata progettata.

    Nella maggior parte dei casi, le annotazioni possono essere dedotte dal plug-in del compilatore Compose, quindi l'utilizzo diretto di queste annotazioni dovrebbe essere raro . I casi che non possono essere dedotti includono la creazione e l'utilizzo di un'applicazione personalizzata, funzioni componibili astratte (come metodi di interfaccia), campi o variabili globali che sono espressioni lambda componibili (le variabili e i parametri locali vengono dedotti), o quando si utilizza ComposeNode o una funzione componibile correlata.

    Per gli applicatori personalizzati, le funzioni componibili che chiamano ComposeNode o ReusableComposeNode devono aggiungere un'annotazione CompoableTarget per la funzione e per tutti i tipi di parametri lambda componibili. Tuttavia, ti consigliamo di creare un'annotazione contrassegnata con ComposableTargetMarker e di utilizzare l'annotazione contrassegnata anziché ComposableTarget direttamente. Un'annotazione componibile contrassegnata con ComposableTargetMarker equivale a un ComposbleTarget con il nome completo della classe dell'attributo come parametro di applicazione. Per un esempio di utilizzo di ComposableTargetMarker, vedi anroidx.compose.ui.UiComposable. (I38f11)

Versione 1.2.0-alpha03

9 febbraio 2022

androidx.compose.material:material-*:1.2.0-alpha03 viene ritirata. La versione 1.2.0-alpha03 contiene questi commit.

Correzioni di bug

Versione 1.2.0-alpha02

26 gennaio 2022

androidx.compose.material:material-*:1.2.0-alpha02 viene ritirata. La versione 1.2.0-alpha02 contiene questi commit.

Modifiche alle API

  • Aggiunta di NonRestartableComposable ai metodi che sono sovraccarichi di metodi esistenti senza logica complessa. In questo modo, si riducono i controlli di memorizzazione (equals) generati dal compilatore per tutti i parametri ripetuti nella funzione interna chiamata. (I90490)
  • Aggiunta del supporto per il chip di azione (I07100, b/192585545)

Versione 1.2.0-alpha01

12 gennaio 2022

androidx.compose.material:material-*:1.2.0-alpha01 viene ritirata. La versione 1.2.0-alpha01 contiene questi commit.

Aggiornamenti delle dipendenze

  • Ora dipende da Kotlin 1.6.10.

Contributo esterno

  • Ora ModalBottomSheetState ha un flag isSkipHalfExpanded. Può essere impostato tramite il costruttore o aggiornato in un secondo momento impostando la proprietà isSkipHalfExpanded di ModalBottomSheetState su true. L'aggiornamento del valore di isSkipHalfExpanded causa una ricomposizione del foglio. (I18b86, b/186669820)

Versione 1.1

Versione 1.1.1

23 febbraio 2022

androidx.compose.material:material-*:1.1.1 viene ritirata. La versione 1.1.1 contiene questi commit.

Correzioni di bug

  • Correzione NullPointerException alle ore androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList (aosp/1947059, b/206677462)
  • Correzione dell'arresto anomalo causato dai contenuti degli appunti durante la lettura dagli appunti su Android. (I06020, b/197769306)
  • RTL corretto in LazyVerticalGrid (aosp/1931080, b/207510535)

Versione 1.1.0

9 febbraio 2022

androidx.compose.material:material-*:1.1.0 viene ritirata. La versione 1.1.0 contiene questi commit.

Modifiche importanti dalla versione 1.0.0

  • Supporto stabile per l'effetto di overscroll di Android 12
  • Miglioramenti alle dimensioni del target 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 target di tocco. Ad esempio, il touch target del pulsante si espanderà fino a raggiungere una dimensione minima di 48 x 48 dp, anche se imposti dimensioni più piccole per il pulsante. In questo modo, Compose Material si allinea allo stesso comportamento dei componenti Material Design, fornendo un comportamento coerente se combini Views e Compose. Questa modifica garantisce inoltre che, quando crei la tua UI utilizzando i componenti di Compose Material, vengano soddisfatti i requisiti minimi per l'accessibilità dei touch target.
  • Supporto stabile per la barra di spostamento
  • Viene eseguito l'upgrade di una serie di API sperimentali precedenti alla versione stabile
  • 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 ritirata. 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 delle linee guida per l'accessibilità di Material. Ad esempio, il touch target del pulsante si espanderà fino a raggiungere una dimensione minima di 48 x 48 dp, anche se imposti dimensioni più piccole per il pulsante. In questo modo, Compose Material si allinea allo stesso comportamento dei componenti Material Design, fornendo un comportamento coerente se combini Views e Compose. Questa modifica garantisce inoltre che, quando crei la tua UI utilizzando i componenti di Compose Material, vengano soddisfatti i requisiti minimi per l'accessibilità dei touch target.

Correzioni di bug

  • Sono state aggiunte informazioni di debug migliori per lo strumento di ispezione 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 ritirata. La versione 1.1.0-rc01 contiene questi commit.

Correzioni di bug

Versione 1.1.0-beta04

1° dicembre 2021

androidx.compose.material:material-*:1.1.0-beta04 viene ritirata. La versione 1.1.0-beta04 contiene questi commit.

Nuove funzionalità

  • Aggiornato 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 ritirata. 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 ritirata. 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 pressione. (Ibefe0, b/203141462)

Versione 1.1.0-beta01

27 ottobre 2021

androidx.compose.material:material-*:1.1.0-beta01 viene ritirata. La versione 1.1.0-beta01 contiene questi commit.

Nuove funzionalità

  • Gli effetti ripple ora supportano gli stati di passaggio del mouse e di messa a fuoco, quindi il passaggio del mouse / la messa a fuoco di un componente come Button ora mostrerà l'overlay di stato corretto.

Versione 1.1.0-alpha06

13 ottobre 2021

androidx.compose.material:material-*:1.1.0-alpha06 viene ritirata. La versione 1.1.0-alpha06 contiene questi commit.

Modifiche alle API

  • È stato aggiunto un sovraccarico senza figli per Layout, con una maggiore efficienza (Ib0d9a)
  • Implementazione di ExposedDropdownMenu in base a ExposedDropdownMenuBox con TextField e DropdownMenu all'interno (If60b2)
  • dismissOnOutsideClick è stato aggiunto a PopupProperties, sostituendo dismissOnClickOutside, che è stato ritirato. La nuova proprietà riceve la posizione del clic e i limiti dell'ancora, fornendo un controllo più preciso sull'invocazione o meno di onDismissRequest. Ad esempio, può essere utile per impedire la chiusura dell'ancora quando viene toccata.
    • updateAndroidWindowManagerFlags è stato aggiunto a PopupProperties, offrendo un controllo di basso livello sui flag passati dal popup a WindowManager di Android. Il parametro della funzione lambda saranno i flag calcolati dai valori PopupProperties che generano flag WindowManager, ad esempio focusable. Il risultato della 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 ha requisiti di comportamento molto specifici. (I6e9f9)

Versione 1.1.0-alpha05

29 settembre 2021

androidx.compose.material:material-*:1.1.0-alpha05 viene ritirata. La versione 1.1.0-alpha05 contiene questi commit.

Modifiche alle API

  • Aggiunge le dimensioni minime del touch target per i componenti Material che non hanno un touch target accessibile. Poiché aggiunge ulteriore spazio intorno ai componenti per assicurarsi che abbiano un touch target sufficientemente grande, potrebbe modificare le UI esistenti che presuppongono che le dimensioni di questi componenti siano le loro dimensioni visive e non tengono conto delle dimensioni del touch target. Puoi utilizzare la composizione locale sperimentale LocalMinimumTouchTargetEnforcement per disattivare questo comportamento in una gerarchia, ma questa funzionalità è pensata solo per essere una soluzione 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. Consente di modificare l'aspetto di TextField in base allo stato attivo. (I66923, b/198402662)

Versione 1.1.0-alpha04

15 settembre 2021

androidx.compose.material:material-*:1.1.0-alpha04 viene ritirata. La versione 1.1.0-alpha04 contiene questi commit.

Modifiche alle API

  • performGesture e GestureScope sono stati ritirati e sostituiti da performTouchInput e TouchInjectionScope. (Ia5f3f, b/190493367)
  • È stato aggiunto touchBoundsInRoot a SemanticsNode che include 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 minimo. (I43e10, b/171509422)
  • Aggiornamento del composable Divider per rispettare Dp.Hairline per il parametro di spessore per supportare il disegno di divisori di un pixel 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 ritirata. La versione 1.1.0-alpha03 contiene questi commit.

Nuove funzionalità

  • Aggiornamento di Compose 1.1.0-alpha03 in modo che dipenda da Kotlin 1.5.30. (I74545)

Modifiche alle API

  • È stato aggiunto un metodo di test per ottenere i limiti ritagliati. (I6b28e)
  • È stata aggiunta la dimensione minima del touch target a ViewConfiguration per l'utilizzo nell'input semantico e del puntatore per garantire l'accessibilità. (Ie861c)

Versione 1.1.0-alpha02

18 agosto 2021

androidx.compose.material:material-*:1.1.0-alpha02 viene ritirata. La versione 1.1.0-alpha02 contiene questi commit.

Contributo esterno

  • Correggi il comportamento di SwipeableState nel caso in cui l'offset di scorrimento rientri in un errore di arrotondamento di un ancoraggio. (I03d39, b/191993377)

Versione 1.1.0-alpha01

4 agosto 2021

androidx.compose.material:material-*:1.1.0-alpha01 viene ritirata. La versione 1.1.0-alpha01 contiene questi commit.

Modifiche alle API

  • Aggiornamento del metodo DrawScope#drawImage che utilizza i rettangoli di origine e destinazione per utilizzare un parametro FilterQuality facoltativo. Questa opzione è utile per la pixel art che deve essere pixelata quando viene ingrandita. Aggiornamento di BitmapPainter e del composable Image per utilizzare anche un parametro FilterQuality facoltativo (Ie4fb0, b/180311607)
  • È stato rinominato BadgeBox in BadgedBox e sono stati modificati i parametri per accettare il componente componibile Badge. Aggiunto il componente Badge, che contiene i contenuti tipici di un badge per una BadgedBox. (I639c6)
  • È stato aggiunto il componente NavigationRail. Consulta la documentazione e gli esempi per informazioni sull'utilizzo (I8de77).

Correzioni di bug

  • È stato aggiunto un esempio di NavigationRail allineato in basso e una demo dell'app Catalog. (I3cffc)
  • Le finestre di dialogo ora seguono il comportamento di ridimensionamento della piattaforma. Imposta usePlatformDefaultWidth su false per ignorare questo comportamento. (Iffaed, b/192682388)
  • È stata aggiunta la demo della barra di navigazione all'app catalogo. (I04960)
  • È stata aggiunta la demo del badge all'app Catalogo. (If285d)

Versione 1.0

Versione 1.0.5

3 novembre 2021

androidx.compose.material:material-*:1.0.5 viene ritirata. 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 ritirata. La versione 1.0.4 contiene questi commit.

Aggiornamenti delle dipendenze

  • Aggiornato in modo che dipenda da Kotlin 1.5.31

Versione 1.0.3

29 settembre 2021

androidx.compose.material:material-*:1.0.3 viene ritirata. La versione 1.0.3 contiene questi commit.

Aggiornamenti delle dipendenze

  • Aggiornato in modo che dipenda da Kotlin 1.5.30

Versione 1.0.2

1° settembre 2021

androidx.compose.material:material-*:1.0.2 viene ritirata. La versione 1.0.2 contiene questi commit.

Aggiornato 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 ritirata. La versione 1.0.1 contiene questi commit.

Aggiornamenti delle dipendenze

  • Aggiornato in modo da dipendere da Kotlin 1.5.21.

Versione 1.0.0

28 luglio 2021

androidx.compose.material:material-*:1.0.0 viene ritirata. 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 di Compose Release.

Problemi noti

  • Se utilizzi Android Studio Bumblebee Canary 4 o AGP 7.1.0-alpha04/7.1.0-alpha05, potresti riscontrare il seguente arresto anomalo:

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

    Per risolvere il problema, aumenta temporaneamente il valore minSdkVersion a 24 o superiore nel file build.gradle. Questo problema verrà risolto nella prossima versione di Android Studio Bumblebee e AGP 7.1. (b/194289155)

Versione 1.0.0-rc02

14 luglio 2021

androidx.compose.material:material-*:1.0.0-rc02 viene ritirata. La versione 1.0.0-rc02 contiene questi commit.

Correzioni di bug

  • Le finestre di dialogo ora seguono il comportamento di ridimensionamento 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 ritirata. La versione 1.0.0-rc01 contiene questi commit.

Modifiche alle API

  • È stato aggiunto il componente BadgeBox. Per informazioni sull'utilizzo, consulta la documentazione e gli esempi (I5e284).
  • useDefaultMaxWidth in PopupProperties è stato rinominato in usePlatformDefaultWidth. (I05710)
  • Ora le finestre di dialogo possono utilizzare l'intera larghezza dello schermo. (I83929, b/190810877)
  • Aggiunta dell'implementazione del cursore di intervallo sperimentale (I2f4b3)

Correzioni di bug

  • In linea con le specifiche di Material Design, OutlinedTextField con input non valido ha smesso di utilizzare il colore di errore per l'etichetta quando viene utilizzata come segnaposto. Quest'ultima condizione si verifica quando non è presente alcun testo di input nel campo di testo e il campo di testo non è attivo. Con questa modifica, è cambiato anche il significato del parametro error:Boolean nella funzione TextFieldColors.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 ritirata. La versione 1.0.0-beta09 contiene questi commit.

Modifiche alle API

  • È stato aggiunto il parametro Shape a OutlinedTextField per poter personalizzare la forma del bordo (I8f39e, b/181322957)
  • TextOverflow viene modificato in una classe in linea. (I433af)

Correzioni di bug

  • Il velo in BottomDrawer, BackdropScaffold e ModalBottomSheetLayout scomparirà e verrà 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 che si trova nella directory src/main o in una directory equivalente. Il file specifica una regola per riga, dove una regola in questo caso è un pattern per la corrispondenza con metodi o classi nella libreria. La sintassi di queste regole è un superset del formato del profilo ART leggibile, utilizzato quando si utilizza adb shell profman --dump-classes-and-methods .... Queste regole assumono una delle 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 caratteri H, S e P 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 di destinazione. Ad esempio, la classe androidx.compose.runtime.SlotTable avrebbe un descrittore Landroidx/compose/runtime/SlotTable;.

  • <METHOD_SIGNATURE> è la firma del metodo e include il nome, i tipi di parametri e i tipi restituiti del metodo. Ad esempio, il metodo fun isPlaced(): Boolean su LayoutNode ha la firma isPlaced()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 con il flag S indica che viene 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 viene 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 incluse nei file AAR. Quando viene creato un APK che include questi artefatti, queste regole vengono unite e utilizzate per creare un profilo binario ART compatto specifico per l'APK. ART può quindi sfruttare questo profilo quando l'APK viene installato sui dispositivi per compilare in anticipo un sottoinsieme specifico dell'applicazione per migliorarne le prestazioni, in particolare la prima esecuzione. Tieni presente che questa operazione non avrà alcun effetto sulle applicazioni sottoposte a debug.

Versione 1.0.0-beta08

2 giugno 2021

androidx.compose.material:material-*:1.0.0-beta08 viene ritirata. La versione 1.0.0-beta08 contiene questi commit.

Nuove funzionalità

Modifica dell'API che interrompe il comportamento

  • MODIFICA DEL COMPORTAMENTO: ora la scheda utilizza i clic, pertanto i clic aggiunti tramite Card(Modifier.clickable) non vengono eseguiti. Utilizza il nuovo overload sperimentale di una scheda che accetta onClick. (Ia8744, b/183775620)
    • È stato aggiunto un nuovo sovraccarico di schede che gestisce i clic e altre funzionalità cliccabili: indicazione, interactionSource, attivato/disattivato. Non è stato possibile utilizzare una scheda normale non cliccabile con Modifier.clickable perché la scheda non ritaglia l'indicatore di increspatura in questi casi.
  • MODIFICA DEL COMPORTAMENTO: Surface ora utilizza i clic, pertanto i clic aggiunti tramite Surface(Modifier.clickable) non vengono eseguiti. Utilizza il nuovo overload sperimentale di Surface che accetta onClick. (I73e6c, b/183775620)
    • È stato aggiunto un nuovo overload di Surface che gestisce i clic e altre funzionalità selezionabili: indicazione, interactionSource, attivato/disattivato. Non è stato possibile utilizzare una normale Surface non cliccabile con Modifier.clickable perché in questi casi Surface non ritaglia l'indicatore di increspatura.

Modifiche alle API

  • FabPosition è stata convertita in una classe inline da enum per supportare una potenziale espansione in futuro (I030fb)
  • È stato eseguito il refactoring degli utilizzi di enum per le classi inline per evitare problemi con le istruzioni esaustive quando vengono aggiunti nuovi valori enum. (I2b5eb)
  • Aggiunge un timeout di tocco agli elementi selezionabili / attivabili per evitare di mostrare un'increspatura durante lo scorrimento / trascinamento (Ia2704, b/168524931)
  • Le proprietà semantiche ContentDescription e Text non sono più valori singoli, ma elenchi. In questo modo, possono essere uniti così come sono anziché concatenati. Sono state inoltre fornite API di test migliori per utilizzare queste modifiche (Ica6bf, b/184825850)
  • Modifier.focusModifier() è deprecato e sostituito da Modifier.focusTarget() (I6c860)
  • Sostituito l'enum FocusState con un'interfaccia FocusState (Iccc1a, b/187055290)
  • Rimossa LocalRippleNativeRendering ora che l'implementazione dell'effetto increspatura 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 riportate. (Ieb67d, b/177926591)
  • È stato aggiunto un file README per il catalogo esistente di componenti Material per Compose. (If9191)

Versione 1.0.0-beta07

18 maggio 2021

androidx.compose.material:material-*:1.0.0-beta07 viene ritirata. La versione 1.0.0-beta07 contiene questi commit.

Modifiche alle API

  • Non è più necessario utilizzare i metodi di estensione per il supporto del percorso in Navigation Compose. (I22beb, b/172823546)

Versione 1.0.0-beta06

5 maggio 2021

androidx.compose.material:material-*:1.0.0-beta06 viene ritirata. La versione 1.0.0-beta06 contiene questi commit.

Modifiche alle API

  • Ripple è stato migrato per utilizzare RippleDrawable internamente sui dispositivi Android. Ciò significa che le animazioni a increspatura verranno eseguite su RenderThread e saranno fluide anche quando il thread UI è sotto carico, ad esempio durante la navigazione tra le schermate. Ciò non modifica la superficie dell'API di ripple, ma potrebbero essere introdotte modifiche al comportamento in seguito a questa modifica. Per facilitare la migrazione, è stato aggiunto LocalRippleNativeRendering: fornisci un valore di false a questo CompositionLocal per ripristinare l'implementazione ripple precedente all'interno di CompositionLocalProvider. Questa API è temporanea e verrà rimossa in futuro, quindi se riscontri problemi che ti costringono a utilizzarla, segnala un bug. (I902f8, b/168777351, b/183019123)
  • Sono state aggiunte API di accessibilità CollectionInfo e CollectionItemInfo che consentono di contrassegnare la raccolta e i relativi elementi per i servizi di accessibilità (Id54ef, b/180479017).
  • Aggiunta dell'API di accessibilità error che consente di contrassegnare un nodo contenente input non validi (I12997, b/180584804, b/182142737)

Correzioni di bug

  • Implementazione aggiornata degli inserti del catalogo di Material Compose da: https://github.com/google/accompanist/pull/365. (I25dc3)
  • Gli elementi secondari di riga e colonna con peso(fill = false) non fanno più in modo che l'elemento principale riempia l'intero spazio disponibile dell'asse principale. (Ied94d, b/186012444, b/184355105)

Versione 1.0.0-beta05

21 aprile 2021

androidx.compose.material:material-*:1.0.0-beta05 viene ritirata. La versione 1.0.0-beta05 contiene questi commit.

Correzioni di bug

  • Sono state aggiunte immagini dei riquadri dei componenti, selettore di temi e URL di menu più specifici al catalogo esistente di Compose Material. (I9b58e)

Versione 1.0.0-beta04

7 aprile 2021

androidx.compose.material:material-*:1.0.0-beta04 viene ritirata. La versione 1.0.0-beta04 contiene questi commit.

Modifiche alle API

  • MODIFICA API: lo stato DrawerState non estende più SwipeableState sperimentale.
    • MODIFICA API: BottomDrawerState ora è contrassegnato come sperimentale, in modo da corrispondere al componente BottomDrawer già sperimentale (I81114, b/181656094)
  • Rinomina hideSoftwareKeyboard e showSoftwareKeyboard su SoftwareKeyboardController in hide() e show() 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à notificheranno automaticamente all'utente le modifiche (Idcf6f, b/172590946).

Correzioni di bug

  • È stata aggiunta l'implementazione del catalogo di componenti Material al modulo esistente. Al momento mancano: immagini dei 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 ritirata. La versione 1.0.0-beta03 contiene questi commit.

Modifiche alle API

  • DefaultMonotonicFrameClock è deprecato. La chiamata withFrameNanos o Recomposer.runRecomposeAndApplyChanges senza MonotonicFrameClock ora genererà IllegalStateException. (I4eb0d)
  • È stata aggiunta una nuova API LeadingIconTab per supportare la visualizzazione di un'icona e di testo in linea in una scheda. (I23267)

Contributo esterno

  • [di Jossi Wolf] BottomDrawer ora esegue il wrapping del contenuto dello slot del riquadro. BottomDrawer non genera un IllegalStateException quando l'elemento principale ha un'altezza infinita. Il riquadro inferiore si aprirà in uno stato espanso se è più piccolo del 50% del contenitore. I documenti relativi a BottomDrawerState e ModalBottomSheetLayoutState sono stati aggiornati. BottomDrawerState#isOpen restituisce true se si trova nello stato aperto o espanso. (I87241)

Versione 1.0.0-beta02

10 marzo 2021

androidx.compose.material:material-*:1.0.0-beta02 viene ritirata. La versione 1.0.0-beta02 contiene questi commit.

Modifiche alle API

  • È stata aggiunta una nuova API locale di composizione LocalSoftwareKeyboardController per sostituire la precedente interfaccia SoftwareKeyboardController su TextField. (I5951e, b/168778053)

Correzioni di bug

  • Applica restrizioni all'utilizzo pubblico delle API sperimentali (I6aa29, b/174531520)
  • È stato modificato l'allineamento orizzontale predefinito per TopAppBar e BottomAppBar in Inizio, in linea con Row (Ib2dc7)
  • È stato aggiunto un nuovo modulo e un'interfaccia utente segnaposto per un catalogo di componenti Material Compose, attualmente nidificato nelle demo dei test di integrazione esistenti. (Idfcb3)
  • androidx.compose.ui:ui non dipende più da AppCompat o Fragment. Se utilizzi un ComposeView nella tua applicazione e utilizzi Fragment e/o AppCompat, assicurati di utilizzare AppCompat 1.3+ / Fragment 1.3+, queste versioni sono necessarie per impostare correttamente i proprietari del ciclo di vita e dello stato salvato richiesti per ComposeView. (I1d6fa, b/161814404)

Versione 1.0.0-beta01

24 febbraio 2021

androidx.compose.material:material-*:1.0.0-beta01 viene ritirata. La versione 1.0.0-beta01 contiene questi commit.

Questa è la prima release di Compose 1.0.0 Beta.

Modifiche alle API

  • I modificatori di dimensioni 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 sui companion ImageBitmap e ImageVector. Le funzioni load{Image,Vector,Font}Resource sono state eliminate. (I89130)
  • I modificatori per il dimensionamento in base alle dimensioni intrinseche non sono più sperimentali. (I15744)
  • Rimozione delle asserzioni dp (I798d2)
  • Callback SoftwareKeyboardController rimosso da tutti i campi di testo da sostituire a breve con una nuova API. (Iae869, b/168778053)
  • Le espressioni lambda di azione per Switch, Checkbox e RadioButton ora sono annullabili. Esempi di caselle di controllo in righe selezionabili 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 come Button e Modifier.clickable(), utilizza interactionSource = remember { MutableInteractionSource() }.
    • Invece di: 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 il flusso di interazioni. Per ulteriori informazioni, consulta la documentazione e gli esempi di InteractionSource.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • Aggiungi l'interfaccia AccessibilityMananger e LocalAccessibilityMananger in CompositionLocals (I53520)
  • Sono stati rimossi i metodi LayoutCoordinates ritirati. Utilizza la funzione anziché la proprietà per positionInParent e boundsInParent (I580ed, b/169874631, b/175142755)
  • Il cursore ora supporta lo stato attivato/disattivato (I6d56b, b/179793072)
  • È stata creata una nuova TextInputSession per le sessioni di input da componenti di testo di basso livello come CoreTextField. (I8817f, b/177662148)
  • AnimationEndReason.Interrupted viene rimosso. CancellationException verrà generata se l'animazione viene interrotta. (I2cbbc, b/179695417)
  • È stato rimosso @ExperimentalRippleApi e RippleAlpha è stato modificato in modo che sia 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.
  • Aggiungi il modificatore selectionGroup che consente di contrassegnare la raccolta di schede o pulsanti di opzione per scopi di accessibilità (Ie5c29)
  • Aggiungi LazyListState.animateScrollToItem

    Questo metodo scorre in modo fluido fino a un elemento specifico dell'elenco. (I4bfd7)

  • ScrollableState.smoothScrollBy() è stato rinominato in animateScrollBy() LazyListState.snapToItemIndex() è stato rinominato in scrollToItem() ScrollState.smoothScrollTo() è stato rinominato in animateScrollTo() (I35ded)

  • Tutti i composable contrassegnati con @ReadOnlyComposable ora vengono convalidati in fase di compilazione per garantire che chiamino solo altri @ReadOnlyComposables (I58961)

  • L'API TargetAnimation è stata rimossa. (If47d1, b/177457083)

  • La posizione di scorrimento in Modifier.verticalScroll()/horizontalScroll() è ora rappresentata con numeri interi (I81298)

  • I pacchetti dei metodi smoothScrollBy e scrollBy sono stati modificati in androidx.compose.foundation.gestures.* (I3f7c1, b/175294473)

  • FlingConfig è stato rinominato FlingBehavior e ora consente la personalizzazione dell'animazione di sospensione anziché i decadimenti predefiniti. (I02b86, b/175294473)

  • I modificatori di dimensioni 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 defaultMinSize. (I4eaae)

  • L'orientamento è stato spostato nel pacchetto di base. VelocityTracker è stato spostato 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 per chiamarli (I16f60, b/175294473)

  • Providers è stato rinominato in CompositionLocalProvider

    • Il costruttore Composition non accetta più un parametro chiave ed è stato ritirato.
    • currentCompositeKeyHash è diventata una proprietà componibile di primo livello anziché una funzione componibile di primo livello.
    • CompositionData e CompositionGroup sono stati spostati nello spazio dei nomi androidx.compose.runtime.tooling
    • ComposableLambda è diventata un'interfaccia anziché una classe concreta e non ha più parametri di tipo.
    • ComposableLambdaN è stata resa un'interfaccia anziché una classe concreta e non ha più parametri di tipo.
    • La funzione snapshotFlow è stata spostata nello spazio dei nomi androidx.compose.runtime
    • Il metodo di unione di SnapshotMutationPolicy non è più sperimentale
    • La funzione @TestOnly clearRoots di primo livello è stata rimossa. Non è più necessario.
    • Le funzioni keySourceInfoOf e resetSourceInfo sono state rimosse. Non sono più necessari.
    • Composer.collectKeySourceInformation è stato rimosso. Non è più necessario.
    • I metodi isJoinedKey, 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 di file di Kotlin, la compatibilità binaria verrà interrotta, ma non quella del codice sorgente, quindi 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 espressione 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 ritirate in precedenza (Ice5da, b/178633932)

  • Sono state apportate le seguenti modifiche all'API Material:

    • È stato aggiunto il parametro contentPadding a Top/BottomAppBar per consentire la personalizzazione del padding predefinito.
    • Riorganizzazione dei parametri in BackdropScaffold in modo che seguano le linee guida dell'API per i parametri obbligatori prima di quelli facoltativi.
    • Il parametro icon in BottomNavigationItem è stato spostato dopo selected e onClick.
    • Il parametro alwaysShowLabels in BottomNavigationItem è stato rinominato in alwaysShowLabel.
    • È stato rinominato il parametro bodyContent in alcuni componenti in content.
    • Parametri riordinati in ButtonDefaults.buttonColors(). Tieni presente che, poiché il tipo di parametri non è cambiato, non si verificherà un errore nel codice. Assicurati di utilizzare parametri denominati o di aggiornare l'ordinamento manualmente, altrimenti il codice non funzionerà come in precedenza.
    • Aggiunto il parametro secondaryVariant a darkColors(). Questo colore è in genere lo stesso di secondary nel tema scuro, ma viene aggiunto per coerenza e per una maggiore personalizzazione.
    • Rimossi ElevationDefaults e animateElevation() dalla superficie dell'API pubblica perché non erano di uso comune / utili.
    • Rinominato onValueChangeEnd in Slider in onValueChangeFinished e reso nullabile.
    • Il parametro text in Snackbar è stato rinominato in content per coerenza.
    • È stato aggiunto il parametro contentPadding a DropdownMenuItem per consentire la personalizzazione del padding predefinito e content è diventata un'estensione di RowScope.
    • ModalDrawerLayout rinominato in ModalDrawer.
    • BottomDrawerLayout rinominato in BottomDrawer.
    • (I1cc66)
  • BasicTextField ora accetta Brush anziché Color per una migliore personalizzazione (I83a36)

  • imageResource e vectorResource ora sono funzioni di estensione rispettivamente sui companion ImageBitmap e ImageVector. Le funzioni load{Image,Vector,Font}Resource sono state eliminate. (I89130)

  • È stato modificato Indication#createIndication() in Indication#rememberUpdatedIndication(InteractionState) e il parametro InteractionState è stato rimosso da IndicationInstance#drawIndication(). IndicationInstance deve essere responsabile solo del disegno degli effetti visivi e non dell'avvio di animazioni / della scrittura dello stato in risposta alle modifiche di InteractionState. Queste animazioni e scritture di stato devono invece avvenire entro rememberUpdatedIndication(). Anche il parametro indication in Modifier.indication è stato modificato in modo che sia un parametro obbligatorio. (Ic1764, b/152525426)

Correzioni di bug

  • È stata aggiunta una nuova API LocalSoftwareKeyboardController di composizione locale per sostituire la precedente interfaccia SoftwareKeyboardController in TextField. (I658b6, b/168778053)

Versione 1.0.0-alpha12

10 febbraio 2021

androidx.compose.material:material-*:1.0.0-alpha12 viene ritirata. La versione 1.0.0-alpha12 contiene questi commit.

Modifiche alle API

  • Modifier.pointerInput ora richiede chiavi remember per indicare quando la coroutine di rilevamento dell'input del puntatore deve essere riavviata per nuove dipendenze. (I849cd)
  • BottomDrawerLayout e ListItem sono stati contrassegnati come @ExperimentalMaterialApi (Id766e)
  • È stato aggiunto PaddingValues.Absolute, che può essere utilizzato nelle API che accettano PaddingValues. (Ia5f30)
  • onImeActionPerformed è deprecato. Utilizza KeyboardActions (If0bbd, b/179071523)
  • Per adattarsi meglio alle convenzioni di denominazione con ImageBitmap e ImageVector, ImagePainter è stato rinominato BitmapPainter per essere parallelo a VectorPainter. (Iba381, b/174565889)
  • Animatable.snapTo e Animatable.stop sono ora 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 diverse classi in cui venivano utilizzati raramente. (I26702, b/178659281)
  • Rendi interne le funzioni halfExpand() ed expand() in ModalBottomSheetState (Ic914e)
  • È stato modificato Indication#createInstance in modo che sia @Composable ed è stato modificato 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 configurare ulteriormente il popup sottostante. (I9c443)
  • loadFontResource è deprecato. Utilizza fontResource. Le API imageResource, loadImageResource, vectorResource e loadVectorResource sono deprecate. Usa painterResource. (I6b809)
  • Rimossi i parametri toggle e toggleModifier da DropdownMenu e rinominati dropdownModifier, dropdownOffset e dropdownContent rispettivamente in modifier, offset e content. DropdownMenu ora si comporta in modo coerente con Popup, dove il layout principale viene utilizzato per la posizione del menu. Nella maggior parte dei casi, puoi spostare toggle in modo che sia un elemento di pari livello di DropdownMenu e racchiuderli entrambi in un Box. Per saperne di più 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 azioni semantiche di espansione e compressione. Aggiunta di 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 solo asse (I0ba93, b/175294473)
  • Rinominate le impostazioni di Ambienti in modo che corrispondano al nuovo nome Ambient -> CompositionLocal. Gli ambienti venivano denominati AmbientFoo, ora le variabili locali di composizione vengono denominate 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 di remember { mutableStateOf(0) }, rimuoveremo il composable savedInstanceState { 0 }. Devi utilizzare rememberSaveable { mutableStateOf(0) }, che salverà e ripristinerà automaticamente il tipo utilizzato all'interno di MutableState se può essere archiviato nel bundle. Se in precedenza passavi un oggetto di salvataggio personalizzato, ora devi utilizzare un nuovo overload di rememberSaveable che ha il parametro stateSaver. 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 è stato spostato da androidx.compose.runtime.savedinstancestate ad androidx.compose.runtime.saveable (I77fe6)

  • I parametri di RounderCornerShape, CutCornerShape e CornerBasedShape sono stati rinominati da sinistra/destra a inizio/fine per supportare il mirroring automatico della forma nella direzione da destra a sinistra. AbsoluteRounderCornerShape e AbsoluteCutCornerShape sono stati introdotti per i casi in cui non è desiderato il mirroring automatico. (I61040, b/152756983)

  • Modificati i parametri text e icon di Changed Tab e il parametro label di BottomNavigationItem in modo che siano nullabili, per comunicare meglio il comportamento del componente quando questi parametri vengono / non vengono forniti, poiché influiscono sulle dimensioni e sul layout del componente. Se al momento passi emptyContent() per rappresentare nessun testo / icona / etichetta, devi utilizzare null. (I57ed4)

  • È stato rinominato il parametro di colore contentColorFor in backgroundColor (I5bb67)

  • È stato ritirato TabDefaults e sostituito con TabRowDefaults. (I0f189)

  • È stata introdotta l'API ColorMatrix utilizzata per modificare i valori RGB dei contenuti di origine. È stata eseguita la refactoring dell'API ColorFilter per renderla un'interfaccia e corrispondere all'implementazione di PathEffect. (Ica1e8)

  • AnimatedValue/Float è ora deprecato. Utilizza invece Animatable. (I71345, b/177457083)

  • Aggiungi l'API SemanticsProperties.PaneTitle. (I20d5a)

  • Sono stati aggiunti parametri abilitati a Tab e BottomNavigationItem per impedire che siano selezionabili. È stato modificato BottomNavigationItem in RowScope.BottomNavigationItem per esprimere meglio i requisiti di layout nella relativa API. (Id683d)

  • tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter e pressIndicaitonGestureFilter sono stati ritirati. Utilizza invece Modifier.clickable o Modifier.pointerInput con la funzione detectTapGestures. (I6baf9, b/175294473)

  • Aggiungi il parametro layoutDirection a createOutline di Shape. Ciò consente di creare forme che tengono conto della direzione del layout. (I57c20, b/152756983)

  • Recomposer.current() rimosso. [Abstract]ComposeView ora per impostazione predefinita crea in modo differito Recomposer con ambito finestra basati su ViewTreeLifecycleOwner per la finestra. La ricomposizione e i tick di animazione basati su withFrameNanos vengono messi in pausa mentre il ciclo di vita dell'host è interrotto. (I38e11)

Correzioni di bug

  • L'icona ora verrà scalata per adattarsi alle sue dimensioni, rispettando i modificatori di dimensione applicati. Ad esempio, Icon(.., modifier = Modifier.size(50.dp) ora verrà disegnato 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 ritirata. La versione 1.0.0-alpha11 contiene questi commit.

Modifiche alle API

  • Promuove alcune API Material in modo che non siano più @Experimental (I5d20e)
  • Al parametro Descrizione contenuti sono state aggiunte le immagini e le icone. Viene utilizzato per fornire una descrizione ai servizi di accessibilità (I2ac4c).
  • Modifica le interfacce dei parametri stateful di Material in modo che abbiano funzioni @Composable che restituiscono State<T>. Aggiunge Animatable.asState() per semplificare la conversione di un elemento animabile in uno stato. Inoltre, modifica animateElevation in modo che sia un'estensione di sospensione su Animatable. (If613c)
  • Snackbar, SnackbarHost, SnackbarHostState non sono più @ExperimentalMaterialAPI (Id1fb5)
  • Modifica Tipografia, Forme e TabPosition in modo che non siano più classi di dati. Aggiunge la funzione di copia per Tipografia e Forme per sostituire quelle generate. (I40037)
  • Sono state eliminate alcune API Material precedentemente deprecate (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)
  • Ora è supportato Initial State in updateTransition (Ifd51d)
  • WithConstraints è stato rielaborato come BoxWithConstraints e spostato in foundation.layout. (I9420b, b/173387208)
  • Deprecate non-suspend scrollBy, remove non-suspend scrollTo

    Ora consigliamo di utilizzare le funzioni di sospensione per controllare lo scorrimento e attendere che lo scorrimento termini. Nell'ambito di questa transizione, stiamo ritirando e/o rimuovendo le versioni non sospese di queste funzioni. (Ie9ced)

  • Ritiro di smoothScrollBy non sospeso Ora consigliamo di utilizzare le funzioni di sospensione per controllare lo scorrimento e attendere che lo scorrimento termini. Nell'ambito di questa transizione, stiamo ritirando le versioni non sospese di queste funzioni. (I12880)

  • È stato introdotto ComposeContentTestRule, che estende ComposeTestRule e definisce setContent, che è stato rimosso da ComposeTestRule. È stato aggiunto un metodo di fabbrica createEmptyComposeRule() che restituisce un ComposeTestRule e non avvia un'attività per te. Utilizza questo intent quando vuoi avviare l'attività durante il test, ad esempio utilizzando ActivityScenario.launch (I9d782, b/174472899)

  • L'increspatura utilizzata in Button e FloatingActionButton non può più essere personalizzata fornendo una nuova indicazione tramite AmbientIndication. Questo non è mai stato pensato come un modo per personalizzare questi componenti e ora li rende coerenti con gli altri componenti Material. Per personalizzare gli effetti a catena in un'applicazione, vedi RippleTheme. (I546c5)

  • animateAsState ora è animateFooAsState, dove Foo è il tipo di variabile animata. Ad esempio, Float, Dp, Offset e così via (Ie7e25)

  • BasicTextField ha ricevuto un nuovo parametro chiamato decorationBox. Consente di aggiungere decorazioni come icone, segnaposto, etichette e simili al campo di testo e di aumentare l'area target di tocco. (I16996)

  • Correzione di un bug che impediva 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 della finestra. (I62db4)

  • Ora Surface può avere più elementi secondari di layout. (I66a92, b/144488459)

  • invalidate e compositionReference() sono ora ritirati a favore di currentRecomposeScope e rememberCompositionReference rispettivamente. (I583a8)

  • Modifica PopupPositionProvider in modo che utilizzi le coordinate relative alla finestra, non quelle globali. Rinomina parentGlobalBounds in anchorBounds e modifica windowGlobalBounds in windowSize: IntSize (I2994a)

  • Durata e Uptime verranno sostituiti da Millisecondi lunghi e questo passaggio rimuove la dipendenza dell'input del puntatore da queste classi. (Ia33b2, b/175142755, b/177420019)

  • AnimatedFloat.fling che accetta FlingConfig è stato rimosso. Utilizza invece suspend Animatable.animateDecay. (I4659b, b/177457083)

  • Gli elementi selezionabili, attivabili/disattivabili e su cui è possibile fare clic ora possono essere creati al di fuori della composizione (I0a130, b/172938345, b/175294473)

  • L'easing è stato modificato in un'interfaccia funzionale (Ib14e5)

  • ScrollableColumn/Row sono stati ritirati. L'utilizzo di ScrollableColumn è meno efficiente rispetto a LazyColumn quando hai un grande contenuto scorrevole perché con LazyColumn possiamo comporre/misurare/disegnare solo gli elementi visibili. Per evitare che gli utenti utilizzino un metodo inefficiente, abbiamo deciso di ritirare ScrollableColumn e ScrollableRow e promuovere l'utilizzo di LazyColumn e LazyRow. Gli utenti possono comunque decidere di non utilizzare il comportamento pigro e utilizzare i modificatori direttamente in questo modo: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)

  • Nuovo metodo di fabbrica items(count: Int) per l'ambito di LazyColumn/LazyRow/LazyVerticalGrid. items(items: List) e itemsIndexed(items: List) ora sono funzioni di estensione, quindi devi importarle manualmente quando le utilizzi. Nuovi overload di estensione per gli array: items(items: Array) e itemsIndexed(Array) (I803fc, b/175562574)

  • Rimossi i metodi sperimentali monotonicFrameAnimationClockOf (Ib753f, b/170708374)

  • Sono stati ritirati i metodi di coordinate globali e sono stati creati nuovi metodi di coordinate basati su finestre. (Iee284)

  • È stato aggiunto Modifier.toolingGraphicsLayer, che aggiunge un modificatore del livello di grafica quando l'ispezione è attivata. (I315df)

  • FocusRequester.createRefs è ora contrassegnato come sperimentale, in quanto potrebbe cambiare. (I2d898, b/177000821)

  • SemanticsPropertyReceiver.hidden è stato rinominato in invisibleToUser e contrassegnato con @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)

  • API per la grafica vettoriale aggiornata 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 ritirata. La versione 1.0.0-alpha10 contiene questi commit.

Modifiche alle API

  • Modifica di Velocity per includere componenti e operazioni matematiche. (Ib0447)
  • @ExperimentalTesting è stato rinominato in @ExperimentalTestApi per essere coerente con annotazioni API sperimentali simili (Ia4502, b/171464963)
  • Rinomina di Position in DpOffset e rimozione di getDistance() (Ib2dfd)
  • Rinomina Color.useOrElse() in Color.takeOrElse() (Ifdcf5)
  • Aggiungi l'opzione di attivazione/disattivazione a foundation Strings.kt (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 ed è stato reso interno. Utilizzi aggiornati di nativeClass nelle implementazioni di equals per utilizzare 'is MyClass' invece. (I4f734)

Correzioni di bug

  • È stato aggiunto il supporto per i campi di testo disattivati e di sola lettura (I35279, b/171040474, b/166478534)
  • animate() è ora sostituito da animateAsState(), che restituisce un State<T> anziché un T. Ciò consente prestazioni migliori, in quanto l'ambito di invalidazione può essere ristretto al punto in cui viene letto il valore State. (Ib179e)
  • Aggiungi l'API del ruolo Semantics e aggiungi il ruolo come parametro a SemanticsModifier selezionabile, attivabile e disattivabile. 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 ritirata. La versione 1.0.0-alpha09 contiene questi commit.

Modifiche alle API

  • È stata aggiunta l'API per attivare manualmente l'animazione di assestamento e il trascinamento in Modifier.swipeable (Iaa17a, b/162408885).
  • Rinominate le costanti come ButtonConstants in modo che terminino con Defaults, ad esempio ButtonDefaults. Rimuove anche i prefissi default non necessari dalle proprietà di questi nuovi oggetti. (Ibb915, b/159982740)
  • Compose supporta i getter delle proprietà che possono effettuare chiamate componibili. Il supporto per questa funzionalità non verrà rimosso, ma la sintassi per dichiarare un getter di proprietà come @Composable sta cambiando.

    La sintassi ora ritirata per eseguire questa operazione prevedeva l'annotazione della 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 alla fine diventerà un errore di compilazione. (Id9197)

  • È stata aggiunta la libreria androidx.compose.material:material-ripple contenente le API ripple per consentire la creazione di componenti interattivi senza la necessità del resto della libreria Material. rememberRippleIndication è stato ritirato e sostituito con rememberRipple. (Ibdf11)

Correzioni di bug

  • Le espressioni 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 differito un'istanza dello shader quando sono disponibili le informazioni sulle dimensioni dell'ambiente di disegno. Ciò è utile per definire gradienti che occupano i limiti di disegno completi di un elemento componibile al momento della composizione, senza dover implementare implementazioni personalizzate di DrawModifier.

    API costruttori di funzioni di sfumatura deprecate a favore dei metodi di fabbrica su un oggetto sfumatura. (I511fc, b/173066799)

  • Modifier.focusObserver è deprecato. Utilizza Modifier.onFocusChanged o Modifier.onFocusEvent (I30f17, b/168511863, b/168511484)

  • Ritira LazyColumnFor, LazyRowFor, LazyColumnForIndexed e LazyRowForIndexed. Utilizza invece LazyColumn e LazyRow (I5b48c)

  • Dp.VectorConverter, Position.VectorConverter e così via sono stati spostati in animation-core e i vecchi VectorConverter (If0c4b) sono stati ritirati.

  • L'API Autofill è ora un'API sperimentale e richiede l'attivazione (I0a1ec)

  • Aggiunta di dichiarazioni di destrutturazione per creare istanze FocusRequester (I35d84, b/174817008)

  • accessibilityLabel è stato rinominato in contentDescription. accessibilityValue è stato rinominato in stateDescription. (I250f2)

  • Nuova funzione infiniteRepeatable per la creazione di un 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 la semantica dei discendenti e impostarne di nuove. (I277ca)

  • Spostato ContentDrawScope nel modulo ui-graphics per essere con 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 sono rilasciati. La versione 1.0.0-alpha08 contiene questi commit.

Modifiche alle API

  • MaterialTheme ora imposta i colori corretti per i punti di manipolazione della selezione e lo sfondo della selezione. Le app non Material possono utilizzare manualmente AmbientTextSelectionColors per personalizzare i colori utilizzati per la selezione. (I1e6f4, b/139320372, b/139320907)
  • È stato aggiunto il controllo lint per la denominazione e la posizione dei parametri lambda componibili, per verificare la coerenza con le linee guida di Compose. Inoltre, sono state migrate alcune API utilizzando children come nome per la lambda finale in content, in base al controllo lint e alle indicazioni. (Iec48e)
  • VectorAsset è stato rinominato ImageVector VectorAsset è stato spostato e rinominato Builder per essere una classe interna di ImageVector in conformità con le linee guida del consiglio API. Aggiunta di un alias di tipo di VectorAssetBuilder per collegarsi a ImageVector.Builder per la compatibilità. (Icfdc8)
  • ImageAsset e i metodi correlati sono stati rinominati ImageBitmap. (Ia2d99)
  • Proprietà semantiche di base spostate nell'interfaccia utente (I6f05c)
  • fun RippleIndication() è stato ritirato e sostituito con rememberRippleIndication() per coerenza con altre API. (Id8e2c)
  • È stato aggiunto un parametro singeLine a 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 azione 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 alias di tipo/metodi helper per facilitare la migrazione dalle API deprecate a quelle attuali. (Id6044, b/173834241)
  • È stato rinominato Modifier.drawLayer in Modifier.graphicsLayer Sono state aggiornate anche le classi correlate a GraphicsLayer in base al feedback dell'API. (I0bd29, b/173834241)
  • <T> è stato rimosso dalla dichiarazione SubcomposeLayout. Ora puoi utilizzarlo senza specificare un tipo. (Ib60c8)
  • Aggiunte API Modifier.scale/rotate come comodità per drawLayer.
    • Modifier.drawOpacity rinominato in Modifier.alpha
    • Modifier.drawShadow rinominato in Modifier.shadow (I264ca, b/173208140)
  • Il parametro di allineamento di Box è stato rinominato contentAlignment. (I2c957)
  • I modificatori offsetPx sono stati rinominati in offset. Ora accettano parametri lambda anziché State. (Ic3021, b/173594846)
  • Sono state introdotte le API SweepGradientShader e SweepGradientBrush. (Ia22c1)
  • È stato aggiunto il controllo lint per i parametri Modifier nelle funzioni composable. Questo controllo lint verifica la denominazione, il tipo restituito, il valore predefinito e l'ordine del parametro per garantire la coerenza con le linee guida di Compose. (If493b)
  • API TextFieldValue aggiornata
    • TextFieldValue.composition è ora di sola lettura
    • rimossa l'eccezione generata per l'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 ricomposizione e il ricalcolo del layout quando si verifica la modifica dello stato. DrawLayerModifier è ora interno in preparazione alla migrazione della sua logica nel metodo placeable.placeWithLayer() di LayoutModifier (I15e9f, b/173030831)
  • Gli Ambients ritirati denominati con Ambient come suffisso sono stati sostituiti con nuove proprietà con il prefisso Ambient, seguendo le altre linee guida per Ambients e API Compose. (I33440)
  • È stato aggiunto un controllo lint per verificare che le fabbriche di modificatori utilizzino internamente androidx.compose.ui.composed {}, anziché essere contrassegnate come @Composable. (I3c4bc)
  • L'argomento Semantica 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 TextUnit.Unspecified per coerenza con le altre unità. (Ifce19)
  • L'interfaccia di allineamento è stata aggiornata e resa funzionale. (I46a07, b/172311734)
  • 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 sono rilasciati. La versione 1.0.0-alpha07 contiene questi commit.

Modifiche alle API

  • Emphasis è stato ritirato e sostituito con AmbientContentAlpha. AmbientContentAlpha è un'astrazione più semplice che rappresenta l'alfa dei contenuti preferiti per una parte della gerarchia, in modo simile a come AmbientContentColor rappresenta il colore dei contenuti preferiti. Ora Text and Icon utilizzano per impostazione predefinita il valore corrente di AmbientContentAlpha e puoi eseguire manualmente color.copy(alpha = AmbientContentAlpha.current) per ottenere lo stesso effetto nei tuoi componenti. Anziché utilizzare ProvideEmphasis, puoi fornire direttamente un valore tramite AmbientContentAlpha e utilizzare i nuovi livelli predefiniti in ContentAlpha per sostituire i vecchi EmphasisLevels. (Idf03e, b/159017896)
  • Aggiunge androidx.compose.material.AmbientContentColor per sostituire androidx.compose.foundation.AmbientContentColor (I84f7b, b/172067770)
  • Aggiunge androidx.compose.material.Text per sostituire androidx.compose.foundation.Text come componente di testo di alto livello e con temi. Per un componente di testo di base che non utilizza lo stile di colore / testo del tema, utilizza BasicText. (Ie6ae0)
  • Aggiunta di maxLines ai campi di testo (Ib2a5b)
  • Aggiorna i campi di testo per accettare KeyboardOptions (Ida7f3)
  • Ora Surface utilizza l'elevazione assoluta (totale) quando calcola le sovrapposizioni di elevazione, quindi un Surface nidificato in un altro Surface utilizzerà l'elevazione combinata per disegnare la sovrapposizione. (I7bd2b, b/171031040)

Correzioni di bug

  • captureToBitmap spostati in captureToImage. (I86385)
  • Le classi AmbientTextStyle, ProvideTextStyle e AmbientContentColor sono state ritirate. Utilizza invece le nuove versioni disponibili nella libreria di Material. Per le applicazioni non Material, devi invece creare un tuo sistema di progettazione con ambienti di temi specifici 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 e non soggettiva che non utilizza valori di un tema, vedi androidx.compose.foundation.BasicText. (If64cb)
  • Rinomina KeyboardOptions come 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)
  • API Icon aggiornata per accettare Color.Unspecified come possibile colore di tinta che disegnerà l'asset o il pittore fornito senza un ColorFilter. In precedenza, i tentativi di ignorare la colorazione con Color.Unspecified avrebbero colorato con un colore trasparente, con il risultato di non visualizzare nulla. (I049e2, b/171624632)
  • relativePaddingFrom è stato rinominato in paddingFrom. È stato aggiunto il modificatore paddingFromBaseline, per specificare più facilmente le distanze dai limiti del layout alle linee di base del testo. (I0440a, b/170633813)
  • LaunchedTask è stato rinominato LaunchedEffect per coerenza con le API SideEffect e DisposableEffect. LaunchedEffect senza parametri del soggetto non è consentito per incoraggiare le best practice. (Ifd3d4)
  • MeasureResult è stato spostato fuori da MeasureScope. (Ibf96d, b/171184002)
  • Diversi simboli correlati 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 sono rilasciati. La versione 1.0.0-alpha06 contiene questi commit.

Modifiche alle API

  • androidx.compose.foundation.Icon è stato spostato in androidx.compose.material.Icon. Se non vuoi utilizzare la libreria Material, puoi anche utilizzare il componente / modificatore Image.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 diversi stati. Per personalizzare questi parametri, consulta le funzioni predefinite in ButtonConstants. (Ic5b7b)
  • Aggiunge l'interfaccia RadioButtonColors per rappresentare i colori utilizzati da un pulsante di opzione in stati diversi. Consulta RadioButtonConstants.defaultColors() per personalizzare i colori utilizzati nei diversi stati. (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 nei diversi stati. (I7dbdb)

Correzioni di bug

  • I componenti Material non impostano più l'elevazione come zIndex. Ciò significa che all'interno dello stesso genitore il bambino con l'ombra più grande non verrà disegnato automaticamente sopra il bambino con l'ombra più piccola. Se hai ancora bisogno di questo comportamento, imposta Modifier.zIndex() manualmente dove necessario (I70417, b/170623932).
  • VectorPainter è stato ritirato a favore di rememberVectorPainter per indicare meglio che l'API componibile sfrutta internamente "remember" per rendere persistenti i dati tra le composizioni. (Ifda43)
  • Attiva le transizioni in ComposeTestRule; rimuovi l'opzione per attivare il cursore lampeggiante da ComposeTestRule. (If0de3)
  • È stata aggiunta l'opzione della tastiera a una sola riga a CoreTextField (I72e6d)
  • È stata rinominata l'API Radius in CornerRadius per esprimere meglio il modo in cui viene utilizzata in tutto Compose. Documentazione aggiornata per indicare che i raggi d'angolo negativi sono bloccati a zero. (I130c7, b/168762961)
  • DrawScope e ContentDrawScope sono stati sottoposti a refactoring per essere interfacce anziché classi astratte
    • Implementazione di CanvasDrawScope di DrawScope
    • Implementazioni sottoposte a refactoring di DrawScope per utilizzare CanvasScope
    • Creato DrawContext per racchiudere le dipendenze per DrawScope
    • Rimossi metodi obsoleti in DrawScope (I56f5e)
  • Box è stato reso una 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 sono rilasciati. La versione 1.0.0-alpha05 contiene questi commit.

Modifiche alle 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).
  • Modifier.swipeable ora ha soglie di 56 dp per gli stati per impostazione predefinita (Iab825, b/168610267)
  • Tutti gli stati dello scaffold contrassegnati come @Stable. drawerGesturesEnabled in ScaffoldState spostato in Scaffold. (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)
  • Depreca le API contentColor() e currentTextStyle() e le sostituisce rispettivamente con gli ambient AmbientContentColor e AmbientTextStyle. Puoi accedere al valore corrente utilizzando .current nella proprietà ambient, come per qualsiasi altro ambient. Questa modifica è stata apportata per coerenza e per evitare di avere più modi per ottenere lo stesso risultato. Inoltre, rinomina alcune proprietà ambientali per descriverne meglio lo scopo come segue:

    • ContentColorAmbient -> AmbientContentColor
    • 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 dei valori sentinella per le classi inline, rinomina Color.Unset in Color.Unspecified per coerenza con altre classi inline (I97611, b/169797763)
  • Viene introdotto TextOverflow.None. Quando l'overflow è None, Text non gestirà più l'overflow e segnalerà le dimensioni effettive a LayoutNode. (I175c9, b/158830170)
  • launchInComposition è stato rinominato LaunchedTask per rispettare le linee guida dell'API Compose (I99a8e)
  • OnPositionedModifier è stato rinominato in OnGloballyPositionedModifier e onPositioned() è stato 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 sono rilasciati. La versione 1.0.0-alpha04 contiene questi commit.

Modifiche alle API

  • Espone i parametri InteractionState nei componenti Material con stato, per consentire l'innalzamento dello stato e la lettura / il controllo dello stato. (Iaca5f, b/168025711, b/167164434)
  • Modifica i parametri *color in RadioButton e TriStateCheckbox per consentire la personalizzazione completa dei colori utilizzati in ogni stato, nonché la modifica dell'animazione dei colori tra gli stati, se necessario. Per ulteriori informazioni, consulta le nuove funzioni di colore animateDefault* in CheckboxConstants e RadioButtonConstants. (I1c532)
  • È stato rinominato rememberBackdropState in rememberBackdropScaffoldState ed è stato aggiunto un parametro aggiuntivo per l'orologio dell'animazione. È stato rinominato il parametro backdropScaffoldState di BackdropScaffold in scaffoldState. Rinominate 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

  • Aggiornamento di molte API grafiche
    • API di trasformazione di rotazione e scalabilità aggiornate per utilizzare un singolo parametro Offset per rappresentare la coordinata del punto di rotazione anziché parametri float separati per le coordinate x/y in DrawScope e DrawTransform
    • Rimossi i metodi Rect.expandToInclude e Rect.join
    • Aggiornamento della documentazione sul raggio per indicare ovale oltre a ellittico
    • È stata aggiunta la documentazione per indicare che il costruttore pubblico per la classe Radius incorporata non deve essere chiamato direttamente, ma gli oggetti Radius devono essere istanziati tramite i relativi costruttori di funzioni
    • Sono state rimosse le API RoundRect per eseguire query su topRight, bottomRight, bottomCenter e così via.
    • Rect.shift ritirato a favore di Rect.translate
    • Sono state rimosse le API RoundRect.grow e Rect.shrink
    • È stato rinominato RoundRect.outerRect in Rect.boundingRect
    • Rimozione dei metodi RoundRect.middleRect/tallMiddleRect/wideMiddleRect e Rect.isStadium
    • Rinominato RoundRect.longestSide in RoundRect.maxDimension
    • È stato rinominato RoundRect.shortestSide in RoundRect.minDimension
    • Modifica di RoundRect.center in modo che sia una proprietà anziché una funzione
    • Aggiornamento del costruttore RoundRect per 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 origine in 0,0
    • È stata aggiunta un'API di eliminazione a Radius
    • È stata eseguita la migrazione di varie funzioni di estensione RoundRect in modo che siano invece proprietà
    • (I8f5c7, b/168762961)
  • foundation.Box è stato ritirato. Utilizza invece foundation.layout.Box. (Ie5950, b/167680279)
  • L'elenco filtri è stato rinominato in Box. Il Box esistente verrà ritirato a favore del nuovo Box in compose.foundation.layout. Il comportamento della nuova casella è quello di impilare gli elementi secondari uno sopra l'altro quando ne ha più di uno. Questo è diverso dalla casella precedente, che si comportava in modo simile a una colonna. (I94893, b/167680279)
  • I parametri di decorazione del riquadro sono stati ritirati. Se vuoi aggiungere decorazioni/spazi interni alla casella, utilizza i modificatori (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
  • Aggiornamento di molte API grafiche
    • API DrawScope aggiornate con metodi di trasformazione con ambito per indicare che la trasformazione viene applicata solo all'interno del callback e rimossa dopo l'invocazione del callback
    • È stata aggiornata la documentazione di clipPath in modo che faccia riferimento a Path anziché al rettangolo arrotondato
    • Spaziatura fissa nella documentazione per il parametro right in clipPath
    • Rinominate DrawScope.drawCanvas in drawIntoCanvas e rimosso il parametro size
    • I parametri dx/dy nel metodo inset sono stati rinominati in orizzontale e verticale
    • È stato aggiunto l'override dell'inset che fornisce lo stesso valore di inset a tutti e quattro i limiti
    • È stata rimossa la documentazione sul metodo di inserimento che indicava che l'inserimento sarebbe stato applicato a tutti e quattro i lati
    • Documentazione aggiornata per la classe Rect
    • Commenti aggiornati sui parametri Rect per corrispondere allo stile kdoc
    • Rimossi Rect.join e Rect.expandToInclude
    • È stato creato l'overload per Rect.translate(offset) e Rect.shift è stato ritirato
    • (If086a, b/167737376)
  • Abbiamo impedito le importazioni statiche dei contenuti degli ambiti del layout (ad es. alignWithSiblings in RowScope). Deve essere utilizzata 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 sono rilasciati. La versione 1.0.0-alpha03 contiene questi commit.

Modifiche alle API

  • Rinomina il parametro onSelect di BottomNavigationItem in onClick (I91925, b/161809324)
  • Aggiunge il parametro InteractionState a BottomNavigationItem e Tab, consentendo di sollevare questo stato e di regolare l'aspetto del componente in stati diversi. (Ia3e9e, b/168025711)
  • Rimuove i parametri disabledBackgroundColor e disabledContentColor dai pulsanti. Al loro posto, devi utilizzare le nuove funzioni di colore predefinite all'interno di ButtonConstants. Se stai già impostando contentColor/backgroundColor in modo esplicito, devi utilizzare queste funzioni predefinite e personalizzare alcuni o tutti i parametri per evitare di sovrascrivere il colore per gli stati attivati/disattivati. (If9b52)
  • Il colore di sfondo del campo di testo non applica più implicitamente l'alpha di trasparenza. Al contrario, qualsiasi colore fornito tramite il parametro backgroundColor verrà applicato direttamente. (Iecee9, b/167951441)
  • InnerPadding è stato rinominato PaddingValues. (I195f1, b/167389171)
  • I parametri resistanceFactorAtMin e resistanceFactorAtMax in Modifier.swipeable sono stati sostituiti da un unico parametro di resistenza. Un nuovo metodo defaultResistanceConfig è stato aggiunto in SwipeableConstants. (I54238)
  • Aggiunge il supporto per l'elevazione animata con stato per Button e FloatingActionButton. L'elevazione ora viene animata tra gli stati predefinito e premuto. Per personalizzare l'elevazione tra gli stati, utilizza ButtonConstants.defaultAnimatedElevation() e FloatingActionButtonConstants.defaultAnimatedElevation() anziché impostare un valore Dp piatto 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 o waitForIdle sono ora deprecate. Esegui la migrazione alle nuove controparti definite in ComposeTestRule (I7f45a).
  • DpConstraints e le API che lo utilizzano sono state ritirate. (I90cdb, b/167389835)
  • I parametri minWidth e maxWidth di widthIn sono stati rinominati in min e max. Lo stesso vale per preferredWidthIn, heightIn e preferredHeightIn. (I0e5e1, b/167389544)
  • Rimuovi le azioni semantiche di scorrimento in avanti/indietro. Sono stati aggiunti passaggi in AccessibilityRangeInfo. (Ia47b0)
  • Gli utilizzi di gravity sono stati rinominati in modo coerente in align o alignment nelle API di layout. (I2421a, b/164077038)
  • Sono stati aggiunti onNode e altri metodi globali a ComposeTestRule, in quanto quelli globali attuali verranno ritirati. (Ieae36)
  • createAndroidComposeRule e AndroidInputDispatcher spostati da androidx.ui.test.android a androidx.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 sono rilasciati. La versione 1.0.0-alpha02 contiene questi commit.

Modifiche alle API

  • È stato aggiunto un componente BackdropScaffold sperimentale. (Iad908)

Correzioni di bug

  • Matrix4 è stato sostituito da 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 sono 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 sono rilasciati. La versione 0.1.0-dev17 contiene questi commit.

Modifiche alle API

  • RadioGroup e RadioGroupItems, precedentemente ritirati, sono stati rimossi. Utilizza invece Row e RadioBotton (I381b7, b/163806637)
  • Sono stati rimossi i callback onFocusChanged da TextField. Utilizza 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 creare SwipeableStates. (I2fc9c, b/163129614, b/163132293)
  • È stato aggiunto il supporto per le snackbar con posizionamento e accodamento corretti. Accedervi tramite la funzione di sospensione SnackbarHostState.showSnackbar. Inoltre:
    • Sono stati aggiunti i componenti SnackbarHost. Ospita le barre di notifica in base allo stato ed è responsabile della transizione tra le barre di notifica.
    • È stato aggiunto SnackbarHostState per consentire il controllo di snackbar e host di snackbar e per separarlo da ScaffoldState. Puoi accedere a questo stato anche tramite scaffoldState.snackbarHostState.
    • È stato aggiunto l'overload dello snackbar per supportare l'interfaccia comune tra snackbarHostState e gli snackbar stessi. (I79aaa)
  • Aggiunge il parametro enabled 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 Material Design del campo di testo compilato. (I5e889)
  • AlertDialog ora utilizza FlowRow per i pulsanti (I00ec1, b/161809319, b/143682374)
  • Sono stati aggiunti parametri in Modifier.swipeable per modificare la quantità di resistenza quando si scorre oltre i limiti. Parametri [min/max]Value rimossi. (I93d98)
  • È stato aggiunto il parametro backgroundColor a LinearProgressIndicator ed è stato rimosso il padding interno da CircularProgressIndicator. È stata aggiunta la nuova costante ProgressIndicatorConstants.DefaultProgressAnimationSpec, che può essere utilizzata come AnimationSpec predefinita 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 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 coerenza con altre API (Ia2d12, b/161807532)
  • Divide 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 con TabConstants. TabRow.TabPosition è stato spostato al primo livello (TabPosition) e indicatorContainer è stato rinominato in indicator. 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 accetta una coppia di stati (di tipo T) e restituisce la soglia tra loro sotto forma di ThresholdConfig. È stato aggiunto un parametro dismissThresholds a SwipeToDismiss, che è una funzione lambda (DismissDirection) -> ThresholdConfig. (Ie1080)
  • Il cursore ha più colori per una personalizzazione granulare (I73e64, b/161810475)
  • Il parametro del colore della scheda è stato rinominato in backgroundColor (I01fc1, b/161809546)
  • Ora lo snackbar ha colori di sfondo e dei contenuti personalizzabili (I238f2, b/161804381)
  • Sono stati aggiunti parametri di personalizzazione di modifier, backgroundColor, contentColor e scrimColor ai riquadri estraibili (I23655, b/161804378)
  • Il composable state { ... } è ora ritirato a favore di chiamate esplicite a remember { mutableStateOf(...) } per maggiore chiarezza. In questo modo si riduce la superficie complessiva dell'API e il numero di concetti per la gestione dello stato e si adatta al pattern by mutableStateOf() per la delega delle proprietà della classe. (Ia5727)
  • Il parametro di spaziatura interna del pulsante è stato rinominato in contentPadding (Id252e, b/161809394)
  • Aggiungi un componente sperimentale del materiale SwipeToDismiss. (I129e5)

Correzioni di bug

  • Rimossi onChildPositioned e OnChildPositionedModifier. Gli sviluppatori devono utilizzare onPositioned e OnPositionedModifier nel layout secondario. (I4522e, b/162109766)
  • Aggiunta della lambda mergePolicy a SemanticsPropertyKey. Può essere utilizzato per definire un criterio personalizzato per la semantica di mergeAllDescendants unione. Il criterio predefinito prevede l'utilizzo del valore principale se già presente, altrimenti del valore secondario. (Iaf6c4, b/161979921)
  • IntSize è ora una classe inline (I2bf42)
  • PlacementScope.placeAbsolute() è stato rinominato in PlacementScope.place() e il precedente PlacementScope.place() è stato rinominato in PlacementScope.placeRelative(). Di conseguenza, il metodo PlacementScope.place() non rifletterà più automaticamente la posizione nei contesti da destra a sinistra. Se vuoi, utilizza PlacementScope.placeRelative(). (I873ac, b/162916675)
  • PxBounds è stato ritirato a favore di Rect. Sono stati aggiornati tutti gli utilizzi di PxBounds con rect e sono state aggiunte annotazioni di deprecazione/sostituzione appropriate per facilitare la migrazione. (I37038, b/162627058)
  • RRect è stato rinominato 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 sono rilasciati. La versione 0.1.0-dev16 contiene questi commit.

Modifiche alle API

  • Colori 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 tuoi componenti, in modo simile al funzionamento interno di MaterialTheme. (Ibae84)
  • È stato rinominato ColorPalette in Colors per mappare meglio il sistema di colori Material e rimuovere la confusione sul fatto che ColorPalette sia un oggetto di temi "generico", anziché un'implementazione specifica del sistema di colori Material. Inoltre, rinomina lightColorPalette e darkColorPalette rispettivamente in lightColors e darkColors. (I9e976, b/161812111)
  • Rinomina il parametro text di BottomNavigationItem in label, onSelected in onSelect, activeColor in selectedContentColor, inactiveColor in unselectedContentColor 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 ereditare da questa classe. [Modal/Bottom]DrawerLayout non accetta più un parametro onStateChange. (I72332, b/148023068)
  • Il pacchetto foundation.shape.corner è stato compresso in foundation.share (I46491, b/161887429)
  • È stata aggiunta l'annotazione ExperimentalMaterialApi. RippleTheme contrassegnato come sperimentale (Ic5fa0, b/161784800)
  • Material FilledTextField è stato rinominato TextField e TextField di base è stato rinominato BaseTextField per rendere l'API più semplice da scoprire e utilizzare (Ia6242, b/155482676)

Correzioni di bug

  • OnChildPositioned è stato ritirato. Utilizza OnPositioned sul figlio. (I87f95, b/162109766)
  • Correzioni generali dell'API Address (I077bc)
    1. Rimuovi l'interfaccia OffsetBase inutilizzata
    2. Allinea le classi Offset e IntOffset in modo da avere una superficie API coerente
    3. Rinomina IntOffset.Origin in IntOffset.Zero per coerenza con l'API Offset
    4. Il metodo nativeCanvas è stato spostato dall'interfaccia Canvas per consentire ai consumatori di creare le proprie istanze Canvas
    5. È 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 nullabilità del campo
    6. Rinominate le enumerazioni ClipOp in Pascal Case
    7. Rinominate le enumerazioni FilterQuality in Pascal Case
    8. Rinominate le enumerazioni StrokeJoin in Pascal Case
    9. Rinominate le enumerazioni PointMode in Pascal Case
    10. Rinominate le enumerazioni PaintingStyle in Pascal Case
    11. Rinomina le enumerazioni PathFillType in Pascal Case
    12. Rinomina gli enum StrokeCap in Pascal Case
    13. Implementazione di DrawCache aggiornata per non utilizzare più i parametri lateinit
    14. Aggiornamento di DrawScope per non utilizzare più la delega pigra per i parametri interni fillPaint e strokePaint
    15. Aggiornamento del composable Image per evitare l'utilizzo di Box per un overhead inferiore
    16. Aggiornamento della classe Outline per includere annotazioni @Immutable
    17. Aggiornamento di PathNode per includere annotazioni @Immutable per ogni istruzione del percorso
    18. Aggiornamento della composizione secondaria Vector per rimuovere i controlli condizionali ridondanti per l'uguaglianza, poiché la composizione li gestisce già
    19. Metodi costruttori del componente complementare rettangolare ritirati a favore dei costruttori di funzioni
    20. Classi Brush e costruttori di funzioni aggiornati con le API @Immutable e @Stable
    21. Aggiornamento dell'enumerazione VertexMode in PascalCase
    22. Aggiornamento del metodo selectPaint di DrawScope per sovrascrivere in modo condizionale i parametri del tratto sulla pittura se sono cambiati
    23. Aggiornamento di Size per aggiungere l'API di destrutturazione, rinominare UnspecifiedSize in Unspecified e rimuovere i metodi inutilizzati
  • Sposta la finestra di dialogo nell'interfaccia utente (I47fa6)
  • SemanticsNodeInteraction.performPartialGesture rimosso. Utilizza SemanticsNodeInteraction.performGesture. (Id9b62)
  • SemanticsNodeInteraction.getBoundsInRoot() rinominato in SemanticsNodeInteraction.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 ultime icone aggiunte a Material.io/icons (I4b1d3)
  • Richiedi che il tipo T sia specificato in modo esplicito per transitionDefinition. (I1aded)
  • Modifier.plus è stato ritirato, utilizza invece Modifier.then. "Poi" ha un segnale di ordinamento più forte e impedisce anche di digitare Modifier.padding().background() + anotherModifier, che interrompe la catena e rende più difficile la lettura (Iedd58, b/161529964)
  • È stato rinominato AndroidComposeTestRule in createAndroidComposeRule. (I70aaf)
  • Aggiungi SemanticsMatcher isFocused() e isNotFocused(). (I0b760)
  • È stato rimosso BaseGestureScope.globalBounds, che non deve essere utilizzato nei test. Utilizza invece le coordinate locali del nodo con cui stai interagendo. (Ie9b08)
  • Posizione fissa del popup 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 sono 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 nella sezione Dichiarazione delle dipendenze.

Modifiche alle API

  • L'annotazione @Model è ora deprecata. Utilizza state e mutableStateOf come alternative. Questa decisione di ritiro è stata presa dopo un'attenta discussione.

    Giustificazione

    La motivazione include, a titolo esemplificativo:

    • Riduce l'area di superficie e i concetti delle API che dobbiamo insegnare
    • Più in linea con altri toolkit comparabili (Swift UI, React, Flutter)
    • Decisione reversibile. Possiamo sempre ripristinare @Model in un secondo momento.
    • Rimuove l'utilizzo di casi limite e le domande difficili a cui rispondere sulla configurazione di @Model come elementi da gestire.
    • @Model classi di dati, equals, hashcode e così via.
    • Come faccio a impostare alcune proprietà come "osservate" e altre no?
    • Come faccio a specificare l'uguaglianza strutturale e referenziale da utilizzare nell'osservazione?
    • Riduce la "magia" nel sistema. Riduce la probabilità che qualcuno presuma che il sistema sia più intelligente di quanto non sia (ad esempio, che sappia come differenziare un elenco)
    • Rende più intuitiva la granularità dell'osservazione.
    • Migliora la refactorability da variabile a proprietà nella classe
    • Potenzialmente apre le possibilità di eseguire ottimizzazioni specifiche per stato realizzate a mano
    • Si allinea maggiormente al resto dell'ecosistema e riduce l'ambiguità nei confronti dello stato immutabile o del nostro "stato mutabile".

    Note sulla migrazione

    Quasi tutti gli utilizzi esistenti di @Model vengono trasformati in modo abbastanza semplice in uno dei due modi. L'esempio riportato di seguito include una classe @Model con due proprietà solo a scopo esemplificativo e viene utilizzata in un elemento componibile.

    @Model class Position(
     var x: Int,
     var y: Int
    )
    
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    Alternativa 1: utilizza State<OriginalClass> e crea copie.

    Questo approccio è semplificato dalle classi di dati di Kotlin. In sostanza, trasforma tutte le proprietà var precedenti in proprietà val di una classe di dati, quindi utilizza state anziché remember e assegna il valore di stato alle copie clonate dell'originale utilizzando il metodo pratico 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 modifica internamente al di fuori dell'ambito di utilizzo e ti affidi all'osservazione di questa modifica, l'approccio successivo è quello che devi 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: utilizzare mutableStateOf e i delegati di proprietà

    Questo approccio è semplificato dai delegati di proprietà di Kotlin e dall'API mutableStateOf, che consente di creare istanze MutableState al di fuori della composizione. In sostanza, sostituisci tutte le proprietà var della classe originale con le proprietà var con mutableStateOf come delegato della proprietà. Il vantaggio è che l'utilizzo della classe non cambierà, ma solo la sua implementazione interna. Il comportamento non è completamente identico all'esempio originale, in quanto ogni proprietà viene ora osservata/sottoscritta individualmente, quindi le ricomposizioni che vedi dopo questo refactoring potrebbero essere più ristrette (il che è 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)

  • Callback onFocusChange nei campi di testo rinominato in onFocusChanged (Ida4a1)

  • Aggiunto il parametro thresholds in stateDraggable per specificare le soglie tra gli ancoraggi. È stato utilizzato per impostare una soglia di 56 dp nel riquadro inferiore. Inoltre, BottomDrawerLayout ora utilizza un'enumerazione BottomDrawerState separata. (I533fa)

  • Rimuove Modifier.ripple precedentemente ritirato. Ora Clickable utilizza l'effetto increspatura come indicatore predefinito (se hai impostato MaterialTheme {} nella tua applicazione), quindi nella maggior parte dei casi puoi semplicemente utilizzare Clickable e ottenere l'effetto increspatura senza costi. Se devi personalizzare il parametro colore / dimensione / delimitato per l'increspatura, puoi creare manualmente un RippleIndication e passarlo a clickable come parametro di indicazione. (I663b2, b/155375067)

  • Rimozione dell'override deprecato del componente FilledTextField (I7f8f8)

  • Rinomina l'oggetto Button (contenente i valori predefiniti utilizzati dalla funzione Button) in ButtonConstants (I7c5f7, b/159687878)

  • Lo spazio per i contenuti del pulsante ora si comporta come una riga (utile quando devi inserire un'icona con un testo, vedi esempi su come scrivere il pulsante) (I0ff10, b/158677863)

  • RadioGroup e RadioGroupItem sono stati ritirati. Utilizza Box con Modifier.selectable, Row e Column per creare il set corretto di scelte di pulsanti di opzione in base al tuo design (I7f5cf, b/149528535).

  • Aggiunto il campo di testo con contorno Material (I1a518)

  • androidx.ui.foundation.TextFieldValue e androidx.ui.input.EditorValue sono deprecati. TextField, FilledTextField e CoreTextField che utilizzano questo tipo sono anch'essi deprecati. Utilizza androidx.ui.input.TextFieldValue (I4066d, b/155211005)

  • TabRow.TabPosition non contiene la posizione in Dp, non in IntPx (I34a07, b/158577776)

  • Sostituito l'utilizzo di IntPx con Int. Sostituito IntPxPosition con IntOffset. IntPxSize è stato 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. In questo modo si ottengono i vantaggi di una classe inline per sfruttare un valore long per comprimere due valori float per rappresentare larghezza e altezza rappresentate come valori float. (Ic0191)

  • Depreca Modifier.ripple. Ora Clickable utilizza l'effetto increspatura come indicatore predefinito (se hai impostato MaterialTheme {} nella tua applicazione), quindi nella maggior parte dei casi puoi semplicemente utilizzare Clickable e ottenere l'effetto increspatura senza costi. Se devi personalizzare il parametro colore / dimensione / delimitato per l'increspatura, puoi creare manualmente un RippleIndication e passarlo a clickable come parametro di indicazione. (I101cd, b/155375067)

  • L'API Scaffold è stata rielaborata: alcuni parametri hanno cambiato nome e sono stati aggiunti nuovi parametri per una migliore personalizzazione. Aggiunto getter per eseguire query sulle dimensioni 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 la pressione, il trascinamento o altre indicazioni sugli elementi interattivi personalizzati (I8425f, b/155287131).

  • Implementazioni consolidate di CanvasScope Ora sono disponibili solo DrawScope e ContentDrawScope CanvasScope è stato rinominato DrawScope. DrawScope è stato aggiornato per implementare l'interfaccia Density e fornire LayoutDirection La sottoclasse DrawScope è stata eliminata in ContentDrawScope Painter e PainterModifier sono stati aggiornati per non mantenere più una proprietà RTL in quanto DrawScope la fornisce già senza doverla fornire manualmente (I1798e)

  • Rinomina Emphasis.emphasize() in Emphasis.applyEmphasis() (Iceebe)

  • I pulsanti disattivati ora seguono 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 le dimensioni del tratto. Per modificare le dimensioni del tratto (altezza) di un LinearProgressIndicator, puoi utilizzare Modifier.preferredHeight() o un altro modificatore di dimensioni. (Icea16, b/154919081)

  • Aggiunge il parametro strokeWidth a CircularProgressIndicator per personalizzare le dimensioni del tratto. Per modificare le dimensioni del tratto (altezza) di un LinearProgressIndicator, puoi utilizzare Modifier.preferredHeight() o un altro modificatore di dimensioni. (Icea16, b/154919081)

  • Aggiunta dell'API slot per le icone iniziali e finali in FilledTextField e gestione dello stato di errore (Ic12e0)

  • Il colore predefinito dei FAB e dei FAB estesi è stato modificato in MaterialTheme.colors.secondary. (I3b9b9, b/154118816)

  • Sono stati sostituiti tutti gli utilizzi di Color che accettano valori null nell'API con valori non nulli e viene utilizzato Color.Unset al posto di null (Iabaa7)

  • EdgeInsets è stato rinominato in InnerPadding. È stato rinominato il parametro innerPadding dei pulsanti Material in padding. (I66165)

  • Il cursore è ora stateless. Gli utenti dovranno superare e aggiornare lo stato autonomamente, proprio come in qualsiasi altro controllo. (Ia00aa)

  • StaticDrawer è stato rimosso. Se necessario, utilizza Box con larghezza specificata per i materiali (I244a7).

  • È stata aggiunta l'implementazione di Material Design del campo di testo compilato (Ic75cd)

  • Aggiunto il parametro modificatore a ListItem e 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 da utilizzare per tutti gli stili di testo forniti che non hanno una famiglia impostata. (I89d07)

  • Rimozione temporanea delle tabelle di dati sui materiali dalla superficie API. (Iaea61)

  • Parametri rinominati nel componente componibile Divider (Ic4373)

  • bambini (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 alla specifica di Material Design. Ora puoi fornire forme piccole, medie e grandi da utilizzare nella maggior parte dei componenti (Ifb4d1).

  • Le API MaterialTheme, come MaterialTheme.colors() e MaterialTheme.typography(), sono state modificate in modo che siano proprietà anziché funzioni. Rimuovi le parentesi dalle chiamate esistenti, non è previsto alcun cambiamento nel comportamento. (I3565a)

  • È stato eseguito il refactoring delle API FloatingActionButton per accettare le espressioni lambda componibili anziché i primitivi. Consulta gli esempi aggiornati per le informazioni sull'utilizzo. (I00622)

  • aggiungi il parametro enabled a Casella di controllo, Interruttore e Attivabile/disattivabile (I41c16)

  • Ripple è ora un modificatore. Sebbene Clickable non sia ancora stato convertito, l'utilizzo consigliato è Clickable(onClick = { ... }, modifier = ripple()) (Ie5200, b/151331852, b/150060763)

  • Surface e Card sono stati spostati da androidx.ui.material.surface ad androidx.ui.material (I88a6d, b/150863888)

  • Button, FloatingActionButton e Clickable ora hanno un parametro enabled separato. Alcuni parametri del pulsante sono stati rinominati o riordinati. (I54b5a)

  • È stato rinominato Image in ImageAsset per distinguere meglio la differenza tra i dati Image e il composable Image in arrivo utilizzato per partecipare al layout e disegnare i contenuti. _Body:Metodo di estensione creato su android.graphics.Bitmap, Bitmap.asImageAsset(), per creare un'istanza di ImageAsset utile per combinare lo sviluppo di applicazioni Android tradizionali con il framework Compose (Id5bbd)

  • È stata rimossa l'API Snackbar con parametri stringa a favore dell'utilizzo dell'overload che accetta le espressioni lambda componibili. Visualizza esempi aggiornati per le informazioni sull'utilizzo (I55f80)

  • È stato eseguito il refactoring delle API Tab per accettare le espressioni lambda text e icon (Ia057e).

  • È stato aggiunto il componente BottomNavigation. Consulta la documentazione e gli esempi per informazioni sull'utilizzo (I731a0).

  • Sono stati aggiunti Icon, IconButton e IconToggleButton, mentre AppBarIcon è stato rimosso. Puoi sostituire direttamente gli utilizzi esistenti di AppBarIcon con IconButton, e ora avranno il touch target corretto. Consulta gli esempi per informazioni sull'utilizzo e le icone per le icone Material fornite che puoi utilizzare direttamente con questi componenti. (I96849)

  • Sostituito ButtonStyle con funzioni distinte e rimosso l'overload di testo (stringa). Consulta gli esempi aggiornati per le informazioni sull'utilizzo. (If63ab, b/146478620, b/146482131)

  • rinomina il modificatore Border in DrawBorder (I8ffcc)

  • LayoutCoordinates non ha più una proprietà position. La proprietà position non ha senso se si considerano LayoutModifiers, rotazione o scalabilità. Gli sviluppatori devono invece utilizzare parentCoordinates e childToLocal() per calcolare la trasformazione da una LayoutCoordinate a un'altra.

    LayoutCoordinates utilizza IntPxSize per la proprietà size anziché PxSize. I layout utilizzano dimensioni in pixel interi, quindi tutte le dimensioni del layout devono utilizzare numeri interi e non valori in virgola mobile. (I9367b)

  • Modifiche che causano interruzioni all'API ambients. Per maggiori dettagli, consulta la documentazione relativa ai log e a Ambient<T> (I4c7ee, b/143769776)

  • È stato aggiunto il componente Materiale per ponteggi. Implementi per ponteggi (I7731b)

  • Sostituito DrawBorder con Border Modifier (Id335a)

Correzioni di bug

  • FocusModifier è obsoleto a favore di Modifier.focus, Modifier.focusRequester e Modifier.focusObserver. FocusState e FocusDetailedState sono ritirati a favore di FocusState2 (I46919, b/160822875, b/160922136)
  • VerticalScroller e HoriziontalScroller sono stati ritirati. Utilizza ScrollableColumn e ScrollableRow per un'esperienza integrata con il comportamento e i parametri di Column/Row 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 rielaborate. DragDirection è stato rimosso a favore di Orientation. Lo stato richiesto per lo scorrimento è stato semplificato. ScrollableState è stato rinominato in ScrollableController (Iab63c, b/149460415)
  • runOnIdleCompose rinominato in runOnIdle (I83607)
  • Le proprietà semantiche 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 per restituire un TransitionState anziché passarlo ai publisher secondari. In questo modo, l'API è più coerente con le API animate(). (I24e38)
  • È stata aggiunta una classe di unità IntBounds, che rappresenta i limiti dei pixel interi dal layout. L'API di PopupPositionProvider è stata aggiornata per utilizzarla. (I0d8d0, b/159596546)
  • È stato aggiunto un nuovo flag facoltativo useUnmergedTree ai test finder. (I2ce48)
  • Sono state rimosse le API di test delle dimensioni obsolete. (Iba0a0)
  • Rimossa la classe inline Shader che conteneva la classe prevista NativeShader NativeShader è stata rinominata Shader. La classe inline Shader wrapper non ha aggiunto nulla di utile alla superficie dell'API ed era una classe inline, quindi utilizza direttamente la classe NativeShader. (I25e4d)
  • Popup, finestre di dialogo e menu ora ereditano il tema Material contestuale (Ia3665, b/156527485)
  • I menu a discesa Material sono ora scorrevoli. (Ide699)
  • Rimosso il parametro di direzione del layout dal blocco di misura della funzione Layout(). Tuttavia, la direzione del layout è 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 e spring. ma accettano direttamente i parametri del costruttore. - Migliorare la facilità d'uso complessiva di AnimationSpec aprendo i costruttori anziché affidarsi ai builder - Modificare la durata e il ritardo per KeyFrames e Tween in Int. In questo modo si eliminano i cast di tipo e l'overload dei metodi non necessari (per supportare sia Long che Int). (Ica0b4)
  • L'opzione di cambio ora viene visualizzata in stato disattivato quando enabled è impostato su false (If4624, b/155941869, b/159331694)
  • Modifier.tag è stato rinominato 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 linea di allineamento richiesta non è presente, verrà restituito AlignmentLine.Unspecified. (I896c5, b/158134875)
  • È stato eseguito il refactoring della classe Radius per renderla una classe inline. Sono stati rimossi i metodi di creazione del componente aggiuntivo a favore del costruttore di funzioni con il parametro predefinito per fare in modo che il raggio lungo l'asse y corrisponda a quello del parametro del raggio dell'asse x obbligatorio.

    Aggiornamento di DrawScope.drawRoundRect per utilizzare un singolo parametro Radius anziché due valori float separati per il raggio lungo gli assi x e y (I46d1b)

  • Per consolidare il numero di classi utilizzate per rappresentare le informazioni sul posizionamento, standardizza l'utilizzo della classe Offset anziché PxPosition. In questo modo, puoi sfruttare i vantaggi di una classe inline per utilizzare un valore long per comprimere due 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 refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel. Eliminazione dell'intera classe Px (I3ff33)

  • Il componente attivabile/disattivabile è stato ritirato. Utilizza Modifier.toggleable (I35220, b/157642842)

  • Sostituito l'utilizzo della classe Px in varie classi Compose nell'ambito del grande refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel (I086f4)

  • Sostituito l'utilizzo della classe Px in varie classi Compose nell'ambito del grande refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel (Id3434)

  • Sostituito l'utilizzo della classe Px in varie classi Compose nell'ambito del grande refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel (I97a5a)

  • È stato corretto il problema per cui onClick non veniva richiamato per DropdonMenuItems. (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)

  • Sostituito l'utilizzo della classe Px in varie classi Compose nell'ambito del grande refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel (I19d02)

  • VerticalScroller ora fornisce Column out of the box. HorizontalScroller ora fornisce Row out of the box. (Ieca5d, b/157020670)

  • È stato sostituito l'utilizzo della classe Px in varie classi Compose nell'ambito del grande refactoring per fare affidamento solo su Dp e sui tipi primitivi per i parametri dei pixel (Iede0b).

  • Modifier.semantics è stato ripristinato 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 ed è ora non nullabile; clipToOutline è stato rinominato in clip; clipToBounds è stato rimosso perché è uguale a clip == true con RectangleShape (I7ef11, b/155075735)

  • API Compose di livello superiore aggiornate che espongono una tela per esporre invece CanvasScope. In questo modo i consumatori non devono più gestire i propri oggetti Paint. Per 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 sottostante. (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 destinatario che, oltre a vincoli 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 di dimensione sul layout di wrapping solo quando i vincoli corrispondenti in entrata non sono specificati (0 per i vincoli minimi e infinito per i vincoli massimi). (I311ea, b/150460257)

  • FocusManagerAmbient è stato rimosso. Utilizza FocusModifier.requestFocus per ottenere lo stato attivo. (Ic4826)

  • È stata creata l'API CanvasScope che racchiude un oggetto Canvas per esporre una superficie API di disegno dichiarativa e senza stato. Le trasformazioni sono contenute nel proprio ambito del destinatario e le informazioni sulle dimensioni sono anche limitate ai limiti dell'inserto corrispondente. Non richiede a un consumatore di mantenere il proprio oggetto stato Paint per configurare le operazioni di disegno.

    È stato aggiunto CanvasScopeSample ed è stata aggiornata l'app demo per includere una demo di grafica dichiarativa (Ifd86d).

  • Aggiungi la personalizzazione del colore del cursore al campo di testo (I6e33f)

  • TextFieldValue utilizzato con TextField ora può sopravvivere alla ricreazione dell'attività se utilizzato in questo modo: var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() } (I5c3ce, b/155075724)

  • LayoutModifier2 è stato rinominato LayoutModifier. (Id29f3)

  • Rimossa l'interfaccia LayoutModifier deprecata. (I2a9d6)

  • 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 di DrawLayerModifier è stata rinominata shadowElevation e non controlla più l'ordine di disegno. L'ordine dei parametri di DrawShadow è cambiato: l'elevazione è ora il primo e la forma è il secondo con un RectangleShape predefinito. (I20150, b/152417501)

  • RectangleShape è stato spostato da androidx.ui.foundation.shape.* a androidx.ui.graphics.* (Ia74d5, b/154507984)

  • Aggiornamento dell'API TextField: unione dei callback onFocus e onBlur in un unico callback onFocusChange(Boolean) con parametro (I66cd3)

  • Sono stati aggiunti i parametri verticalGravity e horizontalGravity rispettivamente a Riga e Colonna. (I7dc5a)

  • Sono stati aggiornati wrapContentWidth e wrapContentHeight in modo che prevedano l'allineamento verticale o orizzontale anziché un allineamento qualsiasi. Il modificatore di gravità è stato aggiornato per accettare l'allineamento verticale o orizzontale. Riga, Colonna e Stack sono stati aggiornati per supportare gli allineamenti continui personalizzati. (Ib0728)

  • È stata creata l'API PixelMap per supportare l'interrogazione delle informazioni sui pixel da un ImageAsset. (I69ad6)

  • Rimuove ProvideContentColor, utilizza invece ContentColorAmbient direttamente con Providers (Iee942)

  • Il modulo ui-text-compose è stato rinominato in ui-text. ui-text ora contiene i composable CoreText e CoreTextField (Ib7d47)

  • Il modulo ui-text viene rinominato ui-text-core (I57dec)

  • Sono stati spostati i composable ui-framework/CoreText e CoreTextField in ui-text-compose. Ti consigliamo di includere ui-text-compose nel tuo progetto. (I32042)

  • Migliora l'API DrawModifier:

    • È stato creato l'ambito del ricevitore per draw() ContentDrawScope
    • Rimossi tutti i parametri in draw()
    • DrawScope ha la stessa interfaccia di CanvasScope
    • ContentDrawScope ha il metodo drawContent() (Ibaced, b/152919067)
  • runOnIdleCompose e runOnUiThread sono ora funzioni globali anziché metodi di ComposeTestRule. (Icbe8f)

  • Gli operatori delegati della proprietà [Mutable]State sono stati spostati nelle estensioni per supportare le ottimizzazioni dei delegati della proprietà di Kotlin 1.4. I chiamanti devono aggiungere le importazioni per continuare a utilizzare by state { ... } o by mutableStateOf(...). (I5312c)

  • Aggiunta di positionInParent e boundsInParent per LayoutCoordinates. (Icacdd, b/152735784)

  • ColoredRect è stato ritirato. Utilizza Box(Modifier.preferredSize(width, height).drawBackground(color)). (I499fa, b/152753731)

  • LayoutResult è stato rinominato in MeasureResult. (Id8c68)

  • Aggiunta di LayoutModifier2, una nuova API per la definizione dei modificatori di layout; deprecazione di LayoutModifier (If32ac)

  • Sostituito l'operatore Modifier plus con le funzioni di estensione della fabbrica (I225e4)

  • Draggable è stato spostato 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 i figli del layout per riconoscerli all'interno del blocco di misurazione. (I51368, b/150953183)

  • Composable Center deprecato. Deve essere sostituito con il modificatore LayoutSize.Fill + LayoutAlign.Center oppure con uno dei composable Box o Stack a cui sono stati applicati modificatori adatti (Idf5e0).

  • È stata aggiunta l'API VectorPainter per sostituire l'API di composizione secondaria esistente per la grafica vettoriale. Il risultato della composizione secondaria è un oggetto VectorPainter anziché un DrawModifier. Sono stati ritirati i composable DrawVector precedenti a favore di VectorPainter.

    È stata rinominata l'API Image(Painter) in PaintBox(Painter). È stato creato un composable Vector che si comporta come il composable Image, ma con un VectorAsset anziché un ImageAsset (I9af9a, b/149030271)

  • LayoutFlexible è stato rinominato LayoutWeight. Il parametro stretto è stato rinominato in riempimento. (If4738)

  • Rimozione di RepaintBoundary a favore di DrawLayerModifier (I00aa4)

  • DrawVector è stata modificata da una normale funzione componibile per restituire un Modifier drawVector() che disegnerà il vettore come sfondo di un layout. (I7b8e0)

  • La funzione componibile Opacity è stata sostituita con il modificatore drawOpacity. (I5fb62)

  • Sostituisci la funzione componibile Clip con il modificatore drawClip(). DrawClipToBounds è un modificatore pratico da utilizzare quando devi ritagliare solo i limiti del livello con una forma rettangolare. (If28eb)

  • La funzione composable DrawShadow è stata sostituita con il modificatore drawShadow(). Ora le ombre vengono disegnate come parte di LayerModifier. (I0317a)

  • Aggiunta di LayerModifier, un modificatore che consente di aggiungere un RenderNode per un layout. Consente di impostare ritaglio, opacità, rotazione, scalabilità e ombre. Questo sostituirà 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 o setViewContent. Compose.disposeComposition è stato ritirato. Utilizza invece il metodo dispose su Composition restituito da setContent. 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)

  • Componente componibile Created Image per gestire il dimensionamento/layout, oltre a disegnare un determinato ImageAsset sullo schermo. Questo elemento componibile supporta anche il disegno di qualsiasi istanza di Painter rispettando le sue dimensioni intrinseche, nonché il supporto di una dimensione fissa o minima (Ibcc8f).

  • Composable Wrap deprecato. Può essere sostituito con il modificatore LayoutAlign o con il composable Stack (Ib237f).

  • WithConstraints ha ricevuto il parametro LayoutDirection (I6d6f7)

  • È stata propagata la direzione del layout dal nodo del layout principale ai nodi secondari. È stato aggiunto il modificatore della direzione del layout. (I3d955)

  • Il componente Stack supporta la direzionalità da destra a sinistra (Ic9e00)

  • Il composable DrawShape è stato rimosso. Utilizza invece il modificatore DrawBackground. (I7ceb2)

  • Supportare la direzione da destra a sinistra nel modificatore LayoutPadding (I9e8da)

  • È stato aggiunto AdapterList, un componente di elenco scorrevole che compone e dispone solo gli elementi visibili. I problemi noti al momento includono il fatto che è solo verticale e non gestisce completamente tutti i casi di modifiche ai relativi elementi secondari. (Ib351b)

  • È stato aggiornato il flag ComposeFlags.COMPOSER_PARAM in modo che sia true, il che modificherà la strategia di generazione del codice per il plug-in di composizione. A livello generale, questo fa sì che le funzioni @Composable vengano generate con un parametro sintetico aggiuntivo, che viene passato alle chiamate @Composable successive affinché il runtime gestisca correttamente l'esecuzione. Si tratta di una modifica binaria significativa, ma dovrebbe preservare la compatibilità a livello di codice sorgente in tutti gli utilizzi approvati di Compose. (I7971c)

  • È stato aggiunto il componente Canvas. Questo elemento componibile occupa una parte dello spazio (fornito dall'utente) e ti consente di disegnare utilizzando CanvasScope (I0d622).

  • Density e DensityScope sono stati uniti in un'unica interfaccia. Anziché ambientDensity(), ora puoi utilizzare DensityAmbient.current. Invece di withDensity(density), usa with(density) (I11cb1)

  • È stato modificato LayoutCoordinates per fare in modo che providedAlignmentLines sia un set anziché una mappa e che LayoutCoordinates implementi l'operatore get() per recuperare un valore. In questo modo, è più facile per i modificatori modificare uno o più valori del set senza creare una nuova raccolta per ogni modificatore. (I0245a)

  • Gli scorrimenti ora mostrano il comportamento di movimento di scorrimento nativo di Android. (I922af, b/147493715)

  • Miglioramenti alla superficie API dei vincoli (I0fd15)