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 Alpha Release
16 luglio 2025 1.0.1 - - 1.1.0-alpha01

Dichiarazione di dipendenze

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

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

Alla moda

dependencies {
    implementation "androidx.tv:tv-foundation:1.0.0-alpha12"
    implementation "androidx.tv:tv-material:1.1.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.tv:tv-foundation:1.0.0-alpha12")
    implementation("androidx.tv:tv-material:1.1.0-alpha01")
}

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

Feedback

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

Creare un nuovo problema

Per ulteriori informazioni, consulta la documentazione di Issue Tracker.

Non sono disponibili note di rilascio per questo artefatto.

Tv-Material Version 1.1

Versione 1.1.0-alpha01

15 gennaio 2025

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

Modifiche alle API

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

Correzioni di bug

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

Tv-Material Version 1.0

Versione 1.0.1

16 luglio 2025

androidx.tv:tv-material:1.0.1 viene ritirata. La versione 1.0.1 contiene questi commit.

Correzioni di bug

  • È stata aggiornata l'altezza di NavigationDrawerItem in modo che corrisponda alle specifiche. (cf9a3ce)
  • La configurazione della strategia di composizione è stata spostata da Surface composable a Text composable. È stato corretto il bug a causa del quale Exoplayer non veniva visualizzato nei composable Surface nelle versioni precedenti dell'API Android. (9858ffb)

Versione 1.0.0

21 agosto 2024

androidx.tv:tv-material:1.0.0 viene ritirata. 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 ritirata. La versione 1.0.0-rc02 contiene questi commit.

Correzioni di bug

  • È stata corretta l'animazione del testo tremolante in Surface composable. (3163319)

Versione 1.0.0-rc01

10 luglio 2024

androidx.tv:tv-material:1.0.0-rc01 viene ritirata. 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 ritirata. La versione 1.0.0-beta01 contiene questi commit.

Modifiche alle 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 Interruttore è ora stabile (I6cea3)
  • I componenti Checkbox sono ora stabili (I7eafc)
  • I componenti di Surface sono ora stabili (I58758, I04aca)
  • NonInteractiveSurfaceDefaults rinominato in SurfaceDefaults e NonInteractiveSurfaceColors in SurfaceColors (I0812e)
  • Ora la superficie selezionabile utilizza il termine "seleziona" anziché "controlla" perché hanno entrambi significati semantici diversi (I5a206).
  • NavigationDrawer e NavigationDrawerScope ora sono stabili (I249c1)
  • Il componente NavigationDrawerItem è ora stabile (Id6986)
  • I componenti Scheda 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 rinominato 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 carte.
  • ListItem e DenseListItem ora sono stabili (Idebd9)
  • ListItemDefaults.ListItemShape, ListItemDefaults.FocusedDisabledBorder e ListItemDefaults.SelectedContainerColorOpacity sono ora privati (I5d533)
  • Sono stati riorganizzati i parametri di ListItem e ListItemDefaults.ListItemElevation è stato rinominato in ListItemDefaults.TonalElevation (Id6841). Il parametro headlineContent è stato spostato nella parte superiore del componente componibile. 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 realizzarlo. (Id48da)
  • I componenti tv-material che espongono un MutableInteractionSource nella loro API sono stati aggiornati in modo da esporre un MutableInteractionSource che accetta valori Null e il cui valore predefinito è Null. Non sono state apportate modifiche semantiche: il passaggio di null significa che non vuoi sollevare MutableInteractionSource e verrà creato all'interno del componente, se necessario. Se viene impostato su null, alcuni componenti non allocano mai un MutableInteractionSource, mentre altri creano un'istanza solo quando necessario, il che migliora le prestazioni di questi componenti. Se non utilizzi MutableInteractionSource che trasmetti a questi componenti, ti consigliamo di trasmettere null. Ti consigliamo inoltre di apportare modifiche simili nei tuoi componenti. (I309b4, b/298048146)
  • Il parametro TextAlign del componente TV Text ora non è nullo (Ib73b1, b/299490814)
  • È stato introdotto un valore speciale Non specificato 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 sono state eliminate per il lancio della versione beta perché le API necessarie sono sperimentali (I0e755d4)
  • La modifica di contentColor in Surface non viene più animata 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 ritirata. La versione 1.0.0-alpha12 contiene questi commit.

Modifiche alle API

  • Pulizia dei layout pigri da tv-foundation. Consulta le note di rilascio della versione 1.0.0-alpha11 per eseguire la migrazione dai layout pigri di tv-foundation. (I2fdd3, b/358913893)

Versione 1.0.0-alpha11

10 luglio 2024

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

Modifiche alle API

  • I layout pigri TV sono stati ritirati dalla libreria tv-foundation. Consulta questo ticket per scoprire come eseguire la migrazione dai layout pigri della 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 sono stati 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 base alla libreria tv-foundation. (2b57fd7)
  • Aggiungi il profilo di base alla libreria tv-material. (1711ff5)

Modifiche alle API

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

Correzioni di bug

  • Correggi la compatibilità di Carousel con gli elementi adiacenti che utilizzano le API di ripristino dello stato attivo. (7b2a7a4)
  • Disattiva l'indicatore di bagliore per API_LEVEL inferiore a 28, in quanto non è supportato dal sistema operativo. (6d3616f)
  • Correzione dell'arresto anomalo ANR causato dal posizionamento errato degli elementi nei contenitori lazy durante lo scorrimento rapido in direzione inversa. (642d65c)
  • Rimozione del padding dello sfondo nel riquadro di navigazione modale. (69965b2)
  • Correggi la sfumatura nel riquadro di navigazione a scomparsa in modo che venga disegnata 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 sono stati rilasciati. La versione 1.0.0-alpha09 contiene questi commit.

