tv

  
Fornisce agli sviluppatori le funzionalità di Compose e Material Design per scrivere applicazioni per la TV
Ultimo aggiornamento Release stabile Candidato per la release Versione beta Versione alpha
15 gennaio 2025 1.0.0 - - 1.1.0-alpha01

Dichiarazione delle dipendenze

Per aggiungere dipendenze da tv-foundation e tv-material, devi aggiungere il repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il repository Maven di Google.

Aggiungi le dipendenze per gli elementi necessari nel file build.gradle per la tua app o il tuo modulo:

Alla moda

dependencies {
    implementation "androidx.tv:tv-foundation:1.0.0-alpha11"
    implementation "androidx.tv:tv-material:1.0.0"
}

Kotlin

dependencies {
    implementation("androidx.tv:tv-foundation:1.0.0-alpha11")
    implementation("androidx.tv:tv-material:1.0.0")
}

Per ulteriori informazioni sulle dipendenze, consulta Aggiungere dipendenze di compilazione.

Feedback

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

Creare un nuovo problema

Per ulteriori informazioni, consulta la documentazione del Monitoraggio problemi.

Non sono disponibili note di rilascio per questo elemento.

Tv-Material Version 1.1

Versione 1.1.0-alpha01

15 gennaio 2025

androidx.tv:tv-material:1.1.0-alpha01 viene rilasciato. La versione 1.1.0-alpha01 contiene questi commit.

Modifiche all'API

  • Modifica FocusEnterExitScope.cancelFocus() in cancelFocusChange()(I89959)
  • FocusProperties.enter e FocusProperties.exit sono stati sostituiti rispettivamente con onEnter e onExit utilizzando un ambito del destinatario anziché il parametro FocusDirection. (I6e667)

Correzioni di bug

  • CompositingStrategy.OffScreen è stato spostato da Superficie a Testo per correggere il tremolio del testo durante la scalatura. (I92b15f17)
  • È stata corretta la gestione non funzionante della messa a fuoco nel carosello (Ie508b721375)
  • La superficie (non interattiva) ha un'implementazione semplificata rispetto a quella delle superfici interattive. (I7ea545150)

Tv-Material Version 1.0

Versione 1.0.0

21 agosto 2024

androidx.tv:tv-material:1.0.0 viene rilasciato. La versione 1.0.0 è la prima release stabile di androidx.tv:tv-material.

Versione 1.0.0-rc02

7 agosto 2024

androidx.tv:tv-material:1.0.0-rc02 viene rilasciato. La versione 1.0.0-rc02 contiene questi commit.

Correzioni di bug

  • È stata corretta l'animazione del testo a scatti nel componente composable della piattaforma Surface. (3163319)

Versione 1.0.0-rc01

10 luglio 2024

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

Versione 1.0.0-beta01

1° maggio 2024

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

Modifiche all'API

  • ColorScheme e le relative funzioni di utilità sono ora stabili. (If34fa)
  • LocalContentColor è ora stabile (I60ee2)
  • L'API Typography è ora stabile (I088d6)
  • Le API Shapes sono ora stabili (I0f5f4)
  • L'API Border è ora stabile (I69281)
  • L'API Glow è ora stabile (Iea5f1)
  • Il componente icona è ora stabile (I62c2d)
  • L'API LocalTextStyles è ora stabile (Iaded8)
  • L'API MaterialTheme è ora stabile (I2f541)
  • Il componente di testo è ora stabile (Ib9e31)
  • Il componente RadioButton è ora stabile (Ia03c8)
  • Il componente Switch ora è stabile (I6cea3)
  • I componenti Checkbox ora sono stabili (I7eafc)
  • I componenti della piattaforma ora sono stabili (I58758, I04aca)
  • NonInteractiveSurfaceDefaults rinominato in SurfaceDefaults e NonInteractiveSurfaceColors in SurfaceColors (I0812e)
  • La funzionalità Selectable Surface ora utilizza la terminologia "seleziona" anziché "controlla" perché entrambe hanno un significato semantico diverso (I5a206)
  • NavigationDrawer e NavigationDrawerScope ora sono stabili (I249c1)
  • Il componente NavigationDrawerItem è ora stabile (Id6986)
  • I componenti Tab e TabRow sono ora stabili (I92d92)
  • I componenti Button, OutlinedButton, IconButton, OutlinedIconButton e WideButton sono ora stabili (Ib4de8)
  • I componenti Card, ClassicCard, CompactCard, WideClassicCard, StandardCardContainer e WideCardContainer sono ora stabili (I34390)
  • StandardCardLayout rinominato in StandardCardContainer e WideCardLayout in WideCardContainer (I08883)
  • CardContainerDefaults.ImageCard è stato rimosso e CardDefaults.ContainerGradient è stato rinominato in CardDefaults.ScrimBrush (I6adfe). Puoi utilizzare Card al posto di CardContainerDefaults.ImageCard nei contenitori delle schede.
  • ListItem e DenseListItem ora sono stabili (Idebd9)
  • ListItemDefaults.ListItemShape, ListItemDefaults.FocusedDisabledBorder e ListItemDefaults.SelectedContainerColorOpacity sono ora privati (I5d533)
  • Abbiamo riorganizzato i parametri di ListItem e rinominato ListItemDefaults.ListItemElevation in ListItemDefaults.TonalElevation (Id6841). Il parametro headlineContent è stato spostato nella parte superiore del composable. In precedenza, potevi utilizzare la sintassi lambda finale di Kotlin per passare headlineContent. Ora dovrai utilizzare la sintassi dei parametri denominati per fornire headlineContent.
  • LocalAbsoluteTonalElevation ora è interno (Ibfc65)
  • Il componente ImmersiveList è stato rimosso. Dai un'occhiata a questo esempio per scoprire come crearlo autonomamente. (Id48da)
  • I componenti tv-material che espongono un MutableInteractionSource nella loro API sono stati aggiornati in modo da esporre un MutableInteractionSource nullable che per impostazione predefinita è null. Non sono presenti modifiche semantiche: se passi null, significa che non vuoi eseguire l'hoisting di MutableInteractionSource, che verrà creato all'interno del componente, se necessario. La modifica in null consente ad alcuni componenti di non allocare mai un MutableInteractionSource e ad altri di creare un'istanza solo quando necessario, il che migliora le prestazioni di questi componenti. Se non utilizzi MutableInteractionSource che passi a questi componenti, ti consigliamo di passare null. Ti consigliamo inoltre di apportare modifiche simili ai tuoi componenti. (I309b4, b/298048146)
  • Il parametro TextAlign del componente di testo TV ora non è nullo (Ib73b1, b/299490814)
  • È stato introdotto un valore Non specificato speciale per i campi TextAlign, TextDirection, Hyphens e LineBreak di ParagraphTextStyle da sostituire (I4197e, b/299490814)

Modifiche al comportamento

  • Il valore predefinito del parametro shape per Surface non interattivo è stato modificato in RectangleShape (I1b859cb)
  • Alcune funzionalità del carosello non sono state incluse nel lancio beta perché le API necessarie sono sperimentali (I0e755d4)
  • La modifica di contentColor in Surface non anima più tra gli stati (I436e794f)

Versione 1.0.0

Versione 1.0.0-alpha12

15 gennaio 2025

androidx.tv:tv-foundation:1.0.0-alpha12 viene rilasciato. La versione 1.0.0-alpha12 contiene questi commit.

Modifiche all'API

  • Pulisci i layout lazy da tv-foundation. Consulta le note di rilascio 1.0.0-alpha11 per eseguire la migrazione dai layout lazy di tv-foundation. (I2fdd3, b/358913893)

Versione 1.0.0-alpha11

10 luglio 2024

androidx.tv:tv-foundation:1.0.0-alpha11 viene rilasciato. La versione 1.0.0-alpha11 contiene questi commit.

Modifiche all'API

  • I layout lazy della TV sono stati ritirati dalla libreria tv-foundation. Consulta questo ticket per scoprire come eseguire la migrazione dai layout lazy per TV. (I0855f, b/332674072)
  • PlatformImeOptions ora è una classe concreta anziché un'interfaccia. (If40a4)

Versione 1.0.0-alpha10

4 ottobre 2023

androidx.tv:tv-foundation:1.0.0-alpha10 e androidx.tv:tv-material:1.0.0-alpha10 vengono rilasciati. La versione 1.0.0-alpha10 contiene questi commit.

Nuove funzionalità

  • È stato introdotto NavigationDrawerItem da utilizzare in NavigationDrawer e ModalNavigationDrawer. (I4b491)
  • Aggiungi il profilo di riferimento alla libreria tv-foundation. (2b57fd7)
  • Aggiungi il profilo di riferimento alla raccolta di materiale TV. (1711ff5)

Modifiche all'API

  • NavigationDrawerScope.doesTabRowHaveFocus rinominato in NavigationDrawerScope.hasFocus. (I8286b)
  • TabRowScope.isActivated rinominato in TabRowScope.hasFocus. (Ic4273)

Correzioni di bug

  • Correggere la compatibilità del carosello con gli elementi adiacenti che utilizzano le API di ripristino dell'attenzione. (7b2a7a4)
  • Disattiva l'indicazione dell'effetto bagliore per API_LEVEL inferiore a 28 perché non è supportato dal sistema operativo. (6d3616f)
  • Correzione dell'arresto anomalo ANR causato dal posizionamento improprio degli elementi nei contenitori lazy durante lo scorrimento veloce in direzione opposta. (642d65c)
  • È stata rimossa la spaziatura dello sfondo nel riquadro di navigazione modale. (69965b2)
  • Correggi lo scrim nel riquadro di navigazione a scomparsa in modo che venga visualizzato sopra i contenuti di sfondo anziché dietro. (d4bbefb)

Versione 1.0.0-alpha09

6 settembre 2023

androidx.tv:tv-foundation:1.0.0-alpha09 e androidx.tv:tv-material:1.0.0-alpha09 vengono rilasciati. La versione 1.0.0-alpha09 contiene questi commit.

Modifiche all'API

  • Aggiungi l'interfaccia ReusableComposition per gestire il ciclo di vita e il riutilizzo delle sottocomposizioni. (I812d1, b/252846775)
  • Sincronizza il fork tv-foundation con compose-foundation. (I737c3, b/287011882)
  • È stato aggiunto il sovraccarico di LazyLayout, che ora accetta una funzione lambda di LazyLayoutItemProvider, non un semplice oggetto come in precedenza. Il sovraccarico precedente è stato ritirato. (I42a5a)
  • Aggiungi TvKeyboardAlignment per consentire allo sviluppatore di configurare la posizione della tastiera sullo schermo tramite AndroidImeOptions. (Idb772)
  • Aggiungi rememberCarouselState per ricordare CarouselState con Saver al materiale di composizione della TV. (Id7275)
  • Modifica del parametro scrimColor: Color in scrimBrush:Brush per consentire agli utenti di aggiungere gradienti allo scrim. (I254d4)

Versione 1.0.0-alpha08

26 luglio 2023

androidx.tv:tv-foundation:1.0.0-alpha08 e androidx.tv:tv-material:1.0.0-alpha08 vengono rilasciati. La versione 1.0.0-alpha08 contiene questi commit.

Nuove funzionalità

  • Introduzione dei componenti Chip per il materiale di Compose per TV. (I86da4)
  • Aggiungi il componente ListItem al materiale di composizione per la TV. (I3f0b3)
  • Aggiungi il componente DenseListItem al materiale di composizione TV. (I536bf)

Modifiche all'API

  • Le API di materiale televisivo pubblico sono state contrassegnate come sperimentali. (I632e7)
  • È stato introdotto TabRowScope per condividere lo stato dal composable TabRow con il composable Tab e sono state rinominate le proprietà TabColors. (Ief587)

Versione 1.0.0-alpha07

7 giugno 2023

androidx.tv:tv-foundation:1.0.0-alpha07 e androidx.tv:tv-material:1.0.0-alpha07 vengono rilasciati. La versione 1.0.0-alpha07 contiene questi commit.

Modifiche all'API

  • Le indicazioni di scala dei componenti ora includono Nessuno per disattivare la scalabilità. (I50df5)
  • È stato aggiunto il supporto per i clic lunghi per le schede, le superfici e i pulsanti Material TV. (Id2b89)
  • CarouselItem e CarouselScope sono stati rimossi. L'animazione dei contenuti in primo piano può essere ottenuta nella slide utilizzando Modifier.animateEnterExit da AnimatedContentScope. (Ic038e)
  • Parametri color e contentColor uniti in colors per la superficie del materiale della TV. (Ie69eb)
  • È stato introdotto il composable RadioButton in Material per TV. (I08690)
  • È stato introdotto il composable Switch in Material per TV. (I45e29)
  • È stato introdotto il composable Checkbox in Material per TV. (I6a45a)
  • È stata introdotta la superficie non interattiva nel materiale per TV. (Ic5f85)
  • Rendi le indicazioni interne. (Ibff82)

Versione 1.0.0-alpha06

19 aprile 2023

androidx.tv:tv-foundation:1.0.0-alpha06 e androidx.tv:tv-material:1.0.0-alpha06 vengono rilasciati. La versione 1.0.0-alpha06 contiene questi commit.

Nuove funzionalità

  • Aggiunta di implementazioni di schede Material 3 ottimizzate per la TV.
    • Scheda di base (I5b701)
    • ClassicCard, CompactCard e WideClassicCard (I70471)
    • StandardCardLayout e WideCardLayout (I33fae)
  • Aggiungi implementazioni di pulsanti Material 3 ottimizzate per la TV.

Modifiche all'API

  • CarouselSlide e slideCount in Carousel sono stati rinominati in CarouselItem e itemCount. (Ie554c)
  • forward e backward ContentTransforms sono stati rinominati in StartToEnd e EndToStart. (Ie554c)

Correzioni di bug

  • Gestisci il pulsante del D-pad Indietro quando lo stato attivo è impostato su NavigationDrawer. (d654f4)

Versione 1.0.0-alpha05

22 marzo 2023

androidx.tv:tv-foundation:1.0.0-alpha05 e androidx.tv:tv-material:1.0.0-alpha05 vengono rilasciati. La versione 1.0.0-alpha05 contiene questi commit.

Modifiche all'API

  • Ti presentiamo il riquadro di navigazione a scomparsa laterale componibile in tv-material. Per scoprire come utilizzare questo composable, consulta i samples. (I12c08)
  • Introduzione del componente componibile Icon in Material per TV 3 (I72db9)
  • Introduzione di elementi composibili della superficie in tv-material con indicazioni come Bordo, Luce e Scala, che possono essere utilizzati per creare componenti che mettano in evidenza l'elemento attivo sullo schermo della TV. (I4a6d8), (Iceea1), (Iee4d4), (I79edf), (Icb376)
  • Aggiorna CarouselItem in CarouselSlide in modo che corrisponda al nome del parametro slideCount nell'API "Carosello" (Ic4299)

Versione 1.0.0-alpha04

8 febbraio 2023

androidx.tv:tv-foundation:1.0.0-alpha04 e androidx.tv:tv-material:1.0.0-alpha04 vengono rilasciati. La versione 1.0.0-alpha04 contiene questi commit.

Nuove funzionalità

  • Nelle righe, nelle colonne e nelle griglie lazy, il pivot viene sostituito, se necessario, per assicurarsi che l'intero elemento venga visualizzato. (11d7e40)
  • Aggiungere la personalizzazione dei colori delle schede in stati diversi. (21b2925)
  • Il carosello ora accetta animazioni personalizzate per lo scorrimento manuale avanti e indietro. (431494a)

Modifiche all'API

  • Rinomina androidx.tv.material in androidx.tv.material3 e appiattisce la struttura del pacchetto in androidx.tv.material3. (I6ca52)
  • L'indicatore all'interno della riga Indicatore carosello ora è uno slot che può essere personalizzato dallo sviluppatore. (268af2a)
  • focusableItem rinominato in immersiveListItem. Gli utenti dovranno aggiungere manualmente il modificatore focusable() o clickable() insieme a immersiveListItem (5dd5078)(b/263061052)
  • timeToDisplayMillis è stato rinominato in autoScrollDurationMillis nel componente carosello. (431494a)
  • Ora l'uso di CarouselItem è limitato agli account Carousel. (431494a)
  • Il carosello ora accetta ContentTransforms come definizione di animazione anziché EnterTransition e ExitTransitions. (431494a)
  • È stata introdotta l'API PinnableContainer propagata dagli elenchi lazy tramite una composizione locale che consente di bloccare l'elemento corrente. (Ib8881, b/259274257, b/195049010)
  • È stata aggiunta la proprietà mainAxisItemSpacing a TvLazyListLayoutInfo e TvLazyGridLayoutInfo (I37765)

Correzioni di bug

  • Aggiorna riga-scheda per assicurarti che gestisca correttamente il conteggio-schede pari a 0 o 1. (I44009), (1c01525), (b/264018028)
  • Correggere l'arresto anomalo della ricerca con il fuoco quando TvLazyColumn contiene TvLazyRow vuoto. (e11b4fe), (b/260299091)
  • Il modificatore clickable ora funziona con ImmersiveList. (5dd5078), (b/263061052)
  • Il tasto Indietro viene ora gestito e utilizzato per uscire dal carosello in evidenza. (84c138c)
  • Il carosello non perde il focus con più pressioni rapide dei tasti. (799489f)
  • Il carosello non perde il focus con pressioni prolungate dei tasti. (b2cf37e)
  • Sono stati risolti i crash quando il numero di diapositive del carosello cambia. (b261247)

Versione 1.0.0-alpha03

7 dicembre 2022

androidx.tv:tv-foundation:1.0.0-alpha03 e androidx.tv:tv-material:1.0.0-alpha03 vengono rilasciati. La versione 1.0.0-alpha03 contiene questi commit.

Nuove funzionalità

  • TabRow è ora disponibile come API sperimentale che consente agli utenti di aggiungere barre di navigazione superiori alle loro app. In genere, i dispositivi TV si aspettano che le schede vengano caricate quando il titolo della scheda è attivo nella riga della scheda.
  • Gli indicatori specifici per la TV, come l'indicatore di sottolineatura e l'indicatore a pillola, sono disponibili immediatamente. Puoi trovare esempi di utilizzo in tv-samples

Versione 1.0.0-alpha02

9 novembre 2022

androidx.tv:tv-foundation:1.0.0-alpha02 e androidx.tv:tv-material:1.0.0-alpha02 vengono rilasciati. La versione 1.0.0-alpha02 contiene questi commit.

Correzioni di bug

  • Miglioramento delle prestazioni di scorrimento quando si scorre una raccolta di TvLazyRows/TvLazyColumns riducendo lo spazio di ricerca in primo piano.(I723a3)

Versione 1.0.0-alpha01

5 ottobre 2022

androidx.tv:tv-foundation:1.0.0-alpha01 e androidx.tv:tv-material:1.0.0-alpha01 vengono rilasciati. La versione 1.0.0-alpha01 contiene questi commit.

Nuove funzionalità

La prima versione alpha contiene implementazioni di anteprime iniziali dei componenti per i casi d'uso TV, tra cui:

  • Aggiunta del modificatore scrollableWithPivot per consentire ai contenitori con scorrimento non lazy, come Riga, Colonna e Griglia, di scorrere i contenuti in modo che l'elemento attivo rimanga nella stessa posizione sullo schermo della TV.
  • Aggiunta dei composabili TvLazyRow,TvLazyColumn, TvLazyHorizontalGrid, TvLazyVerticalGrid per fare in modo che il contenitore scorrevole scorra i contenuti in modo che l'elemento in primo piano rimanga nella stessa posizione sullo schermo della TV.
  • Aggiunta del carosello in primo piano composable per la TV che consente all'utente di creare un carosello di banner con scorrimento automatico.
  • Aggiunta di un elemento composable elenco immersivo per la TV che consente all'utente di creare una riga/colonna/griglia immersiva che cambia lo sfondo in base all'elemento dell'elenco in primo piano.

Problemi noti

  • Quando il contenitore acquisisce lo stato attivo, per impostazione predefinita il primo elemento non lo acquisisce.
  • Non sempre l'attivazione della modalità di immissione su un TextField apre la tastiera o può impedire il passaggio dell'attenzione ad altri campi.
  • Lo scorrimento verticale in un LazyColumn contenente LazyRows ha un rendimento scadente.