Componi materiale

Crea UI di Jetpack Compose con componenti Material Design pronti per l'uso. Si tratta del punto di accesso di livello superiore di Compose, progettato per fornire componenti corrispondenti a quelli descritti su www.material.io.
Aggiornamento più recente Release stabile Candidato per la release Versione beta Release alpha
17 aprile 2024 1.6.6 - - 1.7.0-alpha07

Struttura

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

Questa tabella illustra i gruppi e fornisce i link a ciascun insieme di note di rilascio.

RaggruppaDescrizione
compose.animationCreare animazioni nelle applicazioni Jetpack Compose per arricchire l'esperienza utente.
compose.compilerTrasforma le funzioni @Composable e abilita le ottimizzazioni con un plug-in di compilazione Kotlin.
compose.foundationScrivi applicazioni Jetpack Compose con componenti di base pronti all'uso ed estendi le basi per creare i componenti del tuo sistema di progettazione.
compose.materialCrea UI di Jetpack Compose con componenti Material Design pronti per l'uso. Si tratta del punto di accesso di livello superiore di Compose, progettato per fornire componenti corrispondenti a quelli descritti su www.material.io.
compose.material3Crea UI di Jetpack Compose con i componenti di Material Design 3, la prossima evoluzione di Material Design. Material 3 include temi e componenti aggiornati e funzionalità di personalizzazione di Material You, come il colore dinamico, ed è progettato per essere coerente con il nuovo stile visivo e la UI di sistema di Android 12.
compose.runtimeComponenti di base fondamentali del modello di programmazione e della gestione dello stato di Compose, nonché del runtime di base per il plug-in di Compose Compiler da utilizzare come target.
compose.uiComponenti fondamentali dell'interfaccia utente di composizione necessari per interagire con il dispositivo, inclusi layout, disegno e input.

Dichiarazione delle dipendenze

Per aggiungere una dipendenza su Compose, devi aggiungere il Repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il Repository Maven di Google.

Aggiungi le dipendenze per gli artefatti necessari nel file build.gradle per l'app o il modulo:

trendy

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.12"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.12"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Per ulteriori informazioni sulle dipendenze, vedi Aggiungere dipendenze build.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se rilevi nuovi problemi o hai idee per migliorare la libreria. Dai un'occhiata ai problemi esistenti in questa libreria prima di crearne una nuova. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.

Crea un nuovo problema

Per ulteriori informazioni, consulta la documentazione di Issue Tracker.

Versione 1.7

Versione 1.7.0-alpha07

17 aprile 2024

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

Modifiche alle API

  • Per i link di testo è stata selezionata l'opzione di stile per lo stato premuto, oltre allo stile normale, sono stati passati il mouse sopra i contenuti e ora è attivo. (I5f864, b/139312671).
  • È stato aggiunto un oggetto TextDefaults che contiene metodi per creare una stringa LinkAnnotation e analizzare la 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 rilasciato. La versione 1.7.0-alpha06 contiene questi commit.

Annuncio

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

Modifiche alle API

  • Altri valori ModalDrawer e BottomDrawer spostati per impostazione predefinita nell'oggetto DrawerDefaults. (Ib5b2e).

Versione 1.7.0-alpha05

20 marzo 2024

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

Modifiche 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 rilasciato. 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 rilasciato. La versione 1.7.0-alpha03 contiene questi commit.

Modifiche alle API

  • BottomDrawer è stato promosso da sperimentale a stabile. BottomDrawerState ora mostra l'avanzamento come funzione, consentendo di eseguire query sull'avanzamento tra target specifici. BottomDrawerState ora consente di personalizzare le specifiche dell'animazione e confirmStateChange non è più una funzione 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 lambda finali. BackdropScaffoldState espone un'API progress(from, to) per eseguire query sull'avanzamento tra gli ancoraggi. (I73f48, b/261423218)
  • I fogli inferiori standard sono stati trasferiti dalla fase sperimentale a quella stabile. I costruttori deprecati sono stati rimossi. La specifica dell'animazione è ora conforme alle linee guida per i preadolescenti. (I3c1a8, b/278692145, b/261409034).
  • I fogli inferiori modali sono stati trasferiti 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 il problema per cui BackdropScaffold potrebbe arrestarsi in modo anomalo in scenari specifici in combinazione con LookaheadScope. (I51396)
  • Rimossa la sottocomposizione all'interno di BottomSheetScaffold per migliorare le prestazioni. Risolto il problema per cui BottomSheetScaffold si arrestava in modo anomalo in scenari specifici in combinazione con LookaheadScope. (I2f90c).
  • Rimossa la sottocomposizione all'interno di ModalBottomSheetLayout, in modo da migliorare le prestazioni. (I7a025).

Versione 1.7.0-alpha02

7 febbraio 2024

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

Versione 1.7.0-alpha01

24 gennaio 2024

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

Modifiche del comportamento

  • È stata eseguita la migrazione dei componenti del materiale per utilizzare le nuove API Ripple, in modo da non eseguire più query su RippleTheme.

Modifiche alle API

  • rememberRipple e RippleTheme sono stati deprecati da material-ripple, con nuove API Ripple e RippleConfiguration aggiunte al materiale e ad altre librerie di sistemi di progettazione.

  • I componenti Material che in precedenza accettavano un MutableInteractionSource e per impostazione predefinita ricordavano { MutableInteractionSource() } ora accettano un MutableInteractionSource con valore null e invece il valore predefinito è null. Se non stai sollevando e utilizzando MutableInteractionSource, dovresti passare null. Ciò consente ad alcuni componenti di creare lentamente un'istanza solo quando necessario, migliorando le prestazioni. Ti consigliamo inoltre di apportare modifiche simili ai tuoi componenti.

Versione 1.6

Versione 1.6.6

17 aprile 2024

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

Versione 1.6.5

3 aprile 2024

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

Versione 1.6.4

20 marzo 2024

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

Versione 1.6.3

6 marzo 2024

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

Correzioni di bug

  • Correggi la regressione in ExposedDropdownMenu per renderla di nuovo attivabile. (c0e0ed, b/323694447).

Versione 1.6.2

21 febbraio 2024

androidx.compose.material:material-*:1.6.2 viene rilasciato. La versione 1.6.2 contiene questi commit.

Versione 1.6.1

7 febbraio 2024

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

Versione 1.6.0

24 gennaio 2024

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

Versione 1.6.0-rc01

10 gennaio 2024

androidx.compose.material:material-*:1.6.0-rc01 viene rilasciato. La versione 1.6.0-rc01 contiene questi commit.

Versione 1.6.0-beta03

13 dicembre 2023

androidx.compose.material:material-*:1.6.0-beta03 viene rilasciato. La versione 1.6.0-beta03 contiene questi commit.

Versione 1.6.0-beta02

29 novembre 2023

androidx.compose.material:material-*:1.6.0-beta02 viene rilasciato. La versione 1.6.0-beta02 contiene questi commit.

Versione 1.6.0-beta01

15 novembre 2023

androidx.compose.material:material-*:1.6.0-beta01 viene rilasciato. La versione 1.6.0-beta01 contiene questi commit.

Versione 1.6.0-alpha08

18 ottobre 2023

androidx.compose.material:material-*:1.6.0-alpha08 viene rilasciato. La versione 1.6.0-alpha08 contiene questi commit.

Modifiche alle API

  • Ritirare una funzione materialIcon a favore del suo sovraccarico che richiede un parametro autoMirror. (Ia338d)

Correzioni di bug - Aumenta automaticamente l'altezza dell'elemento di navigazione per contenuti di grandi dimensioni. (0c4ecc, b/272336962).

Versione 1.6.0-alpha07

4 ottobre 2023

androidx.compose.material:material-*:1.6.0-alpha07 viene rilasciato. La versione 1.6.0-alpha07 contiene questi commit.

  • Aggiornamenti delle dipendenze

Versione 1.6.0-alpha06

20 settembre 2023

androidx.compose.material:material-*:1.6.0-alpha06 viene rilasciato. La versione 1.6.0-alpha06 contiene questi commit.

Cambiamento che provoca un'interruzione del comportamento

  • Funzionalità relativa al riquadro a scomparsa rimossa da BottomSheetScaffold. Avvolgi BottomSheetScaffold in un cassetto componibile per ottenere la funzionalità precedente. Per un esempio, vedi BottomSheetScaffoldWithDrawerSample. (I1dcc8)

Modifiche alle API

  • È stato introdotto un flag temporaneo per controllare se Scaffold deve misurare i figli durante la misurazione o il posizionamento. Per impostazione predefinita, viene utilizzata la misurazione. Se stai riscontrando problemi con il nuovo comportamento, segnala un problema. (If6e3b).

Versione 1.6.0-alpha05

6 settembre 2023

androidx.compose.material:material-*:1.6.0-alpha05 viene rilasciato. La versione 1.6.0-alpha05 contiene questi commit.

Nuove funzionalità

  • Aggiunto il supporto per le icone con mirroring automatico quando visualizzate in layout da destra a sinistra. Le icone nei moduli material-icon-core e material-icon-extended ora forniscono set di icone aggiuntivi per il supporto del mirroring automatico quando l'icona lo consente. I nuovi set sono preceduti dal prefisso Icons.AutoMirrored.Filled... e così via e le icone di attesa vengono sottoposte a mirroring automatico nei layout RTL. Consulta l'elenco delle icone Material per consultare l'elenco delle icone che possono (e devono) essere sottoposte a mirroring automatico.

Modifiche alle API

  • Aggiunto il supporto per le icone con mirroring automatico quando visualizzate in layout da destra a sinistra. Le icone nei moduli material-icon-core e material-icon-extended ora forniscono set di icone aggiuntivi per il supporto del mirroring automatico quando l'icona lo consente. I nuovi set sono preceduti dal prefisso Icons.AutoMirrored.Filled... e così via e le icone di attesa vengono sottoposte a mirroring automatico nei layout RTL. Consulta l'elenco delle icone Material per consultare 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 fornisce un suggerimento di blocco sostitutivo per facilitare la migrazione. Se non disponi di una gestione speciale per le icone di mirroring su RTL, ti consigliamo di eseguire la migrazione al nuovo insieme di icone. Ad esempio, 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 rilasciato. La versione 1.6.0-alpha04 contiene questi commit.

Correzioni di bug

  • Risolto il problema per cui alcuni componenti che utilizzano Subcomposition (ad esempio BottomSheetScaffold) all'interno di un'impalcatura all'interno di un LookaheadScope cercavano di leggere le 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 verranno più invertiti quando il menu si trova nella parte inferiore dello schermo. (ICC74, b/294103942)
  • È stato ottimizzato il layout di BottomSheetScaffold all'interno e è stato risolto un potenziale problema di BottomSheetScaffold all'interno di un LookaheadLayout. (Ic0afa)

Versione 1.6.0-alpha03

9 agosto 2023

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

Modifiche alle API

  • I componenti Material2 ora hanno un'API separata per passare windowInsets al fine di supportare le funzionalità edge-to-edge in Android. A differenza dei componenti material3, per impostazione predefinita i componenti material2 non supportano gli insiemi di dati e il valore deve essere passato manualmente. Per indicazioni, consulta gli esempi corrispondenti. (I655e8).

Versione 1.6.0-alpha02

26 luglio 2023

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

Modifiche alle API

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

Versione 1.6.0-alpha01

21 giu 2023

androidx.compose.material:material-*:1.6.0-alpha01 viene rilasciato. La versione 1.6.0-alpha01 contiene questi commit.

Modifiche del comportamento

  • includeFontPadding ora è false per impostazione predefinita nella tipografia Materiale 2. Anche lo stile predefinito dell'altezza della riga è stato modificato in Trim.None e Alignment.Center e il campo lineHeight esplicito (in sp) è stato aggiunto ai TextStyle di Typography. Se vuoi personalizzare questi valori, consulta la documentazione relativa all'API e consulta il post del blog per una spiegazione approfondita di queste modifiche. (Icabc3, I3f801, I04c03)

Modifiche alle API

  • Le API Swipeable di Material sono state ritirate. Consulta le 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'ancoraggio corrente (stabilito) e l'ancoraggio più vicino nella direzione di scorrimento. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)

Versione 1.5

Versione 1.5.4

18 ottobre 2023

androidx.compose.material:material-*:1.5.4 viene rilasciato. La versione 1.5.4 contiene questi commit.

Versione 1.5.3

4 ottobre 2023

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

Versione 1.5.2

27 settembre 2023

androidx.compose.material:material-*:1.5.2 viene rilasciato. La versione 1.5.2 contiene questi commit.

Versione 1.5.1

6 settembre 2023

androidx.compose.material:material-*:1.5.1 viene rilasciato senza modifiche. La versione 1.5.1 contiene questi commit.

Versione 1.5.0

9 agosto 2023

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

Modifiche importanti dalla versione 1.4.0

Modifiche alle API

  • Modifiche incorporate nelle 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. Usa invece i criteri expand() e collapse(). direction e overflow sono stati rimossi. offset è stato sostituito con requireOffset(). I323b4
  • Contrassegna la funzione snapTo in Drawer come API non sperimentale. (Ib9c18, b/261425368).
  • Sono stati aggiunti un parametro per il colore delle tracce per gli indicatori di avanzamento circolari e un parametro del limite del tratto per gli indicatori di avanzamento circolari e lineari. (Ie668c, b/216325962, b/222964817).
  • ModalBottomSheetState, ModalBottomSheetState.Saver e confirmStateChange di rememberModalBottomSheetState sono stati rinominati in confirmValueChange. (Ib48d1).
  • Aggiungi Modifier.minimumInteractiveComponentSize. Può essere utilizzato per prenotare una dimensione di almeno 48.dp per chiarire le interazioni di tocco nel caso in cui l'elemento misurasse un valore più piccolo. (I33f58, b/258495559)
  • Modifiche incorporate nelle API a scorrimento in ModalBottomSheetLayout. La funzionalità animateTo di ModalBottomSheetState non accetta più un parametro animationSpec e l'offset esposto è ora nullo. Usa requireOffset per richiedere l'offset. (Ia2e79).
  • Aggiunta dell'annotazione @JvmDefaultWithCompatibility (I8f206)
  • Le modifiche incorporate nelle API a scorrimento in animateTo di ModalDrawer. DrawerState sono state sostituite dai metodi di apertura e chiusura e l'offset è ora nullo. Usa requireOffset per richiedere l'offset. (I3de9e).
  • I cassetti e i fogli sono stati aggiornati per ritardare correttamente la pressione nel caso in cui i gesti possano diventare eventi di scorrimento.
  • Aggiunto il parametro minLines nei testi material3 e material3, TextField e OutlinedTextField che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d)

Correzioni di bug

  • Risolvi un problema per cui pullRefresh non consumava velocità, causando la visualizzazione di overscroll. È stata anche modificata la firma dell'API del lambda onRelease in Modifier.pullRefresh per restituire un valore in virgola mobile per la velocità consumata (I7db65, b/266874741)
  • BottomSheetState, ModalBottomSheetState e BottomDrawerState ora espongono una proprietà di avanzamento che indica l'avanzamento tra l'ancoraggio corrente (stabilito) e l'ancoraggio più vicino nella direzione di scorrimento. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
  • È stato corretto l'azione di chiusura di AlertDialog che veniva visualizzata sotto l'azione di conferma quando le azioni erano sovrapposte per adattarsi alla larghezza della finestra di dialogo. Questa correzione allinea l'implementazione alla specifica di Material Design (I029de, b/235454277).
  • BottomSheetScaffold non parteciperà più allo scorrimento nidificato quando gesturesEnabled è impostato su false. (I634f3, b/215403277)
  • Risolto il bug per cui BottomSheetScaffold si arrestava in modo anomalo se veniva fornito un contenuto vuoto per gli slot. (Ib24a5, b/235588730).
  • Correzioni PullRefreshIndicator che intercettano clic/eventi di puntamento. (2494256, b/271777421)
  • Risolto il 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) all'interno e al contenuto del foglio ora funzionano senza problemi. (I2f981, b/266780234).

Versione 1.5.0-rc01

26 luglio 2023

androidx.compose.material:material-*:1.5.0-rc01 viene rilasciato. La versione 1.5.0-rc01 contiene questi commit.

Versione 1.5.0-beta03

28 giugno 2023

androidx.compose.material:material-*:1.5.0-beta03 viene rilasciato. La versione 1.5.0-beta03 contiene questi commit.

Correzioni di bug

  • BottomSheetState, ModalBottomSheetState e BottomDrawerState ora espongono una proprietà di avanzamento che indica l'avanzamento tra l'ancoraggio corrente (stabilito) e l'ancoraggio più vicino nella direzione di scorrimento. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)

Versione 1.5.0-beta02

7 giugno 2023

androidx.compose.material:material-*:1.5.0-beta02 viene rilasciato. La versione 1.5.0-beta02 contiene questi commit.

Versione 1.5.0-beta01

24 maggio 2023

androidx.compose.material:material-*:1.5.0-beta01 viene rilasciato. La versione 1.5.0-beta01 contiene questi commit.

Modifiche alle API

  • Gli offset di DrawerState e BottomDrawerState non sono più nulli. ma restituisce Float.NaN per indicare l'assenza dell'offset. (Ie9855)
  • È stata aggiunta un'opzione per passare in 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 attivare/disattivare il gesto di ModalBottomSheetLayout in modo che l'utente possa configurarlo per più schede in primo piano (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

  • È stato corretto l'azione di chiusura di AlertDialog che veniva visualizzata sotto l'azione di conferma quando le azioni erano sovrapposte per adattarsi alla larghezza della finestra di dialogo. Questa correzione allinea l'implementazione alle specifiche di Material Design (I029de, b/235454277).

Versione 1.5.0-alpha04

10 maggio 2023

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

Modifiche alle API

  • Stiamo spostando la dipendenza relativa alla densità al livello di componente. Questo vale per i seguenti componenti: BottomDrawer, ModalBottomSheetLayout, BottomSheetScaffold, Switch, ModalDrawer. Utilizza il nuovo sovraccarico fornito dove la densità è un parametro. (I8fbd8).

Versione 1.5.0-alpha03

19 aprile 2023

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

Modifiche alle API

  • Aggiorna gli elementi interni BottomDrawer per utilizzare le nuove API SwipeableV2. Poiché ora BottomDrawerState avrà solo API definite a livello di classe, non erediterà metodi/proprietà da SwipeableState. Stiamo usando la composizione con un SwipeableV2State interno. Ora l'offset è una proprietà con virgola mobile nullo; è ancora possibile accedere al valore corrente e a un valore target di scorrimento tramite le proprietà currentValue e targetValue. I precedenti metodi a livello di classe, come apertura/espansione/chiusura e proprietà come isOpen/isClosed, continuano a essere supportati. (Iad40c, b/178529942, b/220676296).

Correzioni di bug

  • Dati interni aggiornati del componente Switch. L'opzione ora mostrerà in anteprima lo stato più vicino (stato di destinazione) durante il trascinamento. (Id90d4)
  • I contenuti animati dei fogli (ad esempio Modifier.animateContentSize sui contenuti del foglio) 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 rilasciato. La versione 1.5.0-alpha02 contiene questi commit.

Correzioni di bug

  • Risolto il bug per cui BottomSheetScaffold si arrestava in modo anomalo se veniva fornito un contenuto vuoto per gli slot. (Ib24a5, b/235588730).
  • Correzioni di PullRefreshIndicator che intercettano clic / eventi di puntatore (2494256, b/271777421)

Versione 1.5.0-alpha01

22 marzo 2023

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

Correzioni di bug

  • Aggiungi un esempio di ripetizione flusso del gruppo di chip. Aggiorna la spaziatura interna orizzontale tra i chip figlio nell'esempio di gruppo di chip a riga singola in modo che corrisponda alla specifica. (I3b155)
  • Risolto il 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) all'interno e al contenuto 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 picco di versione).

Versione 1.4.2

19 aprile 2023

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

Versione 1.4.1

5 aprile 2023

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

Versione 1.4.0

22 marzo 2023

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

Modifiche importanti dalla versione 1.3.0

Modifiche alle API

  • Aggiungi Modifier.minimumInteractiveComponentSize. Può essere utilizzato per prenotare una dimensione di almeno 48.dp per chiarire le interazioni di tocco nel caso in cui l'elemento misurasse un valore più piccolo. (I33f58, b/258495559)
  • Modifiche incorporate nelle API a scorrimento in ModalDrawer. Il valore animateTo di DrawerState è stato sostituito dai metodi di apertura e chiusura e l'offset è ora nullo. Usa requireOffset per richiedere l'offset. (I3de9e).
  • Aggiunto il parametro minLines nei testi material3 e material3, TextField e OutlinedTextField che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d)
  • Parametro minLines aggiunto a BasicText e BasicTextField. Consente di impostare l'altezza minima di questi componenti componibili in termini di numero di righe (I24294, b/122476634)

Versione 1.4.0-rc01

8 marzo 2023

androidx.compose.material:material-*:1.4.0-rc01 viene rilasciato senza modifiche. La versione 1.4.0-rc01 contiene questi commit.

Versione 1.4.0-beta02

22 febbraio 2023

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

Modifiche alle API

  • Modifiche incorporate nelle API a 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. Usa invece i criteri expand() e collapse(). direction e overflow sono stati rimossi. offset è stato sostituito con requireOffset(). (I323b4)

Correzioni di bug

  • Rimosso i ruoli semantici dalle superfici cliccabili e selezionabili e i componenti aggiornati che li utilizzavano per impostare i ruoli utilizzando modificatore.semantics (Ibb4ba)
  • Aggiornamento di minore entità alle icone Material estese, che modificano le icone desktop_mac, directions e kitchen riempite. (I65f5e).

Versione 1.4.0-beta01

8 febbraio 2023

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

Modifiche alle API

  • Risolvi un problema per cui pullRefresh non consumava velocità, causando la visualizzazione di overscroll. È stata anche modificata la firma dell'API del lambda onRelease in Modifier.pullRefresh per restituire un valore in virgola mobile per la velocità consumata (I7db65, b/266874741)
  • Getter della proprietà LocalMinimuTouchTargetEnforcement ripristinato, contrassegna la proprietà come deprecata e reindirizza a LocalMinimumInteractiveComponentEnforcement. (I60dd5).

Versione 1.4.0-alpha05

25 gennaio 2023

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

Correzioni di bug

  • Risolto il problema per cui lo stato ModalBottomSheetLayout's HalfExpanded veniva calcolato in modo errato e il foglio sembrava essere mobile. (I8c615, b/265610459)
  • Risolto il bug in ModalBottomSheetLayout per cui, in determinate circostanze, il foglio si arrestava in modo anomalo passando dallo stato nascosto a quello visibile. (Ia9265, b/265444789)

Versione 1.4.0-alpha04

11 gennaio 2023

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

Modifiche alle API

  • Aggiunta nella proprietà semantica di IsContainer sulle piattaforme. Questa proprietà verrà utilizzata in una modifica successiva che determina l'ordine di attraversamento in base al significato semantico di elementi come le superfici. (I63379)
  • Contrassegna la funzione snapTo in Drawer come API non sperimentale. (Ib9c18, b/261425368).
  • Sono stati aggiunti un parametro per il colore delle tracce per gli indicatori di avanzamento circolari e un parametro del limite del tratto per gli indicatori di avanzamento circolari e lineari. (Ie668c, b/216325962, b/222964817).
  • ModalBottomSheetState, ModalBottomSheetState.Saver e confirmStateChange di rememberModalBottomSheetState sono stati rinominati in confirmValueChange. (Ib48d1).
  • Altro tipo di restituzione nulla delle funzioni deprecate nascoste (Ibf7b0)
  • Aggiungi Modifier.minimumInteractiveComponentSize. Può essere utilizzato per prenotare una dimensione di almeno 48.dp per chiarire le interazioni di tocco nel caso in cui l'elemento misurasse un valore più piccolo. (I33f58, b/258495559)
  • Modifiche incorporate nelle API a scorrimento in ModalBottomSheetLayout. Il parametro animateTo di ModalBottomSheetState non richiede più un parametro animationSpec e il valore offset esposto è ora nullo. Usa requireOffset per richiedere offset. (Ia2e79).

Correzioni di bug

  • Il foglio di ModalBottomSheetLayout ora ha una larghezza massima di 640 dp. (I71a4f, b/234927577)
  • Risolto il problema per cui rememberPullRefreshState non aggiornava refreshThreshold e refreshingOffset nel tempo. (Ifed10, b/263159832)
  • L'avanzamento degli indicatori di avanzamento è ora limitato correttamente all'intervallo previsto. (I8a7eb, b/262262727).
  • Se ModalBottomSheetState non riceve ancora alcun ancoraggio, la currentValue viene aggiornata senza un'animazione quando vengono chiamati snapTo o animateTo, anziché generare un'eccezione. (I2c91b)
  • È stato corretto lo stato Attivato nell'implementazione FilterChip di Material 2. (Id326a, b/261329817)
  • Risolto il bug per cui ModalBottomSheetLayout si arrestava in modo anomalo se fosse HalfExpanded durante la rotazione da verticale a orizzontale. Assicurati di trasmettere il valore initialValue corretto, ad esempio controllando la configurazione. (Ie8df7, b/182882364).
  • Risolto il problema per cui ModalBottomSheetLayout si arrestava in modo anomalo se i contenuti del foglio erano vuoti. ModalBottomSheetLayout ora consente i contenuti del foglio vuoto. Se il contenuto del foglio è vuoto, lo stato sarà solo 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 è dove in origine era stato segnalato il problema. Una correzione è stata inviata e sarà disponibile nel prossimo aggiornamento di Compose. Per risolvere il problema, aggiorna le librerie androidx.compose.material e androidx.compose.material3 all'ultima versione(1.1.0-alpha04) oppure 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 rilasciato. La versione 1.4.0-alpha03 contiene questi commit.

Modifiche alle API

  • Aggiunta dell'annotazione @JvmDefaultWithCompatibility (I8f206)
  • Modifiche incorporate nelle API Swipeable in ModalDrawer. Il valore animateTo di DrawerState è stato sostituito dai metodi open e close e l'offset è ora nullo. Usa requireOffset per richiedere l'offset. (I3de9e).
  • È stata aggiunta un'API Modifier per eseguire query sulle informazioni di scorrimento dei predecessori. (I2ba9d, b/203141462)
  • Utilizzato in Clickable per ritardare correttamente le interazioni con la pressione, quando i gesti potrebbero diventare eventi di scorrimento.
  • Risolto il problema di Clickables che non ritardava correttamente gli echi, se utilizzato all'interno di un Scrollable ViewGroup.
  • I cassetti e i fogli sono stati aggiornati per ritardare correttamente la pressione nel caso in cui i gesti possano diventare eventi di scorrimento.

Correzioni di bug

  • Risolto il problema per cui PullRefreshIndicator poteva bloccarsi dopo la chiamata di onRefresh se lo stato di aggiornamento non veniva modificato in true. (Ie2416, b/248274004)

Aggiornamenti delle dipendenze

  • L’UI di Compose e Compose Material ora dipendono dal ciclo di vita 2.5.1. (I05ab0, b/258038814).

Versione 1.4.0-alpha02

9 novembre 2022

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

Modifiche alle API

  • awaitFirstDown e waitForUpOrCancellation ora accettano PointerEventPass per una maggiore flessibilità. (I7579a, b/212091796)
  • Aggiunto il parametro minLines nei testi material3 e material3, TextField e OutlinedTextField che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d)
  • Parametro minLines aggiunto a BasicText e BasicTextField. Consente di impostare l'altezza minima di questi componenti componibili in termini di numero di righe (I24294, b/122476634)

Versione 1.4.0-alpha01

24 ottobre 2022

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

Modifiche alle API

  • È stato aggiunto un nuovo metodo, awaitEachGesture(), per i rilevatori di gesti. Il funzionamento è simile a forEachGesture(), ma i gesti Loop sui gesti operano interamente all'interno di AwaitPointerEventScope, in modo che gli eventi non vadano persi tra una iterazione e l'altra.
  • forEachGesture() è stato ritirato a favore di awaitEachGesture() perché consente la perdita di eventi tra gesti. (Iffc3f, b/251260206).

Versione 1.3

Versione 1.3.1

9 novembre 2022

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

Versione 1.3.0

24 ottobre 2022

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

Modifiche importanti dalla versione 1.2.0

Modifica che provoca 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 sostituendolo con quello in RangeSlider (I3b79a).

Versione 1.3.0-rc01

5 ottobre 2022

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

Versione 1.3.0-beta03

21 settembre 2022

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

Modifiche alle API

  • Aggiungere 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 rilasciato. La versione 1.3.0-beta02 contiene questi commit.

Nessuna modifica dalla versione 1.3.0-beta01

Versione 1.3.0-beta01

24 agosto 2022

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

Modifica che provoca 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 interessa le finestre di dialogo e i popup personalizzati dell'UI e del materiale. Questa modifica viene apportata per mitigare un bug relativo all'accessibilità nelle versioni di Android precedenti alla S e per garantire che i servizi di accessibilità all'interno di queste finestre siano in grado di interagire con i contenuti all'interno della finestra di dialogo o del popup.

Questa modifica ti riguarda solo se stai creando un'implementazione di finestre di dialogo o popup personalizzate con un'elevazione impostata su livelli superiori a 8 dp. Valuta la possibilità di ridurre l'elevazione della finestra di dialogo o del popup. Se devi disattivare questo nuovo comportamento, valuta la possibilità di biforcare la finestra di dialogo o il popup con l'elevazione impostata. Questa opzione è sconsigliata, perché l'accessibilità potrebbe risentirne e spetta allo sviluppatore assicurarsi che la parte inferiore della finestra di dialogo o del popup sia interagisci e leggibile dai servizi di accessibilità.

Versione 1.3.0-alpha03

10 agosto 2022

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

Versione 1.3.0-alpha02

27 luglio 2022

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

Contributi esterni

  • Risolvi AnimatedVisibility problema relativo a FloatingActionButton nell'impalcatura (I3a0ae, b/224005027)

Versione 1.3.0-alpha01

29 giugno 2022

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

Modifiche alle API

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

Correzioni di bug

  • Aggiorna il campione del badge per fornire una descrizione dei contenuti più significativa. (I10b9d)

Versione 1.2

Versione 1.2.1

10 agosto 2022

androidx.compose.material:material-*:1.2.1 viene rilasciato. La versione 1.2.1 contiene questi commit.

Versione 1.2.0

27 luglio 2022

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

Versione 1.2.0-rc03

29 giugno 2022

androidx.compose.material:material-*:1.2.0-rc03 viene rilasciato. La versione 1.2.0-rc03 contiene questi commit.

  • Nessuna modifica dalla versione 1.2.0-rc02.

Versione 1.2.0-rc02

22 giugno 2022

androidx.compose.material:material-*:1.2.0-rc02 viene rilasciato. La versione 1.2.0-rc02 contiene questi commit.

Versione 1.2.0-rc01

15 giugno 2022

androidx.compose.material:material-*:1.2.0-rc01 viene rilasciato. La versione 1.2.0-rc01 contiene questi commit.

Modifiche alle API

  • Le interfacce nelle librerie di scrittura ora vengono create utilizzando i metodi di interfaccia predefinita jdk8 (I5bcf1)

Correzioni di bug

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

Versione 1.2.0-beta03

1° giugno 2022

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

Correzioni di bug

  • È stato corretto un bug per cui BottomSheetScaffold stava disegnando sopra l'ombra della barra dell'app superiore. BottomSheetScaffold ora prende in considerazione lo stato del foglio anche per il posizionamento degli snackbar: nello stato compresso, gli Snackbar vengono posizionati sopra il foglio e i FAB; nello stato espanso, gli Snackbar sono ancorati alla parte inferiore del foglio. (Ia80b5, b/187771422).

Versione 1.2.0-beta02

18 maggio 2022

androidx.compose.material:material-*:1.2.0-beta02 viene rilasciato. La versione 1.2.0-beta02 contiene questi commit.

Versione 1.2.0-beta01

11 maggio 2022

androidx.compose.material:material-*:1.2.0-beta01 viene rilasciato. La versione 1.2.0-beta01 contiene questi commit.

Nuove funzionalità

  • Questa è la prima versione beta 1.2.

Modifiche alle API

  • Rinominato TextFieldDefaults.BorderStroke componibile 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 rilasciato. La versione 1.2.0-alpha08 contiene questi commit.

Modifiche alle API

  • Il consumo parziale (posizione abbassata OR) è stato ritirato in PointerInputChange. Puoi utilizzare consume() per completare la modifica. Puoi utilizzare isConsumed per stabilire se qualcun altro ha già utilizzato la modifica.
  • Ora PointerInputChange::copy() crea sempre una copia superficiale. Significa che le copie di PointerInputChange verranno consumate una volta esaurita una delle copie. Se vuoi creare un elemento PointerInputChange non associato, utilizza invece il costruttore. (Ie6be4, b/225669674).

Versione 1.2.0-alpha07

6 aprile 2022

androidx.compose.material:material-*:1.2.0-alpha07 viene rilasciato. La versione 1.2.0-alpha07 contiene questi commit.

Versione 1.2.0-alpha06

23 marzo 2022

androidx.compose.material:material-*:1.2.0-alpha06 viene rilasciato. La versione 1.2.0-alpha06 contiene questi commit.

Modifiche alle API

  • Aggiornamenti all'API Card cliccabile per seguire le modifiche apportate all'API Surface (I56bcb)
  • Aggiornamenti all'API Material 2 Surface che aggiungono ulteriori funzioni di sovraccarico per piattaforme selezionabili e attivabili. (Ifcca5).

Versione 1.2.0-alpha05

9 marzo 2022

androidx.compose.material:material-*:1.2.0-alpha05 viene rilasciato. La versione 1.2.0-alpha05 contiene questi commit.

Modifiche alle API

  • LazyVerticalGrid e LazyHorizontalGrid sono ora 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)
  • È stata annullata la modifica precedente relativa all'utilizzo esclusivo di una vista per WindowInsetsControllerCompat; è stata inoltre richiesta una finestra, necessaria per la gestione di alcuni flag delle finestre. Deprecato ViewCompat.getWindowInsetsController a favore di WindowCompat.getInsetsController per garantire che venga utilizzata la finestra corretta (ad esempio se la vista è in una finestra di dialogo). (I660ae, b/219572936)
  • Testo:includeFontPadding è ora disattivato per impostazione predefinita. Vengono gestiti i problemi di ritaglio dovuti a includeFontPadding=false e non dovrebbero verificarsi interruzioni per gli script lunghi. (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 rilasciato. La versione 1.2.0-alpha04 contiene questi commit.

Modifiche alle API

  • Add support for filter chips (I39a6e, b/192585545)
  • TextFieldDecorationBox e OutlinedTextFieldDecorationBox aggiunti. Utilizzarli insieme a BasicTextField ti aiuterà a creare campi di testo personalizzati basati sui campi di testo di Material Design, ma con più opzioni di personalizzazione.
  • Consente di regolare la spaziatura interna orizzontale e verticale nei campi di testo. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/178003)
  • Sono stati aggiunti i criteri ComposableTarget, ComposableTargetMarker e ComposableOpenTarget che consentono di generare report in fase di compilazione per capire quando una funzione componibile viene chiamata come target di un'applicazione che non era stata progettata.

    Nella maggior parte dei casi le annotazioni possono essere dedotte dal plug-in di Composer, pertanto l'utilizzo diretto di queste annotazioni dovrebbe essere raro . I casi che non possono essere dedotti includono la creazione e l'utilizzo di un applicatore personalizzato, funzioni componibili astratte (ad esempio i metodi di interfaccia), campi o variabili globali che sono lambda componibili (vengono dedotte variabili e parametri locali) o l'utilizzo di ComposeNode o di funzioni componibili correlate.

    Per gli applicatori personalizzati, le funzioni componibili che chiamano ComposeNode o ReusableComposeNode devono aggiungere un'annotazione CompoableTarget per la funzione ed eventuali tipi di parametri lambda componibili. Tuttavia, è consigliabile creare un'annotazione che sia annotata con ComposableTargetMarker e poi utilizzare l'annotazione contrassegnata al posto direttamente di ComposableTarget. Un'annotazione componibile contrassegnata con ComposableTargetMarker equivale a una ComposbleTarget con il nome completo della classe dell'attributo come parametro applier. Per un esempio di utilizzo di ComposableTargetMarker, consulta anroidx.compose.ui.UiComposable. (I38f11).

Versione 1.2.0-alpha03

9 febbraio 2022

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

Correzioni di bug

Versione 1.2.0-alpha02

26 gennaio 2022

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

Modifiche alle API

  • È stato aggiunto NonRestartableComposable ai metodi che sono sovraccarichi di metodi esistenti senza logica complessa. In questo modo vengono ridotti i controlli di memorizzazione generati dal compilatore (uguale a) per tutti i parametri che vengono ripetuti nella funzione interna chiamata. (I90490)
  • Aggiungi il 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 rilasciato. La versione 1.2.0-alpha01 contiene questi commit.

Aggiornamenti delle dipendenze

  • Ora dipende da Kotlin 1.6.10.

Contributi esterni

  • ModalBottomSheetState ora ha un flag isSkipHalfExpanded. Può essere impostata tramite il costruttore o aggiornata in un secondo momento impostando la proprietà isSkipHalfExpanded di ModalBottomSheetState su true. L'aggiornamento del valore di isSkipHalfExpanded determina 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 rilasciato. La versione 1.1.1 contiene questi commit.

Correzioni di bug

  • Correggi NullPointerException all'indirizzo androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList (aosp/1947059, b/206677462)
  • È stato risolto l'arresto anomalo causato dai contenuti degli appunti durante la lettura dagli appunti su Android. (I06020, b/197769306)
  • RTL corretto in LazyVerticalGrid (aosp/1931080, b/207510535)

Versione 1.1.0

9 febbraio 2022

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

Modifiche importanti dalla versione 1.0.0

  • Supporto stabile per l'effetto scorrimento orizzontale di Android 12
  • Miglioramenti alle dimensioni del touch target
  • Tieni presente che, rispetto a Compose 1.0, i componenti Material espanderanno lo spazio di layout in modo da rispettare le linee guida sull'accessibilità di Material per le dimensioni del touch target. Ad esempio, il touch target del pulsante si espanderà fino a una dimensione minima di 48 x 48 dp, anche se imposti dimensioni inferiori per il pulsante. In questo modo Compose Material allo stesso comportamento dei componenti di Material Design, offrendo un comportamento coerente se combini le visualizzazioni e Compose. Inoltre, questa modifica garantisce che quando crei la tua UI utilizzando i componenti di Compose Material, verranno soddisfatti i requisiti minimi per l'accessibilità del touch target.
  • Supporto stabile per rotaia di navigazione
  • Assegna una serie di API precedentemente sperimentali alla versione stabile
  • Supporto per versioni più recenti di Kotlin

Versione 1.1.0-rc03

26 gennaio 2022

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

Cambiamenti del comportamento

Tieni presente che, rispetto a Compose 1.0, i componenti Material espanderanno il proprio spazio di layout in modo da rispettare le dimensioni del touch target delle linee guida sull'accessibilità di Material. Ad esempio, il touch target del pulsante si espanderà fino a una dimensione minima di 48 x 48 dp, anche se imposti dimensioni inferiori per il pulsante. In questo modo Compose Material allo stesso comportamento dei componenti di Material Design, offrendo un comportamento coerente se combini le visualizzazioni e Compose. Inoltre, questa modifica garantisce che quando crei la tua UI utilizzando i componenti di Compose Material, verranno soddisfatti i requisiti minimi per l'accessibilità del touch target.

Correzioni di bug

  • Sono state aggiunte informazioni di debug migliori per lo strumento di controllo del layout durante l'ispezione dei modificatori minimi del touch target. (aosp/1955036)

Versione 1.1.0-rc01

15 dicembre 2021

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

Correzioni di bug

Versione 1.1.0-beta04

1° dicembre 2021

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

Nuove funzionalità

  • 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 rilasciato. La versione 1.1.0-beta03 contiene questi commit.

Versione 1.1.0-beta02

3 novembre 2021

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

Correzioni di bug

  • Eco e altre indicazioni verranno ora ritardati solo se si trovano all'interno di un container Modifier.scrollable(), invece di essere sempre ritardati per un evento down. (Ibefe0, b/203141462).

Versione 1.1.0-beta01

27 ottobre 2021

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

Nuove funzionalità

  • La funzione Eco ora supporta gli stati di passaggio del mouse e impostazione dello stato attivo, quindi se passi il mouse sopra un componente come Pulsante verrà mostrato l'overlay dello stato corretto.

Versione 1.1.0-alpha06

13 ottobre 2021

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

Modifiche alle API

  • È stato aggiunto un sovraccarico senza figli per Layout, con maggiore efficienza (Ib0d9a)
  • Implementazione di ExposedDropdownMenu basata su ExposedDropdownMenuBox con TextField e DropdownMenu all'interno (If60b2)
  • dismissOnOutsideClick è stato aggiunto a PopupProperties, sostituendo dismissOnClickOutside che è stato deprecato. La nuova proprietà riceve la posizione del clic e i limiti dell'ancoraggio, fornendo un controllo più preciso sull'eventuale richiamo di onDismissRequest. Ciò può essere utile, ad esempio, per evitare che il cursore venga rimosso se tocchi l'elemento.
    • updateAndroidWindowManagerFlags è stato aggiunto a PopupProperties, per offrire un controllo di basso livello sui flag trasmessi dal popup ad Android WindowManager. Il parametro della funzione lambda sarà il flag calcolati dai valori PopupProperties che generano i flag di WindowManager: ad esempio, focusable. Il risultato della funzione lambda sarà l'ultimo flag che verrà passato ad Android WindowManager. Per impostazione predefinita, updateAndroidWindowManagerFlags lascia invariati i flag calcolati dai parametri. Questa API deve essere utilizzata con cautela, solo nei casi in cui il popup abbia requisiti di comportamento molto specifici. (I6e9f9).

Versione 1.1.0-alpha05

29 settembre 2021

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

Modifiche alle API

  • Aggiunge le dimensioni minime del touch target per i componenti Material che non hanno un touch target accessibile. Poiché in questo modo viene aggiunta ulteriore spazio intorno ai componenti per garantire che abbiano un touch target sufficientemente grande, ciò potrebbe cambiare le UI esistenti che presumono che le dimensioni di questi componenti siano le dimensioni visive e non tengono conto delle dimensioni del touch target. Puoi utilizzare la composizione sperimentale LocalMinimumTouchTargetEnforcement locale per disattivare questo comportamento in una gerarchia, ma si tratta solo di un'alternativa temporanea durante l'aggiornamento delle UI esistenti per tenere conto della nuova dimensione minima. (I9b966, b/149691127, b/171509422).
  • È stata aggiunta l'interfaccia sperimentale TextFieldColorsWithIcons, che si estende TextFieldColors per fornire InteractionSource ai principali colori e finali. Ciò consente di modificare l'aspetto di TextField in base allo stato di messa a fuoco. (I66923, b/198402662)

Versione 1.1.0-alpha04

15 settembre 2021

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

Modifiche alle API

  • performGesture e GestureScope deprecati, che sono stati 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 garantire che i touch target soddisfino i requisiti minimi di accessibilità. (I2e14b, b/197751214).

Correzioni di bug

  • Consenti al clip di estendere i limiti del touch target oltre l'area del clip per scopi minimi del touch target. (I43e10, b/171509422)
  • È stato aggiornato il componente componibile Divider per rispettare Dp.Hairline per il parametro spessore in modo da supportare il disegno di divisori a singolo 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 rilasciato. La versione 1.1.0-alpha03 contiene questi commit.

Nuove funzionalità

  • Scrittura 1.1.0-alpha03 aggiornata in modo che dipendesse da Kotlin 1.5.30. (I74545)

Modifiche alle API

  • È stato aggiunto un metodo di test per ottenere i limiti tagliati. (I6b28e).
  • Aggiunta la dimensione minima del touch target a ViewConfiguration per l'uso nella semantica e nell'input del puntatore per garantire l'accessibilità. (Ie861c)

Versione 1.1.0-alpha02

18 agosto 2021

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

Contributi esterni

  • Correggi il comportamento di SwipeableState nel caso in cui l'offset di scorrimento si trovi all'interno di 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 rilasciato. La versione 1.1.0-alpha01 contiene questi commit.

Modifiche alle API

  • È stato aggiornato il metodo DrawScope#drawImage che utilizza i registri di origine e di destinazione per utilizzare un parametro FilterQualità facoltativo. Questo è utile per la Pixel Art, che deve essere pixelata quando viene ridimensionata per la grafica basata su pixel. Aggiornamento di BitmapPainter + Immagine componibile per utilizzare anche un parametro facoltativo tipoFilterQualità (Ie4fb0, b/180311607)
  • BadgeBox rinominato BadgedBox, parametri modificati per accettare il componibile Badge. È stato aggiunto il componente Badge, i tipici contenuti del badge per un BadgedBox. (I639c6).
  • Aggiunto il componente NavigationRail. Consulta la documentazione e gli esempi per informazioni sull'utilizzo (I8de77)

Correzioni di bug

  • Sono stati aggiunti un esempio di NavigationRail allineato in basso e una demo dell'app Catalog. (I3cffc)
  • Le finestre di dialogo ora seguono il comportamento relativo alle dimensioni della piattaforma. Imposta usePlatformDefaultLarghezza su false per eseguire l'override di questo comportamento. (Iffaed, b/192682388)
  • Aggiunta della demo sulle guide di navigazione all'app catalogo. (I04960)
  • Aggiunta della 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 rilasciato. La versione 1.0.5 contiene questi commit.

Correzioni di bug

  • Risolto il problema di monitoraggio degli arresti anomali delle istanze derivateStateOf. (aosp/1792247)

Versione 1.0.4

13 ottobre 2021

androidx.compose.material:material-*:1.0.4 viene rilasciato. La versione 1.0.4 contiene questi commit.

Aggiornamenti delle dipendenze

  • Aggiornato in modo da dipendere da Kotlin 1.5.31

Versione 1.0.3

29 settembre 2021

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

Aggiornamenti delle dipendenze

  • Aggiornato in modo da dipendere da Kotlin 1.5.30

Versione 1.0.2

1° settembre 2021

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

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

Aggiornamenti delle dipendenze

  • Aggiornato in modo che dipende da Kotlin 1.5.21.

Versione 1.0.0

28 luglio 2021

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

Funzionalità principali della versione 1.0.0

Questa è la prima release stabile di Compose. Consulta il blog ufficiale di Compose Release per ulteriori dettagli.

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+ 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 rilasciato. La versione 1.0.0-rc02 contiene questi commit.

Correzioni di bug

  • Le finestre di dialogo ora seguono il comportamento relativo alle dimensioni della piattaforma. Imposta usePlatformDefaultWidth su false per eseguire l'override di questo comportamento. (Iffaed, b/192682388)

Versione 1.0.0-rc01

1° luglio 2021

androidx.compose.material:material-*:1.0.0-rc01 viene rilasciato. La versione 1.0.0-rc01 contiene questi commit.

Modifiche alle API

  • Componente BadgeBox aggiunto. Per informazioni sull'utilizzo, consulta la documentazione e gli esempi (I5e284)
  • useDefaultMaxWidth in PopupProperties è stato rinominato in usePlatformDefaultWidth. (I05710)
  • Le finestre di dialogo ora possono utilizzare l'intera larghezza dello schermo. (I83929, b/190810877)
  • Aggiunta l'implementazione del dispositivo di scorrimento sperimentale per l'intervallo (I2f4b3)

Correzioni di bug

  • Per l'allineamento con le specifiche di Material Design, OutlineTextField con input non validi, è stato interrotto l'uso del colore di errore per l'etichetta quando l'etichetta è stata utilizzata come segnaposto. Il secondo valore è true se non è presente alcun testo di input nel campo di testo e il campo di testo non è a fuoco. In seguito a questa modifica, è cambiato anche il significato del parametro error:Boolean nella funzione TextFieldColors.labelColor(): ora restituirà false anche se l'input non è valido se l'etichetta viene utilizzata come segnaposto. (I45f78)

Versione 1.0.0-beta09

16 giugno 2021

androidx.compose.material:material-*:1.0.0-beta09 viene rilasciato. La versione 1.0.0-beta09 contiene questi commit.

Modifiche alle API

  • Aggiunto il parametro Forma a OutlineTextField per poter personalizzare la forma del bordo (I8f39e, b/181322957)
  • TextOverflow viene modificato in una classe incorporata. (I433af)

Correzioni di bug

  • Scrim in BottomDrawer, BackdropScaffold e ModalBottomSheetLayout scomparirà, dopodiché il colore verrà superato (I2d899, b/182063309)

Regole del profilo aggiunte

In questa release sono state aggiunte 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.materiale
  • androidx.compose.materiale-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 libreria sono specificate in un file di testo baseline-prof.txt che si trova in src/main o nella directory equivalente. Il file specifica una regola per riga, dove una regola in questo caso è un pattern per la corrispondenza con metodi o classi della libreria. La sintassi di queste regole è un soprainsieme del formato del profilo ART leggibile che viene utilizzato quando si utilizza adb shell profman --dump-classes-and-methods .... Queste regole assumono una delle due forme per il targeting di metodi o classi.

  • Una regola del metodo avrà il seguente pattern:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • Una regola di classe avrà il seguente pattern:

    <CLASS_DESCRIPTOR>
    
  • Qui <FLAGS> contiene uno o più caratteri H, S e P per indicare se il metodo deve essere contrassegnato o meno come "Hot", "Startup" o "Post Startup".

  • <CLASS_DESCRIPTOR> è il descrittore della classe a cui appartiene il metodo scelto come target. Ad esempio, la classe androidx.compose.runtime.SlotTable avrà un descrittore Landroidx/compose/runtime/SlotTable;.

  • <METHOD_SIGNATURE> è la firma del metodo e include il nome, i tipi di parametro e i tipi restituiti del metodo. Ad esempio, il metodo fun isPlaced(): Boolean su LayoutNode ha la firma isPlaced()Z.

  • Questi pattern possono includere caratteri jolly (**, * e ?) in modo che una singola regola includa più metodi o classi.

A cosa servono le regole?

  • Un metodo con il flag H indica che si tratta di un metodo "ad accesso frequente" e deve essere compilato in anticipo.

  • Un metodo con il flag S indica che si tratta di un metodo che viene richiamato all'avvio e deve essere compilato in anticipo per evitare i costi di compilazione e interpretazione del metodo all'avvio.

  • Un metodo con il flag P indica che si tratta di un metodo che viene richiamato dopo l'avvio.

  • Una classe presente in questo file indica che viene utilizzata durante l'avvio e deve essere preallocata nell'heap per evitare i costi di caricamento della classe.

Come funziona?

  • Le librerie possono definire queste regole che verranno pacchettizzate in artefatti AAR. Quando viene creato un APK che include questi artefatti, queste regole vengono unite e le regole unite vengono utilizzate per creare un profilo ART binario compatto specifico per l'APK. ART può quindi sfruttare questo profilo quando l'APK viene installato sui dispositivi per compilare in anticipo un sottoinsieme specifico dell'applicazione al fine di migliorarne le prestazioni, in particolare la prima esecuzione. Tieni presente che ciò non avrà alcun effetto sulle applicazioni di cui è possibile eseguire il debug.

Versione 1.0.0-beta08

2 giugno 2021

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

Nuove funzionalità

Modifica dell'API Behavior Breaking

  • INTERRUZIONE DEL COMPORTAMENTO: la carta ora consuma dei clic, rendendo i clic aggiunti tramite Card(Modifier.clickable) in modo autonomo. Utilizza il nuovo sovraccarico sperimentale di una carta che accetta Istio. (Ia8744, b/183775620)
    • È stato aggiunto un nuovo sovraccarico di schede che gestisce i clic e altre funzionalità cliccabili: indicazione, Sorgente di interazione, attivato/disattivato. Non è stato possibile utilizzare una scheda non cliccabile standard con l'Modifier.clickable perché in questi casi la scheda non interrompe l'indicazione dell'ondulazione.
  • INTERRUZIONE DEL COMPORTAMENTO: Surface ora consuma clic, rendendo i clic aggiunti tramite Surface(Modifier.clickable) in modo autonomo. Utilizza il nuovo sovraccarico sperimentale di Surface che accetta Istio. (I73e6c, b/183775620)
    • È stato aggiunto un nuovo sovraccarico di Surface che gestisce i clic e altre funzionalità cliccabili: indicazione, Origine interazione, attivato/disattivato. Non è stato possibile utilizzare una superficie non cliccabile normale con Modifier.clickable perché in questi casi la superficie non ritaglia l'indicazione dell'ondulazione.

Modifiche alle API

  • FabPosition è stato convertito in classe In linea da enum per supportare la potenziale espansione in futuro (I030fb)
  • È stato eseguito il refactoring degli utilizzi delle enum in classi in linea per evitare problemi con l'enumerazione esaustiva di istruzioni quando vengono aggiunti nuovi valori di enumerazione. (I2b5eb)
  • Aggiunge un timeout del tocco a cliccabile/attivabile per impedire la visualizzazione di un'onde durante lo scorrimento o il trascinamento (Ia2704, b/168524931)
  • Le proprietà della semantica del testo e ContentDescription non sono più valori singoli, ma elenchi. Ciò consente di unirli in quanto si tratta di una concatenazione. Sono state inoltre fornite API di test migliori per utilizzare queste modifiche (Ica6bf, b/184825850)
  • L'istruzione Modifier.focusModifier() è deprecata e sostituita da Modifier.focusTarget() (I6c860)
  • Enum FocusState sostituita con interfaccia FocusState (ICC1a, b/187055290)
  • LocalRippleNativeRendering rimosso ora che l'implementazione del ripple supportata da View è stabile (I7fab3, b/188569367)

Correzioni di bug

  • Modifier.onGloballyPositioned() è stato modificato per indicare le coordinate di questo modificatore nella catena di modificatori, non le coordinate del layout dopo aver applicato tutti i modificatori. Ciò significa che ora l'ordine dei modificatori influisce sulle coordinate che verrebbero riportate. (Ieb67d, b/177926591).
  • È stato aggiunto un file README per il catalogo esistente di Compose Material. (If9191)

Versione 1.0.0-beta07

18 maggio 2021

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

Modifiche alle API

  • Non è più necessario utilizzare metodi di estensione per il supporto delle route in Scrittura Navigazione. (I22beb, b/172823546).

Versione 1.0.0-beta06

5 maggio 2021

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

Modifiche alle API

  • È stata eseguita la migrazione di Ripple per utilizzare RippleDrawable internamente sui dispositivi Android. Ciò significa che le animazioni a onde avvengono nel RenderThread, quindi saranno fluide anche quando il thread dell'interfaccia utente è sotto carico, ad esempio durante lo spostamento da una schermata all'altra. Questo non cambia la superficie dell'API per l'oscillazione, ma potrebbero essere apportate modifiche al comportamento a seguito di questa modifica. Per facilitare la migrazione, è stato aggiunto LocalRippleNativeRendering: fornisci un valore false a questo oggetto ComposeLocal per tornare alla precedente implementazione dell'ondulazione all'interno di ComposeLocalProvider. L'API è temporanea e verrà rimossa in futuro quindi, se riscontri problemi che ti causano l'utilizzo dell'API, segnala un bug. (I902f8, b/168777351, b/183019123).
  • Sono state aggiunte le API di accessibilità CollectionInfo e CollectionItemInfo che consentono di contrassegnare la raccolta e i relativi elementi per i servizi di accessibilità (Id54ef, b/180479017)
  • Aggiunta l'API Accessibility error che consente di contrassegnare un nodo che contiene input non validi (I12997, b/180584804, b/182142737)

Correzioni di bug

  • L'implementazione aggiornata dei riquadri del catalogo di Compose Material da: https://github.com/google/accompanist/pull/365. (I25dc3)
  • Le righe e le colonne secondarie con ponderazione(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 rilasciato. La versione 1.0.0-beta05 contiene questi commit.

Correzioni di bug

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

Versione 1.0.0-beta04

7 aprile 2021

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

Modifiche alle API

  • MODIFICA API: lo stato DrawerState non estende più il periodo sperimentale SwipeableState.
    • MODIFICA API: il campo BottomDrawerState è ora contrassegnato come sperimentale, in modo da corrispondere al componente BottomDrawer già sperimentale (I81114, b/181656094)
  • Rinomina hideSoftwareKeyboard e showSoftwareKeyboard su SoftwareKeyboardController rispettivamente in hide() e show().
    • Fornisce l'interfaccia ComposeLocal completa per LocalSoftwareKeyboardController, consentendone l'impostazione (particolarmente utile nei test) (I579a6)
  • È stata aggiunta l'API LiveRegion Accessibility. Se il nodo è contrassegnato come regione attiva, i servizi di accessibilità informeranno automaticamente l'utente delle modifiche (Idcf6f, b/172590946)

Correzioni di bug

  • Aggiunta l'implementazione del catalogo Compose Material nel modulo esistente. Attualmente mancanti: immagini riquadri del componente, selettore di temi (da aggiungere nelle modifiche di follow-up). (Ie7a94)

Versione 1.0.0-beta03

24 marzo 2021

androidx.compose.material:material-*:1.0.0-beta03 viene rilasciato. La versione 1.0.0-beta03 contiene questi commit.

Modifiche alle API

  • L'API DefaultMonotonicFrameClock è deprecata. La chiamata a 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 incorporato in una scheda. (I23267)

Contributi esterni

  • [di Jossi Wolf] BottomDrawer ora completa i contenuti dello slot del cassetto. BottomDrawer non genera IllegalStateException se l'elemento principale ha un'altezza illimitata. Il riquadro a scomparsa inferiore ora si aprirà in uno stato espanso se è inferiore al 50% di quello principale. I documenti relativi a BottomDrawerState e ModalBottomSheetLayoutState sono stati aggiornati. BottomDrawerState#isOpen restituisce true ora se è in stato aperto o espanso. (I87241)

Versione 1.0.0-beta02

10 marzo 2021

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

Modifiche alle API

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

Correzioni di bug

  • Applicare restrizioni all'uso pubblico delle API sperimentali (I6aa29, b/174531520)
  • Modificato l'allineamento orizzontale predefinito per TopAppBar e BottomAppBar in Start, in modo coerente con Row (Ib2dc7)
  • È stato aggiunto un nuovo modulo e una nuova interfaccia utente segnaposto per un catalogo di Compose Material, attualmente nidificato nelle demo dei test di integrazione esistenti. (Idfcb3)
  • androidx.compose.ui:ui non dipende più da AppCompat o Fragment. Se utilizzi ComposeView nell'applicazione e Fragment e/o AppCompat, accertati 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 necessari per ComposeView. (I1d6fa, b/161814404).

Versione 1.0.0-beta01

24 febbraio 2021

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

Questa è la prima release di Compose 1.0.0 beta.

Modifiche alle API

  • I modificatori di dimensione sono stati rinominati. Modifier.width/height/size sono stati rinominati come requiredwidth/requiredHeight/requiredSize. Modifier.preferredwidth/preferredHeight/preferredSize da è stato rinominato in larghezza/altezza/size. (I5b414)
  • imageResource e vectorResource sono ora funzioni di estensione rispettivamente sulle creatività companion ImageBitmap e ImageVector. load{Image,Vector,Font}Le funzioni delle risorse sono state eliminate. (I89130)
  • I modificatori per le dimensioni intrinseche non sono più sperimentali. (I15744)
  • Asserzioni DP rimosse (I798d2)
  • È stato rimosso il callback SoftwareKeyboardController da tutti i campi di testo per sostituirlo a breve con una nuova API. (Iae869, b/168778053).
  • I lambda di azioni Switch, Casella di controllo e RadioButton sono ora nulli. Esempi di casella di controllo in riga cliccabile aggiornati per utilizzare questa funzionalità. (If601b, b/171819073)
  • InteractionState è stato sostituito con [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 usare le funzioni di estensione su InteractionSource, come InteractionSource.collectIsPressedAsState().
    • Per casi d'uso complessi, puoi utilizzare InteractionSource.interactions per osservare il flusso di interazioni. Per saperne di più, consulta la documentazione e gli esempi di InteractionSource.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • Aggiungi l'interfaccia AccessibilityMananger e LocalAccessibilityMananger in ResolutionLocals (I53520)
  • Rimossi i metodi LayoutCoordinates ritirati, usa la funzione invece della proprietà per positionInParent e boundsInParent (I580ed, b/169874631, b/175142755)
  • Il cursore ora supporta lo stato attivato/disattivato (I6d56b, b/179793072)
  • È stato creato un nuovo TextInputSession per le sessioni di input da componenti di testo di basso livello, come CoreTextField. (I8817f, b/177662148)
  • AnimationEndReason.Il valore interrotto è stato rimosso. Se l'animazione viene interrotta, viene generata un'eccezione AnnullationException. (I2cbbc, b/179695417).
  • È stato rimosso @ExperimentalRippleApi e modificato RippleAlpha 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 OutlineTextField in stati diversi. Per l'implementazione predefinita, vedi TextFieldDefaults.textFieldColors e TextFieldDefaults.outlinedTextFieldColors.
  • Aggiungi il modificatore selectGroup che consente di contrassegnare una raccolta di schede o pulsanti di opzione per motivi di accessibilità (Ie5c29)
  • Aggiungi LazyListState.animateScorriToItem

    Questo metodo consente di scorrere facilmente 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 gli elementi componibili contrassegnati con @ReadOnlyComposable vengono ora convalidati in fase di compilazione per garantire che effettuino chiamate solo all'altro @ReadOnlyComposables (I58961)

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

  • La posizione di scorrimento in Modifier.verticalScorri()/HorizontalSlide() è rappresentata ora con Ints (I81298)

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

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

  • I modificatori di dimensione sono stati rinominati. Modifier.width/height/size sono stati rinominati come requiredwidth/requiredHeight/requiredSize. Modifier.preferredwidth/preferredHeight/preferredSize da è stato rinominato in larghezza/altezza/size. (I5b414)

  • defaultMinSizeConstraints è stato rinominato in defaultMinSize. (I4eaae).

  • L'orientamento è stato spostato nel pacchetto di base. VelocirtTracker spostato da ui.gesture a ui.input.pointer. (Iff4a8, b/175294473).

  • frameState.open() e frameState.close() ora sospendeno le funzioni. Utilizza keepCoroutineScope() per ottenere l'ambito della composizione per chiamarli (I16f60, b/175294473)

  • I fornitori sono stati rinominati in ComposeLocalProvider

    • Il costruttore Composizione non accetta più un parametro chiave ed è stato ritirato.
    • currentCompositeKeyHash è stata trasformata in una proprietà componibile di primo livello invece che in una funzione componibile di primo livello.
    • ComposeData e ResolutionGroup sono stati spostati nello spazio dei nomi androidx.compose.runtime.tooling
    • ComposableLambda è stata trasformata in un'interfaccia anziché in una classe concreta e non ha più parametri di tipo.
    • ComposableLambdaN è stata trasformata in un'interfaccia anziché in una classe concreta e non ha più parametri di tipo.
    • La funzione snapshotFlow è stata spostata nello spazio dei nomi androidx.compose.runtime
    • il metodo di unione di SnapshotMutationPolicy non è più sperimentale
    • La funzione ClearRoots di primo livello @TestOnly è stata rimossa. Non è più necessario.
    • Le funzioni keySourceInfoOf e resetSourceInfo sono state rimosse. Non sono più necessari.
    • Composer.collectKeySourceInformation è stato rimosso. Non è più necessario.
    • i metodi isjoinedKey, joinedKeyLeft e joinedKeyRight sono stati rimossi. Non sono più necessari.
    • Varie API di primo livello sono state spostate e riorganizzate in file diversi. A causa della semantica della classe dei file di Kotlin, questo compromette la compatibilità binaria, ma non la compatibilità delle origini, 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 invece di un semplice lambda. Puoi creare lo stato tramite rememberDraggableState { delta -> } per ottenere lo stesso comportamento di prima (Ica70f, b/175294473)

  • ZoomableController.smoothScaleBy e ZoomableController.stopAnimation sono ora funzioni di sospensione. (I7f970, b/177457083)

  • Eliminate alcune API deprecate in precedenza (Ice5da, b/178633932)

  • Apportate le seguenti modifiche all'API Material:

    • È stato aggiunto il parametro contentPadding a Top/BottomAppBar per consentire la personalizzazione della spaziatura interna predefinita.
    • I parametri in BackdropScaffold sono stati riordinati in modo da seguire le linee guida dell'API per i parametri obbligatori che devono precedere i parametri facoltativi.
    • Parametro icon spostato in BottomNavigatorItem perché sia successivo a selected e onClick.
    • Parametro alwaysShowLabels rinominato in BottomNavigatorItem in alwaysShowLabel.
    • Parametri bodyContent rinominati in alcuni componenti in content.
    • Parametri riordinati in ButtonDefaults.buttonColors(). Tieni presente che, poiché il tipo dei parametri non è cambiato, questo non causerà un errore nel tuo codice. Assicurati di utilizzare parametri denominati o di aggiornare l'ordinamento manualmente, altrimenti il codice non funzionerà come in precedenza.
    • Parametro secondaryVariant aggiunto a darkColors(). Questo colore solitamente corrisponde a secondary nel tema scuro, ma garantisce coerenza e un'ulteriore personalizzazione.
    • Sono stati rimossi ElevationDefaults e animazioniElevation() dalla piattaforma API pubblica perché non erano di uso comune / non utili.
    • Il nome onValueChangeEnd in Slider è stato rinominato in onValueChangeFinished e l'elemento è nullo.
    • Parametro text rinominato in Snackbar in content per coerenza.
    • Il parametro contentPadding è stato aggiunto a DropdownMenuItem per consentire la personalizzazione della spaziatura interna predefinita e ha reso content un'estensione su RowScope.
    • Rinominato ModalDrawerLayout in ModalDrawer.
    • Rinominato BottomDrawerLayout in BottomDrawer.
    • (I1cc66)
  • BasicTextField ora accetta Pennello anziché Colore per una migliore personalizzazione (I83a36)

  • imageResource e vectorResource sono ora funzioni di estensione rispettivamente sulle creatività companion ImageBitmap e ImageVector. load{Image,Vector,Font}Le funzioni delle risorse sono state eliminate. (I89130)

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

Correzioni di bug

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

Versione 1.0.0-alpha12

10 febbraio 2021

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

Modifiche alle API

  • Modifier.pointerInput ora richiede di ricordare i tasti per indicare quando la coroutine di rilevamento dell'input del puntatore deve riavviarsi per nuove dipendenze. (I849cd)
  • BottomDrawerLayout ed ListItem sono stati contrassegnati come @ExperimentalMaterialApi (Id766e)
  • PaddingValues.Unique è stato aggiunto e può essere utilizzato nelle API che accettano PaddingValues. (Ia5f30).
  • L'API onImeActionPerformed è deprecata. Usa invece KeyboardActions (If0bbd, b/179071523)
  • Per abbinare meglio le convenzioni di denominazione con ImageBitmap e ImageVector, ImagePainter è stata rinominata in BitmapPainter in VectorPainter parallelo. (Iba381, b/174565889).
  • Animatable.snapTo e Animatable.stop sono ora funzioni di sospensione (If4288)
  • ComponenteActivity.setContent è stato spostato in androidx.activity.compose.setContent nel modulo androidx.activity:activity-compose. (Icf416)
  • I metodi di distruzione e copy() sono stati rimossi da diverse classi in cui erano usati raramente. (I26702, b/178659281)
  • Creazione di semiespandi() ed expand() in ModalBottomSheetState interni (Ic914e)
  • Changed Indication#createInstance in @Composable e modificato LocalIndication in modo che contenga un'indicazione, non () -> Indication. (I5eeea, b/157150564).
  • Finestra AlertDialog e Menu a discesa spostati per essere ora disponibili solo su Android. Aggiunto il parametro PopupProperties a Menu a discesa per ulteriori configurazioni del popup sottostante. (I9c443).
  • L'elemento loadFontResource è deprecato. Utilizza invece fontResource. imageResource, loadImageResource, vectorResource e loadVectorResource sono deprecati. Usa pittoreResource. (I6b809)
  • Sono stati rimossi i parametri toggle e toggleModifier da Menu a discesa e dropdownModifier, dropdownOffset e dropdownContent sono stati rinominati rispettivamente modifier, offset e content. Il menu a discesa ora funziona in modo coerente con Popup, dove viene utilizzato il layout principale per la posizione del menu. Nella maggior parte dei casi puoi spostare toggle come elemento di pari livello di DropdownMenu e aggregare entrambi in Box. Per ulteriori informazioni sull'utilizzo di questa API, consulta l'esempio aggiornato nella documentazione. (I884fb).
  • toIntPx() è stato rinominato in roundToPx() (I9b7e4, b/173502290).
  • IntBounds è stato rinominato IntRect e l'API è stata migliorata. (I1f6ff).
  • Aggiunta di azioni di espansione e compressione relative alla semantica. Aggiunta espandi e dimezzata in ModalBottomSheetState (Ib5064)
  • L'API Modifier.dragGeFilter è stata ritirata. Usa invece il criterio Modifier.pointerInput { detectDragGestures (...)}. In alternativa, utilizza Modifier.draggable per i trascinamento su un asse (I0ba93, b/175294473)
  • La ridenominazione degli ambienti Ambient è stata rinominata -> ComposeLocal. Gli ambienti un tempo si chiamavano AmbientFoo, ora i ComposeLocals si chiamavano LocalFoo. (I2d55d).
  • La selezione è stata spostata negli elementi di base. (I7892b)
  • Analogamente a come in precedenza abbiamo rimosso il componibile state { 0 } e ora promuoviamo l'utilizzo come remember { mutableStateOf(0) }, rimuoveremo savedInstanceState { 0 } componibile. Dovresti usare rememberSaveable { mutableStateOf(0) }, che verrà salvato e ripristinato automaticamente se il tipo utilizzato all'interno di MutableState può essere archiviato nel bundle. Se in precedenza stavi passando un oggetto salvaschermo personalizzato, ora devi utilizzare un nuovo sovraccarico di saveSaveable che ha il parametro stateSaver. L'utilizzo sarà simile a questo: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • Aggiunta ProgressBarRangeInfo.Indeterminata per contrassegnare barre di avanzamento indeterminate per l'accessibilità (I6fe05)
  • @ComposableContract è stato ritirato e sostituito con tre annotazioni più specifiche.

    • @ComposableContract(restartable = false) è diventato @NonRestartableComposable
    • @ComposableContract(readonly = true) è diventato @ReadOnlyComposable
    • @ComposableContract(preventCapture = true) è diventato @DisallowComposableCalls
    • Il partner @ComposableContract(tracked = true) è stato rimosso.
    • (I60a9d)
  • Le utilità emptyContent() e (@Composable () -> Unit).orEmpty() sono state ritirate in quanto non hanno più alcun impatto o valore positivo sulle prestazioni (I0484d)

  • Il servizio ricordo di istanzaState() è stato rinominato in "RicordaSaveable()" e il nome è stato 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 rtl. UniqueRounderCornerShape e UniqueCutCornerShape sono stati introdotti per i casi in cui il mirroring automatico non è desiderato. (I61040, b/152756983)

  • Sono stati modificati i parametri text e icon della scheda e il parametro label di BottomNavigatorItem come valore null per trasmettere meglio il comportamento del componente quando questi parametri vengono o non vengono forniti, poiché influisce sulle dimensioni e sul layout del componente. Se al momento passi emptyContent() per non rappresentare alcun testo / icona / etichetta, devi usare invece null. (I57ed4)

  • Parametro colore contentColorFor rinominato in backgroundColor (I5bb67)

  • Deprecato TabDefaults e lo ha sostituito con TabRowDefaults. (I0f189)

  • Introdotta API ColorMatrix utilizzata per modificare i valori RGB del contenuto di origine. Refactoring dell'API ColorFilter per essere un'interfaccia e corrispondere all'implementazione di PathEffect. (Ica1e8).

  • LivelyValue/Float è ora deprecata. Usa invece Animabili. (I71345, b/177457083)

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

  • Sono stati aggiunti i parametri attivati a Tab e BottomNavigatorItem per impedire che siano cliccabili. Il valore di BottomNavigatorItem è stato modificato in RowScope.BottomNavigatorItem per esprimere meglio i requisiti di layout nell'API. (Id683d)

  • TapGeFilter, doubleTapgestFilter, longPress tredescherFilter e pressIndicaiton praticheFilter sono stati ritirati. Utilizza invece Modifier.clickable o Modifier.pointerInput con la funzione detectTaparmas. (I6baf9, b/175294473).

  • Aggiungi il parametro layoutDirection al parametro createOutline di Shape. Consente di creare forme basate sulle indicazioni del layout. (I57c20, b/152756983).

  • Recomposer.current() rimosso. [Abstract]ComposeView ora utilizza per impostazione predefinita ricompositori con ambito a finestre creati in modo lento e gestiti dal ViewTreeLifecycleOwner per la finestra. I segni di graduazione dell'animazione basati su Ricomposizione e conFrameNanos vengono messi in pausa mentre il ciclo di vita dell'host viene interrotto. (I38e11).

Correzioni di bug

  • L'icona verrà ora ingrandita per adattarsi alle sue dimensioni, rispettando i modificatori di dimensione applicati. Ad esempio, Icon(.., modifier = Modifier.size(50.dp) ora disegnerà uno spazio di 50 x 50 dp. (Ib2ba9, b/178796190).

Versione 1.0.0-alpha11

28 gennaio 2021

androidx.compose.material:material-*:1.0.0-alpha11 viene rilasciato. La versione 1.0.0-alpha11 contiene questi commit.

Modifiche alle API

  • Promuove alcune API Material in modo che non siano più @Experimental (I5d20e)
  • Il parametro per la descrizione dei contenuti è stato aggiunto all'immagine e all'icona. Viene utilizzato per fornire una descrizione ai servizi di accessibilità (I2ac4c)
  • Modifica le interfacce dei parametri stateful 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. Modifica anche animateElevation come estensione di sospensione in Animatable. (If613c)
  • Snackbar, SnackbarHost e 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 ritirate (Ifaa25)

Correzioni di bug

  • onCommit, onDispose e onActive sono stati deprecati a favore delle API SideEffect e DisposableEffect (If760e)
  • La transizione basata su TransactionDefinition è stata ritirata (I0ac57)
  • Lo stato iniziale in updateTransizione è ora supportato (Ifd51d)
  • WithConstraints è stato rielaborato come BoxWithConstraints e spostato in Foundation.layout. (I9420b, b/173387208)
  • Depreca scrollBy non sospesi, rimuovi scrollTo non sospesi

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

  • Ritiro di smoothScorriBy non sospesi Ora consigliamo di utilizzare le funzioni di sospensione per controllare lo scorrimento e attendere il termine dello scorrimento. Nell'ambito di questa transizione, ritireremo le versioni non sospese di queste funzioni. (I12880)

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

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

  • animateAsState ora è animatoFooAsState, dove Foo è il tipo di variabile in fase di animazione, ad es. Float, Dp, Offset e così via (Ie7e25)

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

  • Correzione di un bug che impediva l'impostazione della larghezza del campo di testo del materiale inferiore a 280.dp (I78373)

  • Il parametro canTrascina è stato rimosso da Modifier.draggable (Ic4bec, b/175294473)

  • Rimuovi displaySize come da evitare. In genere, è meglio utilizzare almeno la dimensione onRoot() o la dimensione della finestra. (I62db4)

  • La piattaforma ora può avere più layout secondari. (I66a92, b/144488459).

  • invalidate e comScoreReference() ora sono deprecati a favore di currentRecomposeScope e promemoriaComposeReference. (I583a8)

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

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

  • È stato rimosso AnimatedFloat.fling che accetta FlingConfig. Usa invece sospendi Animatable.animateDecay. (I4659b, b/177457083)

  • Cliccabile, attivabile e selezionabile può essere creato al di fuori della composizione ora (I0a130, b/172938345, b/175294473)

  • Easing è stato cambiato in un'interfaccia funzionale (Ib14e5)

  • ScorribiliColumn/Riga sono stati deprecati. L'utilizzo di scrollableColumn è meno efficiente rispetto a LazyColumn quando hai molti contenuti a scorrimento perché con LazyColumn possiamo solo comporre/misurare/disegnare elementi visibili. Per evitare che gli utenti vadano in modo inefficiente, abbiamo deciso di ritirare scrollableColumn e scrollableRow e promuovere invece l'utilizzo di LazyColumn e LazyRow. Gli utenti possono comunque decidere che non hanno bisogno di un comportamento lento e usare i modificatori direttamente in questo modo: Column(Modifier.verticalscroll(rememberscrollState())) (Ib976b, b/170468083)

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

  • Metodi sperimentali monotonicFrameAnimationClockOf rimossi (Ib753f, b/170708374)

  • Deprecati metodi di coordinate globali e creati nuovi metodi di coordinate basati su finestre. (Iee284).

  • Aggiunto Modifier.toolingGraphicslayer che aggiunge un modificatore livello grafico quando l'ispezione è attiva. (I315df)

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

  • SemanticsPropertyRicevir.hidden è stato rinominato in invisibleToUser e contrassegnato come @ExperimentalComposeUiApi. AccessibilityRangeInfo è stata rinominata ProgressBarRangeInfo. stateDescriptionRange è stata rinominata progressBarRangeInfo. AccessibilityScorriState è stata rinominata in scrollAxisRange. HorizontalAccessibilityscrollState è stato rinominato in HorizontalscrollAxisRange. verticalAccessibilityScorriState è stato rinominato in verticalscrollAxisRange. (Id3148)

  • Utilizza TestCoroutineDispatcher nei test (I532b6)

  • L'API di grafica vettoriale è stata aggiornata per supportare l'analisi della colorazione applicata alla radice di grafica vettoriale. (Id9d53, b/177210509)

Versione 1.0.0-alpha10

13 gennaio 2021

androidx.compose.material:material-*:1.0.0-alpha10 viene rilasciato. La versione 1.0.0-alpha10 contiene questi commit.

Modifiche alle API

  • Velocità modificata per includere parti dei componenti e operazioni matematiche. (Ib0447)
  • Rinominato @ExperimentalTesting in @ExperimentalTestApi in modo che sia coerente con annotazioni simili delle API sperimentali (Ia4502, b/171464963)
  • Rinominato Posizione in DpOffset e rimosso getDistance() (Ib2dfd)
  • Ranamed Color.useOrElse() a Color.takeOrElse() (Ifdcf5)
  • Aggiungi Pulsante a Strings.kt di base (I4a5b7, b/172366489)
  • FlowRow e FlowColumn sono state deprecate. Utilizza invece un layout personalizzato. (I09027)
  • Modifier.focus() e Modifier.focusRequester() sono deprecati. Usa invece Modifier.focusModifier() e Modifier.focusReference(). (I75a48, b/175160751, b/175160532, b/175077829)
  • L'elemento nativeClass è stato spostato nel modulo dell'interfaccia utente e lo ha reso interno. Sono stati aggiornati gli utilizzi di nativeClass in modo uguale a implementazioni e usare invece "is MyClass". (I4f734)

Correzioni di bug

  • Aggiunto il supporto per i campi di testo disattivati e di sola lettura (I35279, b/171040474, b/166478534)
  • animate() è ora sostituito con animateAsState(), che restituisce State<T> anziché T. Ciò consente prestazioni migliori, poiché l'ambito di annullamento della convalida può essere limitato al punto in cui viene letto il valore State. (Ib179e)
  • Aggiungi l'API del ruolo Semantics e aggiungi Role come parametro per SemanticsModifier cliccabile, selezionabile e attivabile. È stato modificato Modifier.progressSemantics in modo che anche Slider possa utilizzarlo. (I216cd)

Versione 1.0.0-alpha09

16 dicembre 2020

androidx.compose.material:material-*:1.0.0-alpha09 viene rilasciato. La versione 1.0.0-alpha09 contiene questi commit.

Modifiche alle API

  • è stata aggiunta un'API per attivare manualmente l'animazione della regolazione e trascinarla in Modifier.s wipeable (Iaa17a, b/162408885)
  • Oggetti *Costanti rinominati come ButtonCosts, rinominati per terminare con valori predefiniti, come ButtonDefaults. Rimuove anche i prefissi default non necessari dalle proprietà in questi nuovi oggetti. (Ibb915, b/159982740).
  • Compose supporta i getter di proprietà che possono effettuare chiamate componibili. Il supporto per questo aspetto non verrà interrotto, ma la sintassi per dichiarare un getter di proprietà come @Composable sta cambiando.

    La sintassi ora deprecata per farlo era l'annotazione della proprietà stessa:

        @Composable val someProperty: Int get() = ...
    

    La sintassi 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 deprecata precedente diventerà un errore di compilazione. (Id9197)

  • È stata aggiunta la libreria androidx.compose.material:material-ripple contenente API Ripple per consentire la creazione di componenti interattivi senza richiedere il resto della libreria Material. keepRippleIndication è stato deprecato e sostituito con keepRipple. (Ibdf11).

Correzioni di bug

  • I lambda nei modificatori di offset ora restituiscono IntOffset anziché Float. (Ic9ee5, b/174137212, b/174146755).
  • È stato eseguito il refactoring di ShaderBrush per creare lentamente un'istanza dello ShaderBrush quando sono disponibili informazioni sulle dimensioni dell'ambiente di disegno. Ciò è utile per definire i gradienti che occupano tutti i limiti di disegno di un componibile al momento della composizione, senza dover implementare implementazioni di DrawModifier personalizzate.

    API del costruttore di funzioni gradiente deprecate a favore dei metodi di fabbrica su un oggetto Gradient. (I511fc, b/173066799)

  • Modifier.focusHighlightr è deprecato. Usa invece Modifier.onFocusChanged o Modifier.onFocusEvent (I30f17, b/168511863, b/168511484)

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

  • Spostato Dp.VectorConverter, Position.VectorConverter ecc. in animation-core, che deprecato il precedente VectorConveters (If0c4b)

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

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

  • AccessibilityLabel è stata rinominata in contentDescription. accessibilityValue è stata rinominata in stateDescription. (I250f2)

  • Nuova funzione infiniteRipetiable per la creazione di una InfiniterepeatableSpec (I668e5)

  • Il comportamento di posizionamento di Menu a discesa è stato leggermente modificato in base alla specifica del materiale (I34c72, b/168594123).

  • È stato aggiunto il supporto InteractionState per i campi di testo. (I61d91)

  • È stato aggiunto Modifier.clearAndSetSemantics per cancellare la semantica dei discendenti e impostarne di nuove. (I277ca)

  • Abbiamo spostato ContentDrawScope nel modulo UI-Graphic per usare DrawScope. (Iee043, b/173832789).

Versione 1.0.0-alpha08

2 dicembre 2020

androidx.compose.material:material:1.0.0-alpha08, androidx.compose.material:material-icons-core:1.0.0-alpha08 e androidx.compose.material:material-icons-extended:1.0.0-alpha08 vengono rilasciati. La versione 1.0.0-alpha08 contiene questi commit.

Modifiche alle API

  • MaterialTheme ora imposta i colori corretti per i punti di manipolazione di selezione e lo sfondo di selezione. Le app che non includono materiali 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. È stata anche eseguita la migrazione di alcune API utilizzando children come nome del lambda finale in content, secondo le indicazioni e il controllo del lint. (Iec48e).
  • VectorAsset rinominato in ImageVector Spostato e rinominato VectorAsset in Builder per essere una classe interna di ImageVector in base alle linee guida del consiglio API. Aggiunto l'alias di tipo VectorAssetBuilder per il collegamento a ImageVector.Builder per la compatibilità. (Icfdc8)
  • ImageAsset e i relativi metodi sono stati rinominati in ImageBitmap. (Ia2d99).
  • Proprietà della semantica di base spostate nell'UI (I6f05c)
  • L'API fun RippleIndication() è stata deprecata e sostituita con rememberRippleIndication() per garantire la coerenza con altre API. (Id8e2c)
  • È stato aggiunto un parametro singeLine in BasicTextField, TextField e OutlineTextField. Imposta questo parametro su true per rendere il campo di testo una singola riga scorrevole orizzontalmente. (I57004, b/168187755)

Correzioni di bug

  • Aggiungi l'azione per la semantica Ignora (I2b706)
  • API DrawModifier spostate dal pacchetto androidx.compose.ui al pacchetto androidx.compose.ui.draw. Creato il file DrawModifier Deprecato.kt per includere i metodi typealiases/helper al fine di facilitare la migrazione dalle API deprecate alle API attuali. (Id6044, b/173834241)
  • Rinominato Modifier.draw Layer in Modifier.graphics Layer. Inoltre, le classi correlate sono state aggiornate in Graphicslayer in base al feedback dell'API. (I0bd29, b/173834241).
  • L'elemento <T> è stato rimosso dalla dichiarazione SubcomposeLayout. Puoi utilizzarla senza specificare un tipo ora. (Ib60c8).
  • Aggiunte API Modifier.scale/rotate per praticità di disegno Layer.
    • Rinominato Modifier.drawOpacity in Modifier.alpha
    • Rinominato Modifier.drawShadow in Modifier.shadow (I264ca, b/173208140)
  • Il parametro di allineamento di Box è stato rinominato in contentAllineament. (I2c957)
  • i modificatori offsetPx sono stati rinominati in offset. Ora utilizzano i parametri lambda anziché State. (Ic3021, b/173594846).
  • Sono state introdotte le API SweepGradientShader e SweepGradientBrush. (Ia22c1).
  • Aggiunto il controllo lint per i parametri di modifica nelle funzioni componibili. Questo controllo lint verifica la denominazione, il tipo restituito, il valore predefinito e l'ordine del parametro per verificare che sia coerente con le linee guida di Compose. (If493b)
  • API TextFieldValue aggiornata
    • reso di sola lettura TextFieldValue.composition
    • viene generata un'eccezione rimossa per l'intervallo di selezione non valido (I4a675, b/172239032)
  • È stato aggiunto un nuovo sovraccarico di Modifier.drawLayer(). Occorre un blocco lambda su un nuovo Graphics LayerScope in cui definisci i parametri del livello in modo da saltare la ricomposizione e il relayout quando si verifica la modifica dello stato. DrawlayerModifier è ora in fase di preparazione alla migrazione della sua logica nel metodo placeable.placeWithLayer() di LayoutModifier (I15e9f, b/173030831)
  • Gli Ambient obsoleti hanno come suffisso il nome Ambient e sono stati sostituiti con nuove proprietà con prefisso Ambient, in base ad altre linee guida relative all'API Ambient e Compose. (I33440)
  • È stato aggiunto un controllo lint per verificare che le fabbriche di modificatori utilizzino androidx.compose.ui.composed {} internamente, anziché essere contrassegnate come @Composable. (I3c4bc)
  • L'argomento semantico mergeAllDescendants è stato rinominato mergeDescendants. (Ib6250)
  • Il controllo temporale nei test (TestAnimationClock e relativi utilizzi) è ora sperimentale (I6ef86, b/171378521)
  • Rimuovi il vecchio modulo ui-test e i relativi stub (I3a7cb)
  • TextUnit.Inherit è rinominata in TextUnit.Unspecified per garantire la coerenza con le altre unità. (Ifce19).
  • L'interfaccia di Allineamento è stata aggiornata e resa funzionale. (I46a07, b/172311734).
  • L'ID è stato rinominato in layoutId per LayoutIdParentData. Il valore Misurabile.id è stato rinominato in Misurabile.layoutId. (Iadbcb, b/172449643).

Versione 1.0.0-alpha07

11 novembre 2020

androidx.compose.material:material:1.0.0-alpha07, androidx.compose.material:material-icons-core:1.0.0-alpha07 e androidx.compose.material:material-icons-extended:1.0.0-alpha07 vengono rilasciati. La versione 1.0.0-alpha07 contiene questi commit.

Modifiche alle API

  • L'enfasi è stata ritirata e sostituita con AmbientContentAlpha. AmbientContentAlpha è un'astrazione più semplice che rappresenta l'alpha dei contenuti preferiti per parte della gerarchia, in modo simile al modo in cui AmbientContentColor rappresenta il colore preferito dei contenuti. Testo e Icona ora consumano il valore corrente di AmbientContentAlpha per impostazione predefinita e puoi eseguire manualmente: color.copy(alpha = AmbientContentAlpha.current) per ottenere lo stesso effetto nei componenti. Invece di utilizzare ProvideEmphasis, puoi fornire direttamente un valore tramite AmbientContentAlpha e utilizzare i nuovi livelli predefiniti di ContentAlpha per sostituire i precedenti 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 basato su tema. Per un componente di testo di base che non utilizza il colore / lo stile di testo del tema, utilizza BasicText. (Ie6ae0)
  • Aggiunti maxLines ai campi di testo (Ib2a5b)
  • Aggiorna i campi di testo per accettare KeyboardOptions (Ida7f3)
  • La superficie ora utilizza l'elevazione assoluta (totale) per il calcolo delle sovrapposizioni di elevazione, quindi una superficie nidificata in un'altra superficie utilizzerà l'elevazione combinata per disegnare la sovrapposizione. (I7bd2b, b/171031040).

Correzioni di bug

  • captureToBitmap spostati in captureToImage. (I86385)
  • Gli elementi di base AmbientTextStyle, ProvideTextStyle e AmbientContentColor sono stati ritirati. Utilizza invece le nuove versioni disponibili nella libreria Material. Per le applicazioni non Material, dovresti invece creare un tuo sistema di progettazione per ambienti a tema che può essere utilizzato nei tuoi componenti. (I74acc, b/172067770)
  • Foundation.Text è stato ritirato e sostituito con material.Text. Per un'API di testo di base non limitata che non utilizza valori di un tema, vedi androidx.compose.foundation.BasicText. (If64cb).
  • Rinomina KeyboardOptions come ImeOptions (I82f36)
  • Spostamento di KeyboardType e ImeAction in KeyboardOptions (I910ce)
  • BaseTextField è stato ritirato. Utilizza BasicTextField. (I896eb)
  • L'annotazione sperimentaleSubcomposeLayoutApi è stata rimossa. Ora è possibile utilizzare SubcomposeLayout senza aggiungere @OptIn (I708ad)
  • FirstBaseline e LastBaseline sono stati spostati nel pacchetto androidx.compose.ui.layout (Ied2e7)
  • API Icona aggiornata in modo da acquisire Color.Non specificato come possibile colore di tinta che consente di disegnare l'asset o il disegno fornito senza ColorFilter. In precedenza, tenta di ignorare la colorazione con Colore.Non specificato potrebbe applicare un colore trasparente alla fine senza alcun rendering. (I049e2, b/171624632).
  • relativePaddingFrom è stato rinominato in paddingFrom. È stato aggiunto il modificatore paddingFromBaseline per semplificare la specifica delle distanze dai limiti del layout alle basi del testo. (I0440a, b/170633813).
  • LaunchedTask è stato rinominato in LaunchedEffect per coerenza con le API SideEffect e DisposableEffect. LaunchedEffect senza parametri per il soggetto non è consentito per incoraggiare le best practice. (Ifd3d4)
  • MeasureResult è stato rimosso da MeasureScope. (Ibf96d, b/171184002)
  • Diversi simboli relativi al layout sono stati spostati da androidx.compose.ui ad androidx.compose.layout.ui. (I0fa98, b/170475424).

Versione 1.0.0-alpha06

28 ottobre 2020

androidx.compose.material:material:1.0.0-alpha06, androidx.compose.material:material-icons-core:1.0.0-alpha06 e androidx.compose.material:material-icons-extended:1.0.0-alpha06 vengono rilasciati. La versione 1.0.0-alpha06 contiene questi commit.

Modifiche alle API

  • Il dominio androidx.compose.foundation.Icon è stato spostato in androidx.compose.material.Icon. Puoi anche usare il componente Immagine / Modifier.paint() con un pittore se non vuoi usare la libreria Material. (I9f622).
  • Aggiunge FloatingActionButtonElevation per rappresentare l'elevazione utilizzata dai FAB in diversi stati. Consulta FloatingActionButtonConstants.defaultElevation() per l'implementazione predefinita (I2d4f5)
  • Aggiunge l'interfaccia SwitchColors per rappresentare i colori utilizzati da un sensore in stati diversi. Per personalizzare questi colori, vedi SwitchConstants.defaultColors. (I93805)
  • Aggiunge le interfacce ButtonElevation e ButtonColors per rappresentare l'elevazione e i colori utilizzati dai pulsanti in stati diversi. Visualizza le funzioni predefinite in ButtonConstants per personalizzare questi parametri. (Ic5b7b)
  • Aggiunge l'interfaccia RadioButtonColors per rappresentare i colori utilizzati da un RadioButton in diversi stati. 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 diversi stati. Consulta CheckboxConstants.defaultColors() per personalizzare i colori utilizzati nei diversi stati. (I7dbdb)

Correzioni di bug

  • I componenti del materiale non impostano più l'elevazione come zIndex. Ciò significa che all'interno dello stesso elemento principale, l'elemento secondario con dimensioni di ombra più grandi non verrà disegnato sopra quello secondario automaticamente con quello più piccolo. Se hai comunque bisogno di un comportamento di questo tipo, imposta Modifier.zIndex() manualmente dove necessario (I70417, b/170623932)
  • Ritira VectorPainter in favore di promemoria per ricordareVectorPainter per indicare meglio che l'API componibile sfrutta internamente la funzionalità "ricorda" di rendere i dati persistenti in più composizioni. (Ifda43)
  • Abilita le transizioni in ComposeTestRule; rimuovi l'opzione per attivare il cursore lampeggiante da ComposeTestRule. (If0de3)
  • Aggiunta dell'opzione per la tastiera a riga singola a CoreTextField (I72e6d)
  • L'API Radius è stata rinominata CornerRadius per esprimere meglio il modo in cui viene utilizzata in Compose. È stata aggiornata la documentazione per indicare che i raggi degli angoli negativi sono fissati a zero. (I130c7, b/168762961).
  • Refactoring di DrawScope e ContentDrawScope sono interfacce anziché classi astratte.
    • È stata creata l'implementazione di CanvasDrawScope di DrawScope
    • Refactoring delle implementazioni di DrawScope per usare invece CanvasScope
    • È stato creato un elemento DrawContext per eseguire il wrapping delle dipendenze per DrawScope
    • Metodi ritirati su DrawScope (I56f5e)
  • Box è stato impostato come funzione in linea. (Ibce0c, b/155056091).

Versione 1.0.0-alpha05

14 ottobre 2020

androidx.compose.material:material:1.0.0-alpha05, androidx.compose.material:material-icons-core:1.0.0-alpha05 e androidx.compose.material:material-icons-extended:1.0.0-alpha05 vengono rilasciati. La versione 1.0.0-alpha05 contiene questi commit.

Modifiche alle API

  • I popup e le finestre di dialogo ora ereditano FLAG_SECURE dalla finestra principale. È stata anche aggiunta l'opzione per configurarla esplicitamente (I64966, b/143778148, b/143778149)
  • Per impostazione predefinita, Modifier.s wipeable ha soglie di 56.dp per gli stati al momento (Iab825, b/168610267)
  • tutti gli stati dello scaffold contrassegnati come @Stable. CassaffoldGesEnabled in ScaffoldState sono stati spostati nello stesso impaffold. (I36645, b/168297016)
  • Rimuove il tipo con valore null dai parametri lambda Scaffold. Puoi utilizzare emptyContent() per rappresentare nessun contenuto per un determinato parametro. (I2b318, b/157633857, b/158551084).
  • Depreca le API contentColor() e currentTextStyle() e le sostituisce rispettivamente con gli ambienti AmbientContentColor e AmbientTextStyle. Puoi accedere al valore corrente usando .current nella proprietà Ambient, come con qualsiasi altro Ambient. Questa modifica è stata introdotta per garantire la coerenza e evitare di avere più modi per ottenere lo stesso risultato. Inoltre, rinomina alcune proprietà Ambient per descriverne meglio lo scopo, come segue:

    • ContentColorAmbient -> 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 con tema scuro. (I5b74d)

Correzioni di bug

  • Nell'ambito della standardizzazione dei valori sentinel per le classi in linea, cambia il nome Color.Unset.Unset.Unspecified per la coerenza con altre classi in linea (I97611, b/169797763)
  • Viene introdotto TextOverflow.None. Quando l'overflow è impostato su Nessuno, il testo non gestirà più l'overflow e ne segnalerà le dimensioni effettive a LayoutNode. (I175c9, b/158830170).
  • LaunchInComposizione è stato rinominato in LaunchedTask in base alle linee guida dell'API Compose (I99a8e)
  • OnPositionedModifier è stata rinominata OnGloballyPositionedModifier e onPositioned() è stata rinominata onGloballyPositioned() (I587e8, b/169083903).

Versione 1.0.0-alpha04

1° ottobre 2020

androidx.compose.material:material:1.0.0-alpha04, androidx.compose.material:material-icons-core:1.0.0-alpha04 e androidx.compose.material:material-icons-extended:1.0.0-alpha04 vengono rilasciati. La versione 1.0.0-alpha04 contiene questi commit.

Modifiche alle API

  • Espone i parametri InteractionState nei componenti Material stateful, per consentire il sollevamento dello stato e la lettura / il controllo dello stato. (Iaca5f, b/168025711, b/167164434).
  • Modifica i parametri *color su RadioButton e TriStateCheckbox per consentire la personalizzazione completa dei colori utilizzati in ogni stato e, se lo desideri, la possibilità di modificare l'animazione dei colori tra uno stato e l'altro. Per ulteriori informazioni, vedi le nuove funzioni di colore animateDefault* in CheckboxConstants e RadioButtonConstants. (I1c532)
  • È stato cambiato il nome ricordo BackdropState per ricordareBackdropScaffoldState e è stato aggiunto un parametro aggiuntivo per il quadrante dell'orologio dell'animazione. Il parametro backdropScaffoldState di BackdropScaffold è stato rinominato in solo scaffoldState. BackdropConstants rinominata BackdropScaffoldConstants". (Ib644d).
  • È stato aggiunto il componente sperimentale BottomSheetScaffold. (Ie02f0, b/148996320).
  • È stato aggiunto il componente sperimentale ModalBottomSheetLayout. (Ic209e, b/148996320).
  • Rinomina ButtonConstants/FloatingActionButtonCosts.defaultAnimatedElevation in defaultElevation e ora restituisce un valore Dp anziché un AnimatedValue. (I5f3ed)

Correzioni di bug

  • Aggiornamento di molte API grafiche.
    • Le API di scala e trasformazione della rotazione sono state aggiornate per utilizzare un singolo parametro di offset per rappresentare la coordinata pivot invece di parametri float separati per le coordinate x/y in DrawScope e DrawTransform
    • Rimossi i metodi Rect.expandToInclude e Rect.join
    • La documentazione relativa al raggio è stata aggiornata per indicare ovale oltre che ellittica
    • È stata aggiunta la documentazione per indicare che il costruttore pubblico per la classe Radius in linea non deve essere chiamato direttamente, ma dovrebbe invece essere creato un'istanza degli oggetti Raggio tramite i rispettivi costruttori delle funzioni
    • Rimosse le API RoundRect per eseguire query su topRight, bottomRight, belowCenter e così via.
    • Rect.shift obsoleto a favore di Rect.translate
    • Rimosse le API RoundRect.grow e Rect.shrink
    • RoundRect.outerRect rinominato in Rect.boundingRect
    • Metodi RoundRect.middleRect/tallMiddleRect/wideMiddleRect e Rect.isStadium rimossi
    • Rinominato RoundRect.longestSide in RoundRect.maxDimensione
    • RoundRect.shortestSide rinominato in RoundRect.minDimensione
    • RoundRect.center modificato in una proprietà anziché una funzione
    • Il costruttore RoundRect è stato aggiornato per utilizzare le proprietà Raggio anziché i parametri singoli per i valori del raggio x/y
    • Rimosse le API per le dimensioni che presupponevano che fosse un rettangolo con origine pari a 0,0
    • È stata aggiunta un'API di distruzione a Radius
    • Migrato varie funzioni di estensione RoundRect in proprietà in proprietà
    • (I8f5c7, b/168762961).
  • Foundation.Box è stata deprecata. Utilizza Foundation.layout.Box. (Ie5950, b/167680279)
  • Lo stack è stato rinominato in Box. La casella già esistente verrà ritirata a favore di quella nuova in Composer.foundation.layout. Il comportamento del nuovo Box è quello di impilare gli elementi secondari uno sopra un altro quando sono presenti più elementi secondari. Questo è diverso dal precedente riquadro, che si comportava in modo simile a quello di una colonna. (I94893, b/167680279)
  • I parametri per la decorazione della casella sono stati ritirati. Se vuoi includere decorazioni/spaziature sulla scatola, usa i modificatori (Modifier.background, Modifier.Border, Modifier.padding) (Ibae92, b/167680279)
  • Aggiornamento di molte API grafiche.
    • Sono state aggiornate le API DrawScope con metodi di trasformazione basati sull'ambito per indicare che la trasformazione viene applicata solo all'interno del callback e rimossa dopo che il callback è stato richiamato.
    • La documentazione di clipPath è stata aggiornata per fare riferimento al percorso invece che al rettangolo arrotondato
    • Spaziatura fissa nella documentazione per il parametro corretto in clipPath
    • Rinominato DrawScope.drawCanvas inDrawScope.drawCanvas e rimosso il parametro di dimensione
    • Parametri dx/dy rinominati nel metodo inset in orizzontale e verticale
    • Aggiunto un sovraccarico che fornisce lo stesso valore di inserimento a tutti e 4 i limiti
    • È stata rimossa la documentazione sul metodo inset che indica che il riquadro sarebbe applicato a tutti e 4 i lati
    • Documentazione aggiornata per la classe Rect
    • Commenti aggiornati sui parametri rettangolari in modo che corrispondano allo stile kdoc
    • Rimossi Rect.join e Rect.expandToInclude
    • Sovraccarico creato per Rect.translate(offset) e deprecato Rect.shift
    • (If086a, b/167737376).
  • Abbiamo impedito le importazioni statiche dei contenuti degli ambiti del layout (ad es. allineatoWithSiblings in RowScope). Usa invece l'alternativa con ambito esplicito: with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }. (I216be, b/166760797)

Versione 1.0.0-alpha03

16 settembre 2020

androidx.compose.material:material:1.0.0-alpha03, androidx.compose.material:material-icons-core:1.0.0-alpha03 e androidx.compose.material:material-icons-extended:1.0.0-alpha03 vengono rilasciati. La versione 1.0.0-alpha03 contiene questi commit.

Modifiche alle API

  • Rinomina il parametro onSelect di BottomNavigationItem in onClick (I91925, b/161809324)
  • Aggiunge il parametro InteractionState a BottomNavigatorItem e Tab, consentendo di sollevare questo stato e di modificare l'aspetto del componente in stati diversi. (Ia3e9e, b/168025711).
  • Rimuove i parametri disabledBackgroundColor e disabledContentColor dai pulsanti. Utilizza invece le nuove funzioni colore predefinite all'interno di ButtonConstants. Se imposti già contentColor/ backgroundColor in modo esplicito, dovresti usare queste funzioni predefinite e personalizzare alcuni o tutti i parametri per evitare di sovrascrivere il colore per entrambi gli stati Attivato/Disattivato. (If9b52)
  • Il colore di sfondo del campo di testo non applica più implicitamente la trasparenza alpha. Verrà invece applicato direttamente qualsiasi colore fornito tramite il parametro backgroundColor. (Iecee9, b/167951441)
  • InnerPadding è stato rinominato in PaddingValues. (I195f1, b/167389171).
  • I parametri resistanceFactorAtMin e resistanceFactorAtMax in Modifier.swipeable sono stati sostituiti con un singolo parametro di resistenza. Un nuovo metodo defaultResistanceConfig è stato aggiunto a SwipeableConstants. (I54238)
  • Aggiunge il supporto animato dell'elevazione stateful per Button e FloatingActionButton. L'elevazione ora si anima tra lo stato predefinito e quello premuto. Per personalizzare l'elevazione tra gli stati, utilizza ButtonConstants.defaultAnimatedElevation() e FloatingActionButtonConstants.defaultAnimatedElevation() anziché impostare un valore Dp fisso in tutti i casi. (I37925)
  • L'etichetta è diventata un parametro facoltativo all'interno di TextField e OutlineTextField (I267f6, b/162234081)

Correzioni di bug

  • Le funzioni di test globali come onNode o waitForIdle sono ora ritirate. Esegui la migrazione alle nuove controparti definite su ComposeTestRule (I7f45a)
  • I DpConstraint e le API che lo utilizzano sono stati deprecati. (I90cdb, b/167389835).
  • I parametri minwidth e maxwidth di widthIn sono stati rinominati min e max. Analogamente per preferredwidthIn, altezzaIn, preferredHeightIn. (I0e5e1, b/167389544).
  • Rimuovi le azioni di semantica avanti/indietro. Sono stati aggiunti dei passaggi in AccessibilityRangeInfo. (Ia47b0)
  • Gli usi della gravità sono stati costantemente rinominati per allineare o allineare nelle API di layout. (I2421a, b/164077038).
  • Sono stati aggiunti onNode e altri metodi globali su ComposeTestRule perché quelli globali attuali verranno ritirati. (Ieae36).
  • Elementi 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 vengono rilasciati. La versione 1.0.0-alpha02 contiene questi commit.

Modifiche alle API

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

Correzioni di bug

  • Matrix4 è stato sostituito con Matrix. Tutte le altre parti del pacchetto vectormath sono state rimosse. (Ibd665, b/160140398).

Versione 1.0.0-alpha01

26 agosto 2020

androidx.compose.material:material:1.0.0-alpha01, androidx.compose.material:material-icons-core:1.0.0-alpha01 e androidx.compose.material:material-icons-extended:1.0.0-alpha01 vengono rilasciati. La versione 1.0.0-alpha01 contiene questi commit.

Problema noto

= Il primo carattere in un materiale TextField non può essere rimosso utilizzando uno spazio Backspace (b/165956313)

Versione 0.1.0-dev

Versione 0.1.0-dev17

19 agosto 2020

androidx.compose.material:material:0.1.0-dev17, androidx.compose.material:material-icons-core:0.1.0-dev17 e androidx.compose.material:material-icons-extended:0.1.0-dev17 vengono rilasciati. La versione 0.1.0-dev17 contiene questi commit.

Modifiche alle API

  • Gli elementi RadioGroup e RadioGroupItems deprecati in precedenza sono stati rimossi. Utilizza invece Row e RadioBotton (I381b7, b/163806637)
  • Rimossi i callback onFocusChanged da TextField. Al suo posto utilizza Modifier.focusObservationr. (I51089, b/161297615)
  • Modifier.drawBorder è stato ritirato. Usa invece Modifier.Border. La classe dei dati di confine è stata sostituita da BorderStroke (I4257d, b/158160576)
  • Sono state rinominate alcune proprietà in SwipeableState: SwipeTarget -> targetValue, SwipeProgress -> progresso, scorrimentoDirection -> direzione. È stata aggiunta una funzione refreshableState per la creazione di SwipeableState. (I2fc9c, b/163129614, b/163132293).
  • È stato aggiunto il supporto dello snackbar con il posizionamento e la corretta coda. Puoi accedervi tramite la funzione di sospensione di SnackbarHostState.showSnackbar. Inoltre:
    • I componenti SnackbarHost sono stati aggiunti. Ospita gli Snackbar in base allo stato ed è responsabile della transizione tra le snackbar.
    • SnackbarHostState è stato aggiunto per consentire il controllo su snackbar e snackbar host e per disaccoppiare lo stato da ScaffoldState. Puoi accedere a questo stato anche tramite scaffoldState.snackbarHostState.
    • È stato aggiunto l'overload di snackbar per supportare l'interfaccia comune tra snackbarHostState e le snackbar stesse. (I79aaa)
  • Aggiunge il parametro attivato a IconButton e riordina i parametri in IconToggleButton (I0a941, b/161809385, b/161807956)
  • La versione ListItem con API basata su stringhe è stata rimossa. Utilizza la versione dello slot. (Ib8f57, b/161804681).
  • Rimosso il componente FilledTextField obsoleto. Al suo posto, utilizza TextField per ottenere l'implementazione di Material Design del campo di testo compilato. (I5e889).
  • AlertDialog ora utilizza FlowRow per i pulsanti (I00ec1, b/161809319, b/143682374)
  • Sono stati aggiunti parametri in Modifier.sScorriable per modificare la quantità di resistenza quando scorri oltre i limiti. Parametri valore [min/max]rimossi. (I93d98)
  • È stato aggiunto il parametro backgroundColor a LinearProgressIndicator e è stato rimosso la spaziatura interna interna da CircolareProgressIndicator. Sono stati aggiunti nuovi valori ProgressIndicatorCosts.DefaultProgressAnimationSpec che possono essere utilizzati come AnimationSpec predefinita durante l'animazione dell'avanzamento tra i valori (If38b5, b/161809914, b/161804677)
  • Il parametro facoltativo velocityThreshold è stato aggiunto a Modifier.scrawlable. (I698ba)
  • belowBarSize, fabSize e altri e non più disponibile in ScaffoldState. Usa Modifier.onPosition sul componente di cui vorresti conoscere la dimensione. I riquadri di contentColor e Modifier sono stati aggiunti a Scaffold (Ic6f7b, b/161811485, b/157174382)
  • Rinomina e riordina alcuni parametri nella scheda per garantire la coerenza con altre API (Ia2d12, b/161807532)
  • Divide TabRow in TabRow e scrollableTabRow, rimuovendo isscrollable da TabRow. Espone inoltre edgePadding in scrollableTabRow, che consente di controllare lo spazio libero prima / dopo le schede. (I583e8, b/161809544).
  • L'oggetto TabRow è stato rimosso e lo ha sostituito con TabCosts. TabRow.TabPosition è stato spostato al livello superiore (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 delle soglie in Modifier.s wipeable è stato modificato; ora prende una coppia di stati (di tipo T) e restituisce la soglia tra di essi sotto forma di ThresholdConfig. Un parametro ignoreThresholds è stato aggiunto a ScorriToDismiss, che è un lambda (DismissDirection) -> ThresholdConfig. (Ie1080)
  • Il cursore ha più colori per una personalizzazione granulare (I73e64, b/161810475)
  • Il parametro colore della scheda è stato rinominato backgroundColor (I01fc1, b/161809546)
  • Ora lo Snackbar ha colori di sfondo e dei contenuti personalizzabili (I238f2, b/161804381)
  • I parametri di personalizzazione di modificatore, backgroundColor, contentColor e scrimColor sono stati aggiunti a cassetti (I23655, b/161804378)
  • Per chiarezza, l'elemento componibile state { ... } è stato ritirato a favore di chiamate esplicite a remember { mutableStateOf(...) }. In questo modo si riduce la superficie API complessiva e il numero di concetti per la gestione dello stato e corrisponde al pattern by mutableStateOf() per la delega delle proprietà di classe. (Ia5727)
  • Il parametro di spaziatura interna del pulsante è stato rinominato in contentPadding (Id252e, b/161809394)
  • Aggiungi un componente materiale sperimentale Scorri per ignorare. (I129e5).

Correzioni di bug

  • onChildPositioned e OnChildPositionedModifier rimosse. Gli sviluppatori dovrebbero usare invece onPositioned e OnPositionedModifier nel layout secondario. (I4522e, b/162109766).
  • È stato aggiunto il comando lambda mergePolicy a SemanticsPropertyKey. Può essere utilizzato per definire un criterio personalizzato per l'unione della semantica mergeAllDescendants. Il criterio predefinito prevede l'utilizzo del valore padre se già presente, altrimenti il valore figlio. (Iaf6c4, b/161979921).
  • IntSize ora è una classe in linea (I2bf42)
  • PlacementScope.placeAbsolute() è stato rinominato in PlacementScope.place(), mentre il precedente PlacementScope.place() è stato rinominato in PlacementScope.placeRelative(). Di conseguenza, il metodo PlacementScope.place() non esegue più automaticamente il mirroring della posizione in contesti da destra a sinistra. Se vuoi, utilizza PlacementScope.placeRelative(). (I873ac, b/162916675)
  • PxBounds deprecati a favore del rettangolo Sono stati aggiornati tutti gli utilizzi di PxBounds con rettangolo e sono stati aggiunti i valori deprecati/sostituiti corretti con annotazioni per facilitare la migrazione. (I37038, b/162627058)
  • Ridenominazione di RRect in RoundRect per adattarsi meglio ai pattern di denominazione della composizione Creazione di costruttori di funzioni simili a RRect e costruttori di funzioni RRect deprecati (I5d325)

Versione 0.1.0-dev16

5 agosto 2020

androidx.compose.material:material:0.1.0-dev16, androidx.compose.material:material-icons-core:0.1.0-dev16 e androidx.compose.material:material-icons-extended:0.1.0-dev16 vengono rilasciati. La versione 0.1.0-dev16 contiene questi commit.

Modifiche alle API

  • Colori è ora una classe finale anziché un'interfaccia. Invece di 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).
  • Il nome ColorPalette è stato cambiato in Colori per migliorare la mappatura del sistema di colori Material e rimuovere la confusione perché ColorPalette è un oggetto di tema "generico" invece di essere 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 BottomNavigatorItem in label, onSelected a onSelect, activeColor a selectedContentColor e inactiveColor a unselectedContentColor e aggiorna l'ordine dei parametri in base alle linee guida. (Icb605, b/161809324)
  • Modifier.stateDraggable è stato completamente rielaborato e ridenominato Modifier.s wipeable. È stata introdotta una nuova classe SwipeableState e DrawerState e BottomDrawerState sono state sottoposte a refactoring per ereditarle. [Modal/Bottom]DrawerLayout non accetta più un parametro onStateChange. (I72332, b/148023068)
  • Il pacchetto Foundation.shape.corner è appiattito a Foundation.share (I46491, b/161887429)
  • È stata aggiunta l'annotazione SperimentaleMaterialApi. RippleTheme contrassegnato come sperimentale (Ic5fa0, b/161784800)
  • Material FilledTextField è stato rinominato TextField e il Foundational TextField è stato rinominato BaseTextField per rendere più semplice l'individuazione e l'utilizzo dell'API desiderata (Ia6242, b/155482676)

Correzioni di bug

  • L'API OnChildPositioned è stata ritirata. Usa invece OnPositioned per il riquadro secondario. (I87f95, b/162109766).
  • Risolvi i problemi generici dell'API (I077bc)
    1. Rimuovi l'interfaccia OffsetBase inutilizzata
    2. Allinea le classi Offset e IntOffset per avere una superficie API coerente
    3. Rinomina IntOffset.Origin in IntOffset.Zero per essere coerente con l'API Offset
    4. Spostamento del metodo nativeCanvas dall'interfaccia Canvas per supportare i consumatori nella creazione
    5. È stata creata la classe SvuotaCanvas dello stub per refactoring DrawScope in modo che sia un parametro non null anziché lateinit e garantire che il campo non sia nullo
    6. Enum ClipOp rinominate in Pascal Case
    7. Le enumerazioni del campo Qualità dei filtri sono state rinominate in Pascal Case
    8. Enumerazioni Strokejoin rinominate in Pascal Case
    9. Le enumerazioni di PointMode sono state rinominate in Pascal Case
    10. Le enumerazioni PaintingStyle rinominate in Pascal Case sono state rinominate
    11. Le enumerazioni PathFillType rinominate in Pascal Case sono state rinominate
    12. Le enumerazioni di StrokeCap rinominate in Pascal Case sono state rinominate
    13. L'implementazione di DrawCache è stata aggiornata per non usare più i parametri lateinit
    14. Aggiornamento di DrawScope per non usare più la delega lazy per i parametri interni di FillPaint e StrikePaint
    15. Aggiornata l'immagine componibile per evitare l'uso di Box con meno overhead
    16. Classe Outline aggiornata in modo che abbia annotazioni @Immutable
    17. PathNode aggiornato per avere annotazioni @Immutable per ogni istruzione del percorso
    18. La sottocomposizione vettoriale è stata aggiornata per rimuovere i controlli condizionali ridondanti per l'uguaglianza, poiché la composizione li gestisce già
    19. Metodi del costruttore companion rettangoli deprecati a favore di costruttori di funzioni
    20. Sono stati aggiornati i costruttori di funzioni e le classi Brush con le API @Immutable e @Stable
    21. È stata aggiornata l'enumerazione di VertexMode in PascalCase
    22. Aggiornamento del metodo selectPaint di DrawScope per sovrascrivere in modo condizionale i parametri del tratto nel dipinto se sono
    23. Dimensione aggiornata per aggiungere l'API distruttiva, rinomina UnspecifiedSize in Non specificato e rimosso i metodi inutilizzati
  • Sposta la finestra di dialogo nell'UI (I47fa6)
  • SemanticsNodeInteraction.performPartialGesture rimosso. Usa invece SemanticsNodeInteraction.performGesture. (Id9b62)
  • Rinominato SemanticsNodeInteraction.getBoundsInRoot() in SemanticsNodeInteraction.getUnclippedBoundsInRoot() (Icafdf, b/161336532)
  • Le API per il supporto da destra a sinistra sono state aggiornate. È stato aggiunto LayoutDirectionAmbient, che può essere utilizzato per leggere e modificare la direzione del layout. Modifier.rtl e Modifier.ltr sono stati rimossi. (I080b3)
  • Modifier.deternimateProgress è stato rinominato Modifier.progressSemantics (I9c0b4)
  • Aggiorna material-icon-extended con le icone più recenti aggiunte a Material.io/icon (I4b1d3)
  • È necessario che il tipo T sia specificato in modo esplicito per TransactionDefinition. (I1aded)
  • Modifier.plus è stato ritirato. Usa invece Modifier.then. "Quindi" ha un segnale di ordinamento più forte, mentre vieta di digitare Modifier.padding().background() + anotherModifier, il che spezza la catena e più difficile da leggere (Iedd58, b/161529964)
  • Il nome AndroidComposeTestRule è stato rinominato in createAndroidComposeRule. (I70aaf)
  • Aggiungi isFocused() e isNotFocused() SemanticsMatcher. (I0b760)
  • È stato rimosso BaseGestureScope.globalBounds, che non dovrebbe essere utilizzato dai test. Usa invece le coordinate locali del nodo con cui stai interagendo. (Ie9b08)
  • Posizione popup corretta sui display sagomati. (Idd7dd)
  • Modifier.drawBackground è stato rinominato Modifier.background (I13677)

Versione 0.1.0-dev15

22 luglio 2020

androidx.compose.material:material:0.1.0-dev15, androidx.compose.material:material-icons-core:0.1.0-dev15 e androidx.compose.material:material-icons-extended:0.1.0-dev15 vengono rilasciati. La versione 0.1.0-dev15 contiene questi commit.

Aggiornamento delle dipendenze

  • Per utilizzare la versione 0.1.0-dev15 di Compose, devi aggiornare le dipendenze in base ai nuovi snippet di codice mostrati sopra in Dichiarazione delle dipendenze.

Modifiche alle API

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

    Giustificazione

    La motivazione include, a titolo esemplificativo:

    • Riduce l'area della superficie delle API e i concetti che dobbiamo insegnare
    • Si allinea maggiormente con altri toolkit simili (Swift UI, React, Flutter)
    • Decisione reversibile. Possiamo sempre ripristinare @Model in un secondo momento.
    • Rimuove l'uso eccessivo e le domande difficili sulla configurazione di @Model in quanto dobbiamo gestire
    • @Model classi di dati, uguale, hashcode e così via.
    • Come posso avere alcune proprietà "osservate" e altre no?
    • Come posso specificare l'uguaglianza strutturale e referenziale da utilizzare nell'osservazione?
    • Riduce la "magia" del sistema. Diminuirà la probabilità che un utente supponga che un sistema sia più intelligente di quello che è (ad esempio, sapere come distinguere un elenco)
    • Rende più intuitiva la granularità dell'osservazione.
    • Migliora il refactoring della variabile -> proprietà nella classe
    • Potenzialmente, offre la possibilità di eseguire ottimizzazioni manuali specifiche per lo stato
    • Si allinea più da vicino con il resto dell'ecosistema e riduce l'ambiguità nei confronti di uno stato immutabile o di "adottare uno stato mutabile" a noi

    Note sulla migrazione

    Quasi tutti gli utilizzi esistenti di @Model si trasformano in modo abbastanza banale in uno dei due modi seguenti. L'esempio seguente ha una classe @Model con due proprietà solo a fini di esempio e viene utilizzata in un componibile.

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

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

    Questo approccio è reso più semplice con le classi di dati di Kotlin. Essenzialmente, trasforma tutte le precedenti proprietà var nelle proprietà val di una classe di dati, quindi utilizza state anziché remember e assegna il valore dello stato alle copie clonate dell'originale usando il metodo di convenienza copy(...) della classe dei dati.

    È importante notare che questo approccio funziona solo quando le uniche modifiche a quella classe sono state apportate nello stesso ambito in cui è stata creata l'istanza State. Se la classe sta mutando internamente al di fuori dell'ambito di utilizzo e ti basi sull'osservazione di ciò, l'approccio successivo è quello da utilizzare.

    data class Position(
     val x: Int,
     val y: Int
    )
    
    @Composable fun Example() {
     var p by state { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p = p.copy(x=it) }
       onYChange={ p = p.copy(y=it) }
     )
    }
    

    Alternativa 2: utilizza mutableStateOf e delegati della proprietà

    Questo approccio è reso più semplice dai delegati alle proprietà di Kotlin e dall'API mutableStateOf che ti consente di creare istanze MutableState al di fuori della composizione. In sostanza, sostituisci tutte le proprietà var della classe originale con proprietà var con mutableStateOf come delegato della proprietà. Questo presenta il vantaggio che l'utilizzo della classe non cambierà affatto, ma solo la sua implementazione interna. Tuttavia, il comportamento non è completamente identico all'esempio originale, poiché ora ogni proprietà è osservata/iscritta singolarmente, quindi le ricomposizioni che vedi dopo questo refactoring potrebbero essere più ristrette (aspetto positivo).

    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/73}14, 143263b/743263)

  • Callback onFocusChange nei campi di testo rinominati onFocusChanged (Ida4a1)

  • Aggiunto il parametro delle soglie in stateTrascinagable per specificare le soglie tra gli ancoraggi. Utilizzava per impostare una soglia di 56 dp nel riquadro a scomparsa inferiore. Anche BottomDrawerLayout ora utilizza un'enumerazione BottomDrawerState separata. (I533fa)

  • Rimuove il file Modifier.ripple deprecato in precedenza. Clickable ora utilizza Ripple come indicazione predefinita (se hai impostato un valore MaterialTheme {} nella tua applicazione), quindi nella maggior parte dei casi puoi semplicemente utilizzare l'indicatore cliccabile e ottenere senza costi l'indicazione dell'ondulazione. Se hai bisogno di personalizzare il parametro di colore / dimensione / parametro per l'onda, puoi creare manualmente un valore RippleIndication e passarlo a cliccabile come parametro di indicazione. (I663b2, b/155375067)

  • Sostituzione deprecata dell'elemento componibile FilledTextField (I7f8f8)

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

  • L'area dei contenuti del pulsante ora si comporta come una riga (utile quando è necessario avere un'icona con un testo, consulta gli esempi su Pulsante come scriverlo) (I0ff10, b/158677863)

  • RadioGroup e RadioGroupItem sono stati deprecati. Utilizza Box con Modifier.selectable, Row and Column per definire in modo adeguato le scelte relative ai pulsanti radio (I7f5cf, b/149528535)

  • Campo di testo Materiale con contorno aggiunto (I1a518)

  • androidx.ui.foundation.TextFieldValue e androidx.ui.input.EditorValue sono deprecati. Anche i componibili TextField, FilledTextField e CoreTextField che utilizzano questo tipo sono deprecati. Utilizza invece androidx.ui.input.TextFieldValue (I4066d, b/155211005)

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

  • È stato sostituito l'utilizzo di IntPx con l'opzione IntPxPosition sostituita con IntOffset. IntPxSize sostituito con IntSize. (Ib7b44).

  • Per consolidare il numero di classi utilizzate per rappresentare le informazioni sulle dimensioni, standardizza l'utilizzo della classe size anziché di PxSize. Ciò offre i vantaggi di una classe in linea di utilizzare una classe long per comprimere 2 valori in virgola mobile per rappresentare la larghezza e l'altezza rappresentate come valori in virgola mobile. (Ic0191)

  • Depreca Modifier.ripple. Clickable ora utilizza Ripple come indicazione predefinita (se hai impostato un valore MaterialTheme {} nella tua applicazione), quindi nella maggior parte dei casi puoi semplicemente utilizzare l'indicatore cliccabile e ottenere senza costi l'indicazione dell'ondulazione. Se hai bisogno di personalizzare il parametro di colore / dimensione / parametro per l'onda, puoi creare manualmente un valore RippleIndication e passarlo a cliccabile come parametro di indicazione. (I101cd, b/155375067).

  • L'API Scaffold è stata rielaborata: pochi parametri hanno cambiato nome e ne sono stati aggiunti di nuovi per una migliore personalizzazione. Aggiunta del getter alle dimensioni delle query di Fab, TopBar e BottomBar (I0e7ce)

  • È stato aggiunto il componente Menu a discesa in ui-material, un'implementazione del menu Material Design. (I9bb3d).

  • Consenti di mostrare/nascondere manualmente la tastiera software utilizzando SoftwareKeyboardController (Ifb9d6, b/155427736)

  • Modifier.indication è stata aggiunta al pacchetto di base. Utilizzala per mostrare indicazioni di pressione/trascina o altre indicazioni sugli elementi con cui è possibile interagire personalizzati (I8425f, b/155287131).

  • ha consolidato le implementazioni di CanvasScope, quindi ora sono disponibili solo DrawScope e ContentDrawScope rinominata CanvasScope in DrawScope. Aggiornamento di DrawScope per implementare l'interfaccia Density e fornire LayoutDirection. La sottoclasse DrawScope eliminata in ContentDrawScope Painter e PainterModifier è stata aggiornata in modo da non mantenere più una proprietà RTL, in quanto DrawScope lo fornisce già senza fornirla manualmente (I1798e)

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

  • I pulsanti disattivati ora seguono visivamente la specifica di Material Design (I47dcb, b/155076924)

  • FilledTextField ottiene azioni ime, trasformazione visiva e tipo di tastiera (I1f9cf, b/155075201)

  • Aggiunge il parametro trattoLarghezza a CircolareProgressIndicator 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 dimensione. (Icea16, b/154919081).

  • Aggiunge il parametro trattoLarghezza a CircolareProgressIndicator 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 dimensione. (Icea16, b/154919081).

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

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

  • Sostituiti tutti gli utilizzi di colori con valori null nell'API con valori non null e utilizza Color.Unset anziché null (Iabaa7)

  • La denominazione di EdgeInset è stata rinominata InnerPadding. Il parametro innerPadding di Material Buttons è stato rinominato in paddding. (I66165)

  • Ora il dispositivo di scorrimento è stateless. Gli utenti dovranno passare e aggiornare lo stato autonomamente, come per qualsiasi altro controllo. (Ia00aa).

  • StaticDrawer è stato rimosso. Se ti serve, utilizza Box con la larghezza specificata il materiale (I244a7)

  • Aggiunta l'implementazione di Material Design del campo di testo riempito (Ic75cd)

  • Parametro di modifica aggiunto a ListItem e parametri riordinati per promuovere il corpo lambda finale (I66e21)

  • Aggiunge il parametro del costruttore defaultFontFamily a Typography, consentendo di specificare la famiglia di caratteri predefinita che verrà utilizzata per tutti gli stili TextStyle forniti che non hanno un set di famiglia. (I89d07)

  • Sono state rimosse temporaneamente le tabelle di dati Material dalla piattaforma API. (Iaea61).

  • Parametri componibili rinominati in Divider componibile (Ic4373)

  • minori (Ia6d19)

  • Rimuove MaterialTheme.emphasisLevels, utilizza invece EmphasisAmbient.current per recuperare i livelli di enfasi (Ib5e40)

  • Il sistema di temi delle forme viene aggiornato in base alle specifiche di Material Design. Ora puoi fornire forme piccole, medie e grandi da utilizzare per la maggior parte dei componenti (Ifb4d1)

  • Sono state modificate le API MaterialTheme, ad esempio MaterialTheme.colors() e MaterialTheme.typography(), che dovevano essere proprietà anziché funzioni. Rimuovi le parentesi dalle chiamate esistenti. Non è previsto alcun cambiamento di comportamento. (I3565a)

  • Abbiamo eseguito il refactoring delle API FloatingActionButton per accettare lambda componibili invece delle primitive. Consulta esempi aggiornati per informazioni sull'utilizzo. (I00622)

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

  • Onde è ora un modificatore. Anche se l'opzione Cliccabile non è stata ancora convertita, 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)

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

  • È stato rinominato ImageAsset per distinguere meglio la differenza tra i dati dell'immagine e l'imminente formato componibile di immagini utilizzato per partecipare al layout e disegnare contenuti. _Body:Created metodo di estensione su android.graphics.Bitmap, Bitmap.asImageAsset(), per creare un'istanza di un ImageAsset utile per combinare lo sviluppo di app Android tradizionali con il framework di composizione (Id5bbd)

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

  • Refactoring delle API Tab per accettare text e icon lambda, (Ia057e)

  • Aggiunto il componente BottomNavigator, consulta la documentazione e gli esempi per informazioni sull'utilizzo (I731a0)

  • Aggiunti Icon, IconButton e IconToggleButton, rimuovendo AppBarIcon. Puoi sostituire direttamente gli utilizzi esistenti di AppBarIcon con IconButton, che ora avranno il touch target corretto. Consulta gli esempi per informazioni sull'utilizzo e vedi le icone per le icone material fornite che puoi utilizzare direttamente con questi componenti. (I96849)

  • Sostituire il valore ButtonStyle con funzioni distinte e rimuovere il sovraccarico 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à di posizione. La proprietà "position" non ha senso quando si considerano i modificatori di layout, la rotazione o la scalabilità. Invece, gli sviluppatori dovrebbero usare parentCoordinates e childToLocal() per calcolare la trasformazione da LayoutCoordinate a un altro.

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

  • Interruzione delle modifiche all'API Ambient. Per informazioni dettagliate, consulta la documentazione relativa al log e a Ambient<T> (I4c7ee, b/143769776)

  • Il componente materiale dell'impalcatura è stato aggiunto. Attrezzature per impalcature (I7731b)

  • DrawBorder sostituito a favore del modificatore di bordo (Id335a)

Correzioni di bug

  • FocusModifier è stato ritirato a favore di Modifier.focus, Modifier.focusRequester, Modifier.focusObservationr. FocusState e FocusDetailsState sono deprecati a favore di FocusState2 (I46919, b/160822875, b/160922136)
  • VerticalScorrier e HoriziontalScorrier sono stati ritirati. Utilizza scrollableColumn e scrollableRow per usufruire di un'esperienza integrata con il comportamento e i parametri di colonne/riga oppure con Modifier.verticalscroll e Modifier.Horizontalscroll per il tuo elemento. Allo stesso modo, scrollerPosition è stato ritirato a favore di scrollState" (I400ce, b/157225838, b/149460415, b/154105299)
  • Le API Modifier.draggable e Modifier.scrollable sono state rielaborate. È stata rimossa la direzione di trascinamento a favore dell'orientamento. Lo stato richiesto per l'opzione Scorribile è stato semplificato. scrollableState è stato rinominato in scrollableController (Iab63c, b/149460415)
  • runOnIdleCompose rinominato in runOnIdle (I83607)
  • Le proprietà della semantica a valore singolo ora utilizzano uno stile di chiamata. Ad esempio, 'semantics {Hidden = true }" è ora 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 onNodeXYZ. Tutte le API doXYZ sono state rinominate performXYZ. (I7f164).
  • L'API Transizione è stata modificata in modo da restituire uno stato Transizione Stato invece di passare il valore Transizione Stato ai figli. Questo rende l'API più coerente con le API animete(). (I24e38).
  • È stata aggiunta una classe di unità IntBounds, che rappresenta i limiti di pixel di numeri interi dal layout. L'API di PopupPositionProvider è stata aggiornata in modo da utilizzarla. (I0d8d0, b/159596546).
  • È stato aggiunto un nuovo flag facoltativo useUnmergedTree ai programmi di ricerca di test. (I2ce48).
  • Rimosse le API obsolete per i test delle dimensioni. (Iba0a0).
  • È stata rimossa la classe in linea Shader che ha aggregato la classe NativeShader e la classe è stata rinominata NativeShader in Shader. La classe incorporata Shader con wrapping non aggiungeva nulla di valore alla piattaforma API ed era una classe in linea, quindi usa direttamente la classe NativeShader. (I25e4d).
  • Popup, finestre di dialogo e menu ora ereditano il tema contestuale del MaterialTheme (Ia3665, b/156527485)
  • Il menu a discesa Materiale è ora scorrevole. (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)
  • Usa AnimationSpec invece di AnimationBuilder nelle API di primo livello per chiarire il concetto di specifica dell'animazione statica -Migliora la transizione DSL rimuovendo il requisito lambda per creare AnimationSpecs come tween, spring. ma prendono direttamente i parametri del costruttore. - Migliorare la facilità d'uso complessiva di AnimationSpec aprendo i costruttori invece di affidarsi ai costruttori -Modificare la durata e il ritardo di KeyFrames e Tween to Int. Ciò consente di eliminare cast di tipi non necessari e il sovraccarico del metodo (per il supporto sia di Long che di Int). (Ica0b4).
  • Ora l'interruttore viene visualizzato con 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 riga di allineamento restituite da Placeable#get(ExactmentLine) sono ora non null. Se manca la linea di allineamento oggetto della query, verrà restituito Guidelines.Unspecified. (I896c5, b/158134875)
  • La classe Raggio è stata sottoposta a refactoring in modo che sia in linea. Sono stati rimossi i metodi di creazione companion a favore del costruttore di funzioni con parametro predefinito per fare in modo che il raggio sull'asse y corrisponda a quello del parametro obbligatorio del raggio dell'asse x.

    È stato aggiornato DrawScope.drawRoundRect per utilizzare un singolo parametro Radius anziché due valori mobili separati per il raggio lungo l'asse x e y (I46d1b).

  • Per consolidare il numero di classi utilizzate per rappresentare le informazioni di posizionamento, standardizza l'utilizzo della classe Offset anziché di PxPosition. Ciò offre i vantaggi di una classe in linea di sfruttare una long per comprimere 2 valori in virgola mobile per rappresentare gli offset x e y rappresentati come valori in virgola mobile. (I3ad98)

  • È stato sostituito l'uso della classe Px in varie classi di composizione nell'ambito dell'ampio sforzo di refactoring, che prevedeva l'uso solo di DP e di tipi primitivi per i parametri pixel. Classe Px eliminata completamente (I3ff33)

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

  • Sostituito l'uso della classe Px in varie classi di composizione nell'ambito del grande sforzo di refactoring, basato solo su Dp, e sui tipi primitivi per i parametri pixel (I086f4)

  • Sostituito l'utilizzo della classe Px in varie classi di composizione nell'ambito del grande impegno di refactoring, basato solo su DP e tipi primitivi per i parametri pixel (Id3434)

  • Sostituito l'utilizzo della classe Px in varie classi di composizione nell'ambito del grande sforzo di refactoring, basato solo su Dp, e sui tipi primitivi per i parametri pixel (I97a5a)

  • È stato risolto il problema di mancato richiamo di YAML per DropdonMenuItems. (I3998b, b/157673259)

  • L'API MutuallyEsclusivaSetItem è stata ritirata. Utilizza Modifier.selectable. (I02b47, b/157642842).

  • Il tag TestTag è stato ritirato. Al suo posto, utilizza Modifier.testTag. (If5110, b/157173105)

  • Il cursore di TextField ha un'animazione lampeggiante (Id10a7)

  • Sostituito l'uso della classe Px in varie classi di composizione nell'ambito del grande impegno di refactoring, basato solo su Dp, e sui tipi primitivi per i parametri pixel (I19d02)

  • VerticalScorrier ora fornisce Colonna fin dall'inizio. HorizontalSlideer ora offre Row per impostazione predefinita. (Ieca5d, b/157020670).

  • Sostituito l'uso della classe Px in varie classi di composizione nell'ambito del grande sforzo di refactoring, basato solo su Dp, e sui tipi primitivi per i parametri pixel (Iede0b)

  • Modifier.semantics non è stato deprecato per consentire l'utilizzo di componenti di alto livello. (I4cfdc)

  • L'API dei modificatori Drawlayer è stata modificata: outlineShape rinominata in shape e il valore predefinito RettangoloShape ora non è null; clipToOutline rinominato in clip; clipToBounds rimosso perché è uguale a clip == true con RettangoloShape (I7ef11, b/155075735)

  • Sono state aggiornate le API di composizione di livello superiore che espongono CanvasScope per esporre CanvasScope. In questo modo, i consumatori non dovranno più gestire i propri oggetti Paint. I consumatori che devono comunque accedere a Canvas possono utilizzare il metodo dell'estensione disegnoCanvas, che offre un callback per inviare i comandi di disegno con Canvas sottostante. (I80afd)

  • L'elemento componibile allineatoLineOffset è deprecato. Usa invece il modificatore relativePaddingFrom(). L'elemento componibile CenterAllineamentLine è stato rimosso. (I60107)

  • L'API WithConstraints finale lambda è stata modificata. Ora, invece di due parametri, ha un ambito ricevitore 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 nel layout aggregato 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)

  • Creazione dell'API CanvasScope che esegue il wrapping di un oggetto Canvas per esporre una superficie API di disegno dichiarativo e stateless. Le trasformazioni sono contenute all'interno del loro ambito di ricezione e le informazioni sulle dimensioni hanno anche l'ambito dei corrispondenti limiti inseriti. Non richiede che un consumer mantenga il proprio oggetto stato Paint per configurare le operazioni di disegno.

    È stato aggiunto CanvasScopeSample e è 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ò essere sopravvissuto alla ricreazione dell'attività quando utilizzato nel seguente modo: var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() } (I5c3ce, b/155075724)

  • È stato rinominato LayoutModifier2 in LayoutModifier. (Id29f3)

  • È stata rimossa l'interfaccia di LayoutModifier deprecata. (I2a9d6).

  • Il parametro CoreTextField/TextField focusIdentifier è stato sostituito con FocusNode per l'integrazione con il sottosistema di focus. (I7ea48).

  • Le funzioni di misurazione intrinseche in Layout e LayoutModifier2 ora dispongono di un ricevitore IntrinsicMeasureScope che fornisce un'API di query intrinseca con una direzione del layout propagata implicitamente. (Id9945)

  • La nuova funzione Modifier.zIndex() viene aggiunta per controllare l'ordine di disegno degli elementi secondari nello stesso layout principale. La proprietà elevazione in DrawlayerModifier viene rinominata in shadowElevation e non controlla più l'ordine di disegno. L'ordine dei parametri per DrawShadow viene modificato: l'elevazione è ora la prima e la forma è la seconda con un valore predefinito Rettangoloforma. (I20150, b/152417501)

  • RettangoloShape spostato da androidx.ui.foundation.shape.* ad androidx.ui.graphics.* (Ia74d5, b/154507984).

  • Aggiornamento dell'API TextField: i callback onFocus e onBlur sono stati uniti in un unico callback onFocusChange(Boolean) con parametro (I66cd3)

  • Sono stati aggiunti i parametri verticalGravity e HorizontalGravity rispettivamente a Row e Column. (I7dc5a)

  • Sono stati aggiornati i valori di wrapContentLarghezza e wrapContentAltezza per l'allineamento verticale o orizzontale, anziché dell'allineamento. Il modificatore di gravità è stato aggiornato in modo da accettare l'allineamento verticale o orizzontale. Righe, colonne e stack sono stati aggiornati per supportare gli allineamenti continui personalizzati. (Ib0728)

  • Creazione dell'API PixelMap per supportare l'esecuzione di query sulle informazioni relative ai pixel da un ImageAsset. (I69ad6).

  • Rimuove ProvideContentColor, ma è sufficiente utilizzare ContentColorAmbient direttamente con Providers (Iee942)

  • Il modulo ui-text-compose è stato rinominato ui-text. ui-text ora contiene elementi componibili CoreText e CoreTextField (Ib7d47)

  • il modulo ui-text viene rinominato come ui-text-core (I57dec)

  • Spostato ui-framework/CoreText, componibili CoreTextField in ui-text-compose. Potresti voler includere ui-text-compose nel tuo progetto. (I32042)

  • Migliora l'API DrawModifier:

    • È stato impostato l'ambito del destinatario perDraw() ContentDrawScope
    • Rimossi tutti i parametri in disegno()
    • DrawScope ha la stessa interfaccia del precedente CanvasScope
    • ContentDrawScope ha il metodoDrawContent() (Ibaced, b/152919067)
  • runOnIdleCompose e runOnUiThread sono ora funzioni globali anziché metodi su ComposeTestRule. (Icbe8f)

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

  • Aggiunti positionInParent e boundsInParent per leCoordinate di Layout. (Icacdd, b/152735784)

  • L'API ColoredRect è stata ritirata. Utilizza invece Box(Modifier.preferredSize(larghezza, altezza).drawBackground(color)). (I499fa, b/152753731).

  • Rinominato LayoutResult in MeasureResult. (Id8c68)

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

  • Operatore di Modificatore più sostituito con funzioni di estensione di fabbrica (I225e4)

  • L'elemento trascinabile è stato spostato nel modificatore (Id9b16, b/151959544)

  • L'elemento componibile ParentData è deprecato. Devi creare un modificatore che implementi l'interfaccia ParentDataModifier oppure utilizzare il modificatore LayoutTag se devi semplicemente taggare gli elementi secondari del layout per riconoscerli all'interno del blocco di misura. (I51368, b/150953183)

  • Elemento componibile Center deprecato. Deve essere sostituito con il modificatore LayoutSize.Fill + LayoutAllinea.Center o con uno dei componenti componibili Box o Impila con i modificatori adatti applicati (Idf5e0)

  • È stata aggiunta l'API VectorPainter per sostituire l'API di sottocomposizione esistente per le grafiche vettoriali. Il risultato della sottocomposizione è un oggetto VectorPainter anziché un DrawModifier. Ritirati dei precedenti componibili DrawVector a favore di VectorPainter.

    Rinominata API Image(Painter) in PaintBox(Painter) Crea componibile Vector che si comporta come l'immagine componibile tranne che con un VectorAsset invece di un ImageAsset (I9af9a, b/149030271)

  • È stato cambiato il nome LayoutFlessibile in LayoutWeight. Rinominato parametro stretto per riempire. (If4738)

  • Rimosso RepaintBoundary a favore di DrawlayerModifier (I00aa4)

  • DrawVector è stata modificata da una funzione componibile regolare alla restituzione di una funzione di modifica disegnoVector() che disegna il vettore come sfondo di un layout. (I7b8e0).

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

  • Sostituisci la funzione componibile Clip con il modificatore drawClip(). DrawClipToBounds è un modificatore utile da usare quando devi agganciare i margini del livello con una forma rettangolare. (If28eb).

  • Funzione componibile DrawShadow sostituita con il modificatore DrawShadow(). Le ombre sono ora disegnate come parte del Modificatore di livello. (I0317a)

  • È stato aggiunto LayerModifier, un modificatore che consente di aggiungere un RenderNode per un layout. Consente di impostare ritagli, opacità, rotazione, scalabilità e ombre. Questo sostituirà RepaintBoundary. (I7100d, b/150774014)

  • androidx.compose.ViewComposer è stato spostato in androidx.ui.node.UiComposer androidx.compose.Emittable rimosso. È stato ridondante con ComponentiNode. androidx.compose.ViewAdapters è stato rimosso. Non rappresentano più un caso d'uso supportato. Compose.composeInto è stato deprecato. Usa invece setContent o setViewContent. Compose.disposeCompose è stato deprecato. Usa invece il metodo dispose sul Composition restituito da setContent. androidx.compose.Compose.subcomposeInto è stato spostato in androidx.ui.core.subcomposeInto ComponenteNode#emitInsertAt è stato rinominato in ComponenteNode#insertAt ComponenteNode#emitRemoveAt è stato rinominato in ComponenteNode#removeAt ComponenteNode#emitMode

  • Creazione dell'immagine componibile per gestire dimensioni/layout oltre a disegnare un determinato asset immagine sullo schermo. Questo componibile supporta anche il disegno di qualsiasi istanza di Painter arbitraria che rispetti le sue dimensioni intrinseche, oltre a supportare una determinata dimensione fissa o minima (Ibcc8f)

  • Componibile a capo deprecato. Può essere sostituito con il modificatore LayoutAllinea o con lo stack componibile (Ib237f)

  • Parametro WithConstraints ottenuto da LayoutDirection (I6d6f7)

  • La direzione del layout è stata propagata dal nodo del layout principale ai nodi secondari. Modificatore di direzione del layout aggiunto. (I3d955)

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

  • L'elemento componibile DrawShape è stato rimosso. Usa il modificatore DrawBackground. (I7ceb2).

  • Supporto della direzione da destra a sinistra nel modificatore LayoutPadding (I9e8da)

  • Aggiunto AdapterList, un componente di elenco a scorrimento che solo compone e dispone gli elementi visibili. I problemi attualmente noti includono il fatto che l'estensione è solo verticale e non gestisce completamente tutti i casi di modifiche agli elementi secondari. (Ib351b)

  • È stato aggiornato il flag ComposeFlags.COMPOSER_PARAM in modo che sia true. Questa operazione cambierà 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 trasmesso alle successive chiamate @Composable per consentire al runtime di gestire correttamente l'esecuzione. Si tratta di una modifica significativa che provoca un'interruzione del programma binario, tuttavia dovrebbe garantire la compatibilità a livello di origine in tutti gli utilizzi sanzionati di Compose. (I7971c)

  • Componente Canvas aggiunto. Questo componibile occupa alcune dimensioni (fornite dall'utente) e ti consente di disegnare utilizzando CanvasScope (I0d622)

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

  • Modificato LayoutCoordinates per rendere providedAllineamentLines un insieme anziché Mappa e in modo che LayoutCoordinates implementi l'operatore get() per recuperare un valore. In questo modo, i modificatori possono modificare più facilmente uno o più valori dell'insieme senza creare una nuova raccolta per ogni modificatore. (I0245a).

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

  • Miglioramenti alla superficie API dei vincoli (I0fd15)