Modifiche alle 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 l'overload di LazyLayout, che accetta una lambda di LazyLayoutItemProvider, non un oggetto semplice come in precedenza. Il precedente sovraccarico è 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 a TV Compose Material. (Id7275)
  • Modifica del parametro scrimColor: Color in scrimBrush:Brush per consentire agli utenti di aggiungere sfumature alla protezione. (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 sono stati rilasciati. La versione 1.0.0-alpha08 contiene questi commit.

Nuove funzionalità

  • Introduci i componenti Chip per i contenuti di Compose per TV. (I86da4)
  • Aggiungi il componente ListItem al materiale di composizione TV. (I3f0b3)
  • Aggiungi il componente DenseListItem al materiale di composizione TV. (I536bf)

Modifiche alle API

  • Le API per i materiali TV pubblici sono state contrassegnate come sperimentali. (I632e7)
  • È stato introdotto TabRowScope per condividere lo stato del 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 sono stati rilasciati. La versione 1.0.0-alpha07 contiene questi commit.

Modifiche alle API

  • Le indicazioni di scala dei componenti ora includono Nessuno per disattivare il ridimensionamento. (I50df5)
  • Aggiunto il supporto del clic prolungato per la superficie Material TV, le schede e i pulsanti. (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)
  • Uniti i parametri color e contentColor come colors per la superficie TV Material. (Ie69eb)
  • È stato introdotto il composable RadioButton in TV Material. (I08690)
  • È stato introdotto il composable Switch in TV Material. (I45e29)
  • È stato introdotto il composable Checkbox in TV Material. (I6a45a)
  • È stata introdotta una superficie non interattiva in Materiale TV. (Ic5f85)
  • Rendi interne le indicazioni. (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 sono stati rilasciati. La versione 1.0.0-alpha06 contiene questi commit.

Nuove funzionalità

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

Modifiche alle API

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

Correzioni di bug

  • Gestisci il pulsante 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 sono stati rilasciati. La versione 1.0.0-alpha05 contiene questi commit.

Modifiche alle API

  • Ti presentiamo il componente componibile del riquadro di navigazione laterale in tv-material. Per scoprire come utilizzare questo elemento componibile, consulta gli esempi. (I12c08)
  • Introduzione del composable Icon in TV Material 3 (I72db9)
  • Introduzione di Surface composable a tv-material con indicazioni come Bordo, Bagliore e Scala, che possono essere utilizzate per creare componenti che evidenziano chiaramente l'elemento selezionato sullo schermo della TV. (I4a6d8), (Iceea1), (Iee4d4), (I79edf), (Icb376)
  • Aggiorna CarouselItem a 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 sono stati rilasciati. La versione 1.0.0-alpha04 contiene questi commit.

Nuove funzionalità

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

Modifiche alle API

  • Ridenominazione di androidx.tv.material in androidx.tv.material3 e appiattimento della struttura del pacchetto in androidx.tv.material3. (I6ca52)
  • L'indicatore all'interno della riga Indicatore carosello ora è uno spazio 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)
  • È stato rinominato timeToDisplayMillis in autoScrollDurationMillis nel componente Carosello. (431494a)
  • Ora l'utilizzo di CarouselItem è limitato a Carousel. (431494a)
  • Il carosello ora accetta ContentTransforms come definizione dell'animazione anziché EnterTransition e ExitTransitions. (431494a)
  • È stata introdotta l'API PinnableContainer propagata da elenchi pigri tramite un composizione locale che consente di bloccare l'elemento corrente. (Ib8881, b/259274257, b/195049010)
  • Aggiunta della proprietà mainAxisItemSpacing a TvLazyListLayoutInfo e TvLazyGridLayoutInfo (I37765)

Correzioni di bug

  • Aggiorna la riga delle schede per assicurarti che gestisca correttamente il conteggio delle schede pari a 0 o 1. (I44009), (1c01525), (b/264018028)
  • Correzione dell'arresto anomalo della ricerca con messa a fuoco quando TvLazyColumn contiene TvLazyRow vuoto. (e11b4fe), (b/260299091)
  • Il modificatore clickable ora funziona con ImmersiveList. (5dd5078), (b/263061052)
  • Il tasto Indietro ora viene gestito e utilizzato per uscire dal carosello in primo piano. (84c138c)
  • Il carosello non perde la messa a fuoco in caso di pressione rapida di più tasti. (799489f)
  • Il carosello non perde la messa a fuoco durante le pressioni prolungate dei tasti. (b2cf37e)
  • Risolti arresti anomali quando cambia il conteggio delle slide del carosello. (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 sono stati 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 in alto alle proprie app. In genere, i dispositivi TV si aspettano che le schede vengano caricate quando il titolo della scheda è selezionato nella riga delle schede.
  • Gli indicatori specifici per la TV, come l'indicatore di sottolineatura e l'indicatore a pillola, sono disponibili immediatamente. Esempi di utilizzo sono disponibili 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 sono stati rilasciati. La versione 1.0.0-alpha02 contiene questi commit.

Correzioni di bug

  • Miglioramento delle prestazioni di scorrimento durante lo scorrimento di una raccolta di TvLazyRows/TvLazyColumns riducendo lo spazio di ricerca della messa a fuoco.(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 sono stati rilasciati. La versione 1.0.0-alpha01 contiene questi commit.

Nuove funzionalità

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

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

Problemi noti

  • Quando il contenitore di scorrimento acquisisce lo stato attivo, il primo elemento non lo acquisisce per impostazione predefinita.
  • Se ti concentri su un TextField, la tastiera non si apre sempre o la messa a fuoco non si sposta su altri campi.
  • Lo scorrimento verticale in un LazyColumn contenente LazyRows ha un rendimento scarso.