come indossare protolayout

  
Questa libreria consente di definire un insieme di layout di UI ed espressioni non UI da visualizzare/valutare su superfici remote.
Aggiornamento più recente Release stabile Candidato per l'uscita Versione beta Release alpha
7 agosto 2024 1.2.0 - - -

Dichiarazione delle dipendenze

Per aggiungere una dipendenza su wear-protolayout, devi aggiungere il Repository Maven di Google al tuo progetto. Consulta il Repository Maven di Google per ulteriori informazioni.

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

Alla moda

dependencies {
    // Use to implement support for Wear ProtoLayout Expressions
    implementation "androidx.wear.protolayout:protolayout-expression:1.2.0"

    // Use to implement support for Wear ProtoLayout
    implementation "androidx.wear.protolayout:protolayout:1.2.0"

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation "androidx.wear.protolayout:protolayout-material:1.2.0"
}

Kotlin

dependencies {
    // Use to implement support for Wear ProtoLayout Expressions
    implementation("androidx.wear.protolayout:protolayout-expression:1.2.0")

    // Use to implement support for Wear ProtoLayout
    implementation("androidx.wear.protolayout:protolayout:1.2.0")

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation("androidx.wear.protolayout:protolayout-material:1.2.0")
}

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

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Non esitare a contattarci in caso di nuovi problemi o idee per migliorare questa raccolta. Dai un'occhiata alle problemi esistenti in questa raccolta, prima di crearne uno nuovo. Puoi aggiungere il tuo voto a un problema esistente tramite facendo clic sul pulsante a forma di stella.

Crea un nuovo numero

Consulta la documentazione di Issue Tracker per ulteriori informazioni.

Versione 1.2

Versione 1.2.0

7 agosto 2024

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.2.0. Versione 1.2.0 contiene. questi commit.

Modifiche importanti dalla versione 1.1.0

  • FontStyle è stato aggiornato per offrire un supporto aggiuntivo per i caratteri degli assi delle variabili e una migliore API di selezione dei caratteri per supportare i caratteri Flex futuri.
  • Supporto per i modificatori aggiuntivi:
    • Modificatore di trasformazione che offre traslazione, rotazione e scalabilità con o senza animazioni.
    • Specificare valori diversi (orizzontale e verticale) per ogni raggio d'angolo.
  • È stata migliorata l'accessibilità di tutti i touch target mediante l'estensione dell'area toccabile di ogni elemento che utilizza il tasto di modifica Cliccabile fino ad almeno 48dp per 48dp.
  • Sono stati migliorati PrimaryLayout e EdgeContentLayout aggiungendo setResponsiveContentInsetEnabled per supportare meglio il comportamento reattivo di questi layout su schermi di diverse dimensioni e migliorare la coerenza dei riquadri.
  • Ridimensionamento/non dimensionamento migliorato del testo materiale per il ridimensionamento non lineare dei caratteri di Android 14.
  • Supporto migliorato per la direzione del layout RTL su tutti gli elementi dell'arco.

Modifiche aggiuntive

Versione 1.2.0-rc01

24 luglio 2024

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.2.0-rc01. La versione 1.2.0-rc01 contiene questi commit.

Correzioni di bug

  • Abbiamo corretto il chip Material standard, quindi può essere utilizzato come icona solo se non viene passata nessuna etichetta principale o secondaria. (Iceef9)
  • La documentazione relativa ai layout Material è stata aggiornata in modo da includere gli elementi visivi provenienti dalla pagina pertinente per facilitare la comprensione dei layout. (I0256a)

Versione 1.2.0-beta01

10 luglio 2024

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.2.0-beta01. La versione 1.2.0-beta01 contiene questi commit.

Nuove funzionalità

La versione 1.2.0-beta01 di Wear ProtoLayout indica che questa release della libreria è completa di funzionalità e l'API è bloccata (tranne se contrassegnata come sperimentale). Wear ProtoLayout 1.2 include le seguenti nuove funzionalità e API:

  • FontStyle è stato aggiornato in modo da offrire un supporto aggiuntivo per i caratteri riportati di seguito:
    • Impostazione di una variante del carattere diversa, ad esempio FontSetting.weight e FontSetting.width
    • Impostazione della stessa larghezza per tutti i caratteri numerici - numeri tabulari (impostazione della funzionalità del carattere FontSetting.tnum)
    • API di selezione dei caratteri migliorate per supportare i caratteri flessibili in arrivo specificando i nomi delle famiglie di caratteri preferiti da utilizzare.
  • Modificatore Corner esteso per supportare la specifica di ogni CornerRadius con valori orizzontali e verticali separati in modo da consentire gli elementi degli edifici con angoli asimmetrici.
  • È stato aggiunto un nuovo modificatore Transformation che offre traduzione, rotazione e scalabilità di LayoutElement. Queste trasformazioni possono essere animate utilizzando valori dinamici.
  • Sono state aggiunte le opzioni setArcDirection con Clockwise, CounterClockwise e Normal a tutti gli elementi dell'arco (Arc, ArcLine e ArcText) per un supporto migliore in diverse direzioni di layout (ad esempio LTR e RTL).
  • È stata migliorata l'accessibilità di tutti i touch target mediante l'estensione dell'area toccabile di ogni elemento che utilizza il modificatore di Clickable fino ad almeno 48dp per 48dp.
  • Sono stati migliorati PrimaryLayout e EdgeContentLayout aggiungendo setResponsiveContentInsetEnabled per supportare meglio il comportamento reattivo di questi layout su schermi di diverse dimensioni e migliorare la coerenza dei riquadri. È stato aggiunto un avviso di linter per suggerire l'utilizzo di queste API con una correzione rapida.
  • Miglioramento del ridimensionamento/non della scalabilità del materiale Text per il ridimensionamento non lineare dei caratteri di Android 14.

Modifiche alle API

  • Il nome della famiglia di caratteri predefinito (DEFAULT_SYSTEM_FONT) viene rimosso in quanto è implicito dal mancato utilizzo dell'API preferredFontFamilies. (I39dab)
  • Il parametro passato a FontSetting.width deve essere positivo. (I1266f)

Versione 1.2.0-alpha05

26 giugno 2024

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.2.0-alpha05. La versione 1.2.0-alpha05 contiene questi commit.

Nuove funzionalità

  • Aggiungi il metodo hasText a Material.CompactChip per verificare se i contenuti testuali sono stati impostati. (I6e8fc)

Modifiche alle API

  • I const FontFamily vengono spostati in FontStyle anziché nella classe Builder. (I06ced)
  • Aggiorna l'API FontSetting.weight e FontSetting.width per includere le annotazioni dell'intervallo e modificare il parametro del peso in modo che sia int. (Ia726c)

Correzioni di bug

  • I testi non scalabili nella Raccolta materiali ora funzionano correttamente con il ridimensionamento non lineare dei caratteri di Android 14. (I6601e)

Versione 1.2.0-alpha04

29 maggio 2024

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.2.0-alpha04. La versione 1.2.0-alpha04 contiene questi commit.

Modifiche alle API

  • È stata aggiunta l'API per gli angoli asimmetrici per poter specificare separatamente il raggio di ogni angolo con 2 valori. (Icbd69)
  • L'API FontSetting è stata estesa per includere:
    • Impostazione delle funzionalità dei caratteri, come l'impostazione del carattere come tabulare. (If12b7).
    • l'impostazione di variazione del carattere, ad esempio l'impostazione di una larghezza personalizzata per i caratteri variabili. (I2b36d).
  • È stata aggiunta l'API della famiglia di caratteri a FontStyle per consentire di specificare un elenco di ordini di famiglie di caratteri da utilizzare. (Iba9f5)
  • Costanti rinominate per l'altezza dello spazio tra i contenuti e l'etichetta secondaria in LayoutDefaults di Materiale che inizialmente erano precedute dal prefisso "Contenuto bordo" per essere più generiche in quanto possono essere applicate sia a PrimaryLayout che a EdgeContentLayout. (I4dc32)

Correzioni di bug

  • Nome rinominato per gli assi dei caratteri variabili da axisName a axisTag. (I02ba3)

Versione 1.2.0-alpha03

14 maggio 2024

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.2.0-alpha03. La versione 1.2.0-alpha03 contiene questi commit.

Nuove funzionalità

  • È stata aggiunta un'API per impostare valori di peso personalizzati per FontStyle. (I7390a)

Correzioni di bug

  • Correggi l'errore in getTouchDelegateInfo a causa di una mappa di destinazione vuota. (I2accf)

Versione 1.2.0-alpha02

1° maggio 2024

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.2.0-alpha02. La versione 1.2.0-alpha02 contiene questi commit.

Modifiche alle API

  • Abbiamo aggiunto il supporto per la disattivazione del feedback eco per singoli elementi cliccabili. (If1ede)
  • L'API per la trasformazione è stata rimossa da ArcModifiers in quanto non supporta questa funzionalità (Ic0827)
  • ArcDirectionProp Il costruttore ora prevede un valore nel costruttore. (I76 Ada)
  • Il metodo PlatformDataValues.Builder.putAll consente di unire un PlatformDataValue a un altro. (I50ba3)
  • Text#setIsScalable è stato rinominato in Text#setScalable. (If920e)
  • Il testo materiale può impostare se utilizzare o meno le dimensioni scalabili (aumentano in caso di modifica della dimensione del carattere dell'utente). (Ibc849)
  • Abbiamo aggiunto l'opzione per impostare la descrizione dei contenuti su TitleChip. (I5d21f)
  • È stato corretto il funzionamento di CompactChip solo con l'icona e l'API è stata aggiornata per consentire questa opzione. (I6589e)

Correzioni di bug

  • È stato risolto un problema relativo a potenziali dati della piattaforma duplicati durante l'inizializzazione. (Iba0fd)
  • Introduci un nuovo getter per DynamicDataNode per recuperare il costo dei nodi. Il costo viene utilizzato quando acquisisci la quota di nodi dinamici. Attualmente, i nodi con valori fissi avranno un costo pari a 0, mentre tutti gli altri nodi avranno un costo pari a 1. (Ia33e1).
  • Rimuovi la logica di conteggio da NO_OP_QUOTA_MANAGER. (Ib50b8)
  • Abbiamo aggiunto una regola lint per segnalare un avviso quando viene utilizzato PrimaryLayout senza setResponsiveContentInsetEnabled e fornire una correzione rapida. (I12025)
  • Esiste un limite al numero di nodi di espressioni dinamiche. (Iffae8)

Versione 1.2.0-alpha01

6 marzo 2024

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.2.0-alpha01. La versione 1.2.0-alpha01 contiene questi commit.

Nuove funzionalità

  • Gli elementi ProtoLayout Arc ora hanno la possibilità di aggiungere ArcDirection (Clockwise, Counterclockwise o Normal). Se aggiungi questo comportamento a Arc, ArcLine o ArcText, verrà corretto il relativo comportamento nei layout RTL. (I90699)
  • EdgeContentLayout è stato aggiornato con un nuovo setter setResponsiveContentInsetEnabled per ottenere un migliore allineamento con le linee guida UX, coerenza nei riquadri grazie all'etichetta principale in posizione fissa nella parte superiore e al riquadro adattabile per le etichette. (I60175)
  • Abbiamo aggiunto un riquadro PrimaryLayout.setResponsiveContentInsetEnabled che aggiunge un riquadro adattabile all'etichetta principale, all'etichetta secondaria e al chip in basso in questo layout, per evitare che i contenuti penetrino oltre il bordo dello schermo. (I0c457).
  • Aggiunge il metodo per rimuovere i margini esterni da CircularProgressIndicator in modo che possa essere utilizzato come componente più piccolo. (I55c06).

Modifiche alle API

  • Il renderer dei riquadri ora esclude la spaziatura interna dei caratteri su tutti gli elementi di testo per impostazione predefinita, senza la possibilità di includerla. (I3e300)

Correzioni di bug

  • È stato risolto il problema di allineamento del testo quando nel testo vengono utilizzati tutti i puntini, la spaziatura tra le lettere e l'allineamento al centro. (I716c7)
  • Aggiungi una soluzione alternativa per un problema di disegno dell'arco skia. (I08f09)
  • Correggi la direzione del disegno ArcLine per i layout RTL. (I6c141)

Versione 1.1

Versione 1.1.0

7 febbraio 2024

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.1.0. La versione 1.1.0 contiene questi commit.

Modifiche importanti dalla versione 1.0.0

  • Supporto del gradiente e migliore rappresentazione di lunghezze superiori a 360 gradi in ArcLine.
  • La formattazione di data e ora supporta fusi orari diversi per i tipi di dati dinamici.
  • Migliori opzioni di ridimensionamento automatico e puntini di sospensione del testo per gestire il testo troncato.
  • Il distanziatore supporta dimensioni espanse con peso facoltativo.
  • Annotazione del requisito di versione dello schema per tutte le API di ProtoLayout.
  • Area di destinazione estesa a qualsiasi elemento Clickable a 48 dp x 48 dp, per soddisfare i requisiti di accessibilità.
  • La spaziatura interna dei caratteri è disattivata per impostazione predefinita ed è l'unico comportamento in tutti gli elementi Testo e nei componenti Materiale che contengono testo.

Modifiche aggiuntive

Versione 1.1.0-rc01

24 gennaio 2024

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.1.0-rc01. La versione 1.1.0-rc01 contiene questi commit.

Correzioni di bug

  • PlatformTimeUpdateNotifierImpl spunta subito dopo aver abilitato l'aggiornamento. (I77145)
  • È stato corretto il problema CircularProgressIndicator per i layout RTL. D'ora in poi, andrà sempre in senso orario. (I95ee3)
  • Aggiungi una soluzione alternativa per un problema di disegno dell'arco skia. (I08f09)

Versione 1.1.0-beta01

10 gennaio 2024

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.1.0-beta01. La versione 1.1.0-beta01 contiene questi commit.

Nuove funzionalità

La versione 1.1.0-beta01 di Wear ProtoLayout indica che questa release della libreria è completa di funzionalità e l'API è bloccata (tranne se contrassegnata come sperimentale). Wear ProtoLayout 1.1 include le seguenti nuove funzionalità e API:

  • ArcLine ora supporta il gradiente aggiungendo Brush con SweepGradient e con un'ombra sul limite per rappresentare meglio la lunghezza superiore a 360 gradi aggiungendo Shadow sull'elemento StrokeCap esistente.
  • DynamicInstant supporta la formattazione di data e ora in zone. È possibile utilizzare DynamicInstant e DynamicDuration come tipi di dati di stato o della piattaforma.
  • Funzione di ridimensionamento automatico per le dimensioni del testo che consente di impostare più dimensioni su FontStyle.setSizes, dove le dimensioni del testo verranno ridimensionate automaticamente in base allo spazio all'interno di quello principale. Inoltre, abbiamo migliorato le opzioni dei puntini di sospensione per il testo in eccesso aggiungendo TEXT_OVERFLOW_ELLIPSIZE e ritirando TEXT_OVERFLOW_ELLIPSIZE_END.
  • Spacer ora supporta dimensioni espanse con ponderazione facoltativa. Per la creazione di ExpandedDimensionProp abbiamo aggiunto un metodo di supporto DimensionBuilders.weight.
  • È ora supportato per nascondere e mostrare dinamicamente gli elementi di layout con Modifier.visible. È incluso l'inclusione di valori dinamici in BoolProp.
  • Tutte le API ProtoLayout ora hanno l'annotazione dei requisiti di versione dello schema e la versione può essere controllata prima di chiamare un'API più recente.
  • Ora l'area di destinazione di ogni elemento con Clickable viene estesa ad almeno 48 x 48 nel renderer, per supportare meglio i requisiti di accessibilità.
  • A seguito di altri componenti Material e delle iniziative di Compose, abbiamo ora disattivato la spaziatura interna dei caratteri per impostazione predefinita su tutti gli elementi Text. Inoltre, AndroidTextStyle e i setter correlati sono stati rimossi dall'API pubblica. con le seguenti correzioni di bug:
  • È stato aggiunto un setter per il posizionamento dei contenuti perimetrali in EdgeContentLayout in modo che possano essere posizionati prima di altri contenuti.
  • Creazione regolare di un'eccezione quando si incontra un valore enum non riconosciuto.
  • Annulla il risultato di un'espressione quando restituisce un valore numerico non valido (NaN o infinito) o genera un ArithmeticException.

Modifiche alle API

  • Aggiornamenti all'API SweepGradient per consentire l'accettazione di colori o ColorStops nel costruttore. (I6676f)

Correzioni di bug

  • Aggiunta di un'API limitata e del supporto del renderer per l'impostazione della direzione di disegno degli elementi arco. (Idef5a)
  • Se non specificato, il valore predefinito di RoundMode è Floor in FloatToInt32Node. Il nodo genererà comunque un'eccezione se il valore RoundMode fornito non viene riconosciuto. (I1b2d8).

Versione 1.1.0-alpha04

13 dicembre 2023

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.1.0-alpha04. La versione 1.1.0-alpha04 contiene questi commit.

Nuove funzionalità

  • La classe VersionInfo non implementa l'interfaccia Comparable. (I8d13c).
  • Il renderer ora supporta l'opzione TEXT_OVERFLOW_ELLIPSIZE. (I7f085)

Modifiche alle API

  • L'opzione di overflow del testo TEXT_OVERFLOW_ELLIPSIZE_END è stata deprecata. Usa la nuova API TEXT_OVERFLOW_ELLIPSIZE con un comportamento molto simile. (I822d8)
  • A seguito di altri componenti Material e delle iniziative di Compose, abbiamo ora disattivato la spaziatura interna dei caratteri per impostazione predefinita su tutti gli elementi Text. Inoltre, AndroidTextStyle e i setter correlati sono stati rimossi dall'API pubblica. (I79094, Ib0b03, I32959, Iaf7d5, Ifa298, I0a4ae, Ida9d3)
  • Modifier.hidden è stato sostituito con Modifier.visible (I56902)
  • FontStyle#setSizes ora accetta argomenti int anziché SpProp. (I02b37).

Correzioni di bug

  • Genera un'eccezione quando viene rilevato un valore enum Non definito o Non riconosciuto. (I9d2cf)
  • Esegui il refactoring di DynamicTypeBindingRequest. (I27b57).
  • Annulla il risultato di un'espressione quando restituisce un valore numerico non valido (NaN o infinito) o genera un ArithmeticException. (I681ae)

Versione 1.1.0-alpha03

29 novembre 2023

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.1.0-alpha03. La versione 1.1.0-alpha03 contiene questi commit.

Nuove funzionalità

  • Aggiunta del supporto sperimentale per nascondere/mostrare dinamicamente gli elementi di layout (I64a78)
  • Aggiungi il supporto dei valori dinamici a BoolProp (I2fe96)
  • Aggiungi l'annotazione del requisito di versione dello schema alle API ProtoLayout (I0f03c)
  • Estensione dell'API con la nuova opzione in TextOverflow per applicare i puntini di sospensione al testo in un contenitore principale fisso anche quando non viene raggiunto il numero massimo di righe (ma non c'è abbastanza spazio per il testo). (I110a9)
  • Aggiunto il metodo di supporto DimensionBuilders.weight per creare ExpandedDimensionProp con le ponderazioni. (I4f72b)
  • È possibile utilizzare DynamicInstant e DynamicDuration come tipi di dati di stato o della piattaforma. (I6819f)

Modifiche alle API

  • Aggiorna l'API per nascondere DynamicZonedDateTime e spostare tutte le operazioni in DyanamicInstant (I34b94)
  • Lo spaziatore ora supporta la dimensione espansa per larghezza/altezza. (Ie7c94).
  • Supporto dell'estensione dell'area di destinazione dei clic nel renderer (I39c79)

Versione 1.1.0-alpha02

15 novembre 2023

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.1.0-alpha02. La versione 1.1.0-alpha02 contiene questi commit.

Nuove funzionalità

  • È stato aggiunto un campo ArcLine StrokeCap Shadow all'API. (I830ec)
  • Estensione dell'API per consentire di specificare la larghezza o l'altezza del distanziatore per l'espansione. (I757ca)
  • Abbiamo aggiunto un'API sperimentale per scalare automaticamente la dimensione del testo in base allo spazio all'interno dell'elemento principale. (Ibbe63)
  • Supporta la dimensione minima cliccabile (I178e3)
  • Aggiunto il supporto del renderer per StrokeCap Shadow. (I48b17).
  • Aggiungi il supporto del renderer per Sweep Gradient in ArcLine. (I4d5bb)

Versione 1.1.0-alpha01

18 ottobre 2023

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.1.0-alpha01. La versione 1.1.0-alpha01 contiene questi commit.

Nuove funzionalità

  • È stata aggiunta un'opzione pennello per Arcline, con supporto per SweepGradient. (Ie7ce3).
  • Aggiunto il supporto per la formattazione di data e ora in zone. (Ibfae0)
  • Per la formattazione di data e ora in zone sono stati aggiunti protos e wrapper Java. (I97126)
  • Sono stati aggiunti getter per rileggere il valore memorizzato in un DynamicDataValue. (Ie6cea).
  • È stato aggiunto un setter per il posizionamento dei contenuti perimetrali in EdgeContentLayout in modo che possano essere posizionati prima di altri contenuti. (Ie8e8a).

Correzioni di bug

  • Risolto il problema per cui un'espressione con più registrazioni di origini dati non veniva aggiornata immediatamente. (I8e1a8)
  • È stato corretto un bug relativo al centro dell'elemento principale durante gli aggiornamenti delle differenze. (Ie48f7)
  • I valori del vincolo di layout se non vengono impostati (o vuoti) non verranno più ignorati. (Ibc785)
  • Ritardo ridotto tra la visibilità di un layout e l'inizializzazione dei nodi della pipeline. (I38d4e)

Versione 1.0

Versione 1.0.0

9 agosto 2023

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.0.0. La versione 1.0.0 contiene questi commit.

Funzionalità principali di 1.0.0

La libreria ProtoLayout introduce le API per la creazione di layout ed espressioni che possono essere utilizzati su diverse piattaforme Wear OS. Ad esempio, la libreria Tiles utilizza queste API per supportare l'associazione di dati della piattaforma (per aggiornamenti più rapidi dei dati dei riquadri) e le animazioni.

Versione 1.0.0-rc01

26 luglio 2023

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.0.0-rc01. La versione 1.0.0-rc01 contiene questi commit.

  • Per eseguire la migrazione da Tiles a ProtoLayout, segui le istruzioni riportate qui.

Modifiche alle API

  • Abbiamo rimosso setLayoutConstraintForDynamicAnchorAngle e getLayoutConstraintForDynamicAnchorAngle metodi dall'elemento Arco. Questi metodi sono stati aggiunti per errore e non hanno avuto alcun effetto sul layout fornito. (If7d01).
  • Abbiamo limitato la profondità massima che un layout di ProtoLayout può avere a 30 LayoutElements nidificati. (I8a74b)

Correzioni di bug

  • Abbiamo aggiunto un segno di spunta da lanciare se DynamicColor è stato impostato per un SpanText. (I0e5bc).
  • È stato chiarito che l'unità dell'origine dati DAILY_CALORIES è kcal. (Iaa785)

Versione 1.0.0-beta01

21 giu 2023

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.0.0-beta01. La versione 1.0.0-beta01 contiene questi commit.

Nuove funzionalità

  • Consenti l'impostazione dell'orologio per i test di associazione temporale. (I05622)

Modifiche alle API

  • PlatformDataReceiver.onData() e StateBuilders.Builder.addKeyToValueMapping ora accettano la mappatura sicura per il tipo di DynamicDataKey a DynamicDataValue anziché indirizzi generici non sicuri. Ciò significa che ora viene digitato DynamicDataValue con il suo DynamicType. Costanti HEART_RATE_ACCURACY_X spostate alla radice di PlatformHealthSources, per corrispondere al posizionamento di altre costanti Android. Le costanti int di HEART_RATE_ACCURACY_X vengono ora utilizzate direttamente in DynamicHeartRateAccuracy.constant() e DynamicHeartRateAccuracy.dynamicDataValueOf() al posto della costante di valore. (I82ff5)
  • È stata creata un'istanza del corso PlatformHealthSources.Constants per errore. Il problema ora è stato risolto. (Icb849)
  • Ora PlatformTimeUpdateNotifier#setReceiver riceve la funzione Runnable anziché Supplier e Executor per le notifiche. (I9d938)
  • Abbiamo cambiato il tipo di parametro in PlatformTimeUpdateNotifier#setReceiver da Callable a Supplier. (I664bf)
  • CompactChip e TitleChip ora supportano l'aggiunta di un'icona. (I5a01e)

Correzioni di bug

  • Aggiorna i messaggi Prop con campi dinamici per utilizzarne uno (I81739)
  • Riutilizza l'implementazione dei setter per i sovraccarico con setter (Ied70c)
  • Registra correttamente le impronte nei setter con sovraccarichi (I86ed2)

Versione 1.0.0-alpha11

7 giugno 2023

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.0.0-alpha11. La versione 1.0.0-alpha11 contiene questi commit.

Nuove funzionalità

  • Abbiamo aggiunto un PlatformDataKey per la precisione del battito cardiaco. (I7f9b8)

Modifiche alle API

  • Rinomina StateBuilders#getIdToValueMapping in getKeyToValueMapping e cambia il tipo restituito in Map<<AppDataKey<?>,DynamicDataValue>. (Iaa7ae).
  • Imposta StateStore come corso finale (I408ca)
  • L'interfaccia TimeGateway è stata sostituita da PlatformTimeUpdateNotifier nella libreria protolayout-expression-pipeline, che fornisce la frequenza desiderata per l'aggiornamento dei dati temporali. (I60869)
  • Rinomina register/unregisterForData in PlatformDataProvider in set/clearReceiver (I14b02)
  • In Material Text, getExcludeFontPadding è stato rinominato in hasExcludeFontPadding. (IEa01d)
  • Il setter per allineare l'etichetta è stato aggiunto a tutti i componenti del chip. A tutti i chip è ora applicato un target minimo toccabile. (I8ae92).
  • LayoutDefaults#BUTTON_MAX_NUMBER è stato rinominato in MAX_BUTTONS. (I84788)
  • DAILY_DISTANCE è stato rinominato in DAILY_DISTANCE_M. (I4f758)

Correzioni di bug

  • Aggiorna la documentazione relativa ai tipi di proposta per chiarire perché viene applicato il valore statico. Specifica il valore predefinito da utilizzare se non è stato fornito un valore statico. (I155aa)
  • Gli spazi dei nomi PlatformDataKey devono seguire la denominazione in stile Java. (I47bda)

Versione 1.0.0-alpha10

24 maggio 2023

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.0.0-alpha10. La versione 1.0.0-alpha10 contiene questi commit.

Nuove funzionalità

  • Aggiungi AppDataKey per accedere allo stato di push dell'app; Aggiungi PlatformDataKey per accedere ai dati della piattaforma. Aggiungi il supporto dello spazio dei nomi in StateStore. (I7985e)
  • Supporta le operazioni Equal e NotEqual per DynamicBool. (I6a0c1)

Modifiche alle API

  • Il corso FontStyles è ora definitivo (Iaa2ea)
  • L'API LayoutElementBuilders#FontStyles è stata deprecata. Usa androidx.wear.protolayout.Typography o crea il tuo FontStyle. (Ic929b)
  • Nascondi l'interfaccia nidificata Action#Builder dall'interfaccia Action. Le implementazioni di Builder sono già fornite dalle classi LoadAction e LaunchAction. (I1d70c).
  • Consenti l'utilizzo di DynamicFloat con FloatProp. Tieni presente che FloatProp non richiede vincoli di layout poiché non viene utilizzato come proposta di modifica del layout. (I286ac)
  • Le azioni LoalAction e SetStateAction sono state rimosse perché non erano ancora supportate. (I5d6a6).
  • Aggiunto il supporto per il formato ARGB_8888 per le risorse delle immagini in linea. (I8a07c)
  • Rinomina StateEntryValue in DynamicDataValue e aggiorna le API di stato per utilizzare DynamicDataKey (If1c01)
  • Stiamo limitando il numero di voci consentite in StateStore per garantire che l'utilizzo della memoria e l'ora di aggiornamento dello stato siano ben contenuti e controllati per ogni istanza di StateStore. Di conseguenza, lo sviluppatore deve assicurarsi di non avere più di MAX_STATE_ENTRY_COUNT voci nella mappa, altrimenti riceverà un IllegalStateException durante la creazione o l'aggiornamento del StateStore. (Ibadb3)
  • Nascondi OnLoadTrigger e OnConditionMetTrigger corsi e rinomina setTrigger in setCondition per OnConditionMetTrigger. (Ibf629).
  • Per motivi di prestazioni e compatibilità, i renderer ProtoLayout non supporteranno il set completo di funzionalità nelle risorse AnimatedVectorDrawable. Queste API verranno contrassegnate come sperimentali fino a quando non potremo definire il set supportato. (Ic6daf)
  • Sono stati aggiunti tipi dinamici per distanza giornaliera, calorie giornaliere e piani giornalieri. Le chiavi per le origini di integrità della piattaforma ora si trovano sotto PlatformHealthSources.Keys (Ib7637)
  • Il metodo Easing.cubicBezier sostituisce il metodo CubicBezierEasing.Builder. A questo punto, la classe EasingFunction viene rimossa e le costanti di easing di quella classe sono ora accessibili direttamente dall'interfaccia di Easing. Inoltre, setInfiniteRepeatable viene sostituito da INFINITE_REPEATABLE_WITH_RESTART e INFINITE_REPEATABLE_WITH_REVERSE (Ib41e7)
  • Implementa PlatformDataProvider per fornire battito cardiaco e passi giornalieri. L'interfaccia SensorGateway è stata rimossa dall'API pubblica. (I55b84).
  • Aggiungi PlatformDataProvider e aggiorna StateStore per registrarti a PlatformDataProvider quando la chiave supportata del provider è richiesta dal nodo della pipeline di espressione. (Ib616a)
  • SensorGateway non è più Closeable poiché non conserva più alcuno stato. (I6b4f7).
  • Consenti l'utilizzo di FloatProp con DynamicFloat per l'avanzamento in CircularProgressIndicator. È supportato per i renderer che supportano la versione 1.2. I renderer precedenti ricorreranno al fallback staticValue, se fornito, altrimenti a 0 (I0d91b)
  • Le costanti MultiButtonLayout sono state ridimensionate nella classe LayoutDefaults.MultiButtonLayoutDefaults, che ora contiene quelle per le dimensioni dei pulsanti, in base a un certo numero di pulsanti nel layout. (I13973)
  • È supportato l'utilizzo di StringProp con DynamicString nel testo Material. È supportato per i renderer che supportano la versione 1.2. I renderer precedenti ricorreranno al valore statico fornito. Aggiorna il tipo restituito Text#getText da String a StringProp. (I7275b)

Versione 1.0.0-alpha09

10 maggio 2023

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.0.0-alpha09. La versione 1.0.0-alpha09 contiene questi commit.

Nuove funzionalità

  • Abbiamo aggiunto un elemento di layout sperimentale dell'estensione. Tieni presente che questa funzione non può essere utilizzata per impostazione predefinita e richiede un'estensione del renderer in grado di comprendere l'elemento di layout. (I6581d)
  • È stato aggiunto il supporto di StrokeCap per ArcLine. (I94951)
  • Aggiunto il supporto per il funzionamento di Conditional Instant. (I489a7)
  • Aggiunto il supporto per l'operazione Durata condizionale. (Iab469)
  • Aggiunto il supporto per la creazione di durate a partire da secondi. (Ib5fa1)

Modifiche alle API

  • enable/disablePlatformSource metodi sono stati rimossi da DynamicTypeEvaluator. Il chiamante deve essere responsabile degli aggiornamenti. (I78c6d)
  • Consenti la limitazione delle dimensioni dei tipi di dati associati. (Ie2966).
  • Aggiungi il supporto della descrizione dinamica dei contenuti in protolayout-material. (I62c8e)
  • Utilizza long e @IntRange per durata e ritardo in AnimationParameters. (I388b6)

Versione 1.0.0-alpha08

19 aprile 2023

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.0.0-alpha08. La versione 1.0.0-alpha08 contiene questi commit.

Nuove funzionalità

  • AndroidTextStyle è stato/a aggiunto/a a LayoutElementBuilders. (I8d967)
  • Abbiamo aggiunto il supporto dell'impostazione di esclusione della spaziatura interna dei caratteri nel testo materiale ProtoLayout. (I17f5d).
  • ARGB_8888 è ora supportato per le immagini in linea. (I18c1e)
  • DynamicColor ora supporta l'operazione onCondition. (I10927)

Modifiche alle API

  • Supporto della durata personalizzata per l'animazione inversa (I3251f)
  • Abbiamo aggiunto il modificatore SemanticDescription. Inoltre, ContentDescription non è associabile. (I3f1d).
  • Il metodo DynamicBool.isFalse() è ora sostituito con DynamicBool.negate() e il DynamicBool.isTrue() è stato rimosso. Inoltre, i valori DynamicFloat NaN e la limitazione di un DynamicInt32 a un DynamicFloat ora emettono un risultato dinamico non valido. (I6ac1e)
  • I formati int e in virgola mobile ora utilizzano i pattern del generatore. (Ieb213)

Correzioni di bug

  • Il valore statico di riserva è stato rimosso dai campi animati. (Ifcb01)
  • L'utente DynamicTypeValueReceiver#onPreUpdate è stato rimosso. (I2dc35)
  • La lunghezza delle stringhe nelle espressioni dinamiche è ora limitata. (I4c93)
  • Quando necessario, le dipendenze Gradle sono ora impostate correttamente su api anziché su implementation. (I40503)

Versione 1.0.0-alpha07

5 aprile 2023

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.0.0-alpha07. La versione 1.0.0-alpha07 contiene questi commit.

Nuove funzionalità

  • Aggiungi il supporto dei valori dinamici a StringProp (I04342)
  • Contrassegna gli elementi di layout associabili (Ia110b)

Modifiche alle API

  • sensorGateway#registerSensorGatewayConsumer prende il tipo di dati come parametro anziché come metodo in Consumer. (Icf314)
  • ObservableStateStore è stato rinominato in StateStore. (Ieb0e2).
  • È stato aggiunto DynamicTypeEvaluator.Builder anziché gli argomenti del costruttore per consentire altri argomenti facoltativi, tra cui ObservableStateStore che ora per impostazione predefinita viene impostato su un archivio vuoto. (I6f832)
  • Ordine dei parametri sottoposto a refactoring in DynamicTypeEvaluator. (Ic1ba4)

Correzioni di bug

  • Propaga correttamente i segnali dalle origini dei sensori della piattaforma ai nodi downstream (I5a922)

Versione 1.0.0-alpha06

22 marzo 2023

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.0.0-alpha06. La versione 1.0.0-alpha06 contiene questi commit.

Nuove funzionalità

  • Abbiamo aggiunto un'API sperimentale per l'utilizzo del battito cardiaco e dei passi giornalieri nelle espressioni dinamiche (Ifd711)
  • Abbiamo aggiunto il supporto del ritardo in avanti e indietro per le animazioni. (Ic25f7).
  • Abbiamo aggiunto il supporto di DynamicColor a Bordo e sfondo
  • Abbiamo aggiunto il supporto dei valori dinamici ai tipi in DimensionBuilder
  • Il layout e i componenti di tiles-material verranno spostati in protolayout-material

Modifiche alle API

  • LoadActionListener è stato/a aggiunto/a a ProtoLayoutViewInstance. (If7806)

Correzioni di bug

  • FloatNodesTest aggiunto (Id7281)
  • È stato corretto l'arresto anomalo del renderer quando non era possibile caricare bitmap strutturata.

Versione 1.0.0-alpha05

8 marzo 2023

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.0.0-alpha05. La versione 1.0.0-alpha05 contiene questi commit.

Nuove funzionalità

  • Abbiamo aggiunto un "aggiornamento dei contenuti" sperimentale animazione sull'oggetto Modifiers. Questa animazione si attiva ogni volta che l'elemento (con questo modificatore) o uno dei relativi elementi secondari cambiano durante un aggiornamento del layout. (bd03e5d).

Modifiche alle API

  • Abbiamo aggiunto forwardRepeatDelayMillis e reverseRepeatDelayMillis a Repeatable. Abbiamo anche rinominato delayMillis in AnimationSpec in startDelayMillis (Ifb266)
  • I metodi DynamicTypeEvaluator.bind ora accettano un esecutore. (I346ab)
  • Abbiamo aggiunto il metodo startEvaluation a BoundDynamicType per attivare la valutazione dopo l'associazione del tipo dinamico. (I19908)

Correzioni di bug

  • L'oggetto Animator verrà riutilizzato per le animazioni successive di un singolo elemento. (Ia3be9)

Versione 1.0.0-alpha04

22 febbraio 2023

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.0.0-alpha04. La versione 1.0.0-alpha04 contiene questi commit.

Nuove funzionalità

  • ObservableStateStore ora informa gli ascoltatori quando viene rimossa anche una chiave.
  • Abbiamo aggiunto a DeviceParameters la versione dello schema del renderer e la scala dei caratteri, che può essere utilizzata per creare layout in modo condizionale in risposta a diverse versioni e impostazioni dei caratteri.
  • Abbiamo aggiunto il supporto per l'animazione dei valori DynamicInt32 (I05485)
  • Abbiamo aggiunto OnLoad e OnConditionalMet attivatori. Queste possono essere usate per avviare animazioni che supportano un trigger.
  • Abbiamo aggiunto il peso del layout per le dimensioni espanse e la dimensione minima per le dimensioni incluse.
  • Abbiamo aggiunto tipi dinamici istantanei e di durata. Possono essere utilizzate per rappresentare un istante temporale o una durata in un'espressione dinamica.
  • Abbiamo aggiunto il supporto per AnimatedVectorDrawable e SeekableAnimatedVectorDrawable come risorse di layout.

Modifiche alle API

  • I dati dei sensori richiedono l'API 29 o versioni successive. (I8099e)
  • Abbiamo aggiunto due launchAction metodi helper (per l'avvio delle attività).

Correzioni di bug

  • Rinomina set/getSpec in set/getAnimationSpec nell'animazione Schede (I3d74b)

Versione 1.0.0-alpha03

8 febbraio 2023

Viene rilasciato androidx.wear.protolayout:protolayout-*:1.0.0-alpha03. La versione 1.0.0-alpha03 contiene questi commit.

Nuove funzionalità

  • Abbiamo aggiunto toByteArray() e fromByteArray() ai tipi dinamici nella libreria protolayout-express.
  • Abbiamo aggiunto toString() ai tipi dinamici nella libreria protolayout-expression.
  • Abbiamo aggiunto il supporto della valutazione per i tipi dinamici. La classe DynamicTypeEvaluator della libreria protolayout-expression-pipeline può essere utilizzata per valutare (e ricevere valori aggiornati) un tipo dinamico creato in precedenza (DynamicString, DynamicFloat e ...)
  • Quando non è possibile riprodurre le animazioni (perché sono disabilitate dal valutatore o perché il numero di animazioni in esecuzione ha raggiunto il limite impostato), i valori statici impostati sul nodo animabile verranno utilizzati per sostituire l'animazione.

Versione 1.0.0-alpha02

25 gennaio 2023

Vengono rilasciate le funzionalità androidx.wear.protolayout:protolayout:1.0.0-alpha02, androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02 e androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02. La versione 1.0.0-alpha02 contiene questi commit.

Nuove funzionalità

  • Gli strumenti per la creazione di layout da androidx.wear.tiles:tiles verranno spostati in androidx.wear.protolayout:protolayout. Quelli di androidx.wear.tiles:tiles verranno ritirati in una delle prossime release.

Versione 1.0.0-alpha01

11 gennaio 2023

Vengono rilasciate le versioni androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01 e androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01. La versione 1.0.0-alpha01 contiene questi commit.

Nuove funzionalità

  • Questa release introduce una nuova libreria "ProtoLayout Expression" per creare espressioni da variabili dinamiche.