tv

  
Fornece aos desenvolvedores funcionalidades do Compose e do Material Design para criar aplicativos direcionados à TV.
Atualização mais recente Versão estável Versão candidata a lançamento Versão Beta Versão Alfa
10 de julho de 2024 - 1.0.0-rc01 - -

Declarar dependências

Para adicionar dependências em tv-foundation e tv-material, é preciso adicionar o repositório Maven do Google ao seu projeto. Consulte a seção Repositório Maven do Google para mais informações.

Adicione as dependências dos artefatos necessários ao arquivo build.gradle do seu app ou módulo:

Groovy

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

Kotlin

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

Para mais informações sobre dependências, consulte Adicionar dependências de build.

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Não há notas de versão para este artefato.

Material de TV versão 1.0

Versão 1.0.0-rc01

10 de julho de 2024

Lançamento de androidx.tv:tv-material:1.0.0-rc01. A versão 1.0.0-rc01 contém estas confirmações.

Versão 1.0.0-beta01

1o de maio de 2024

Lançamento de androidx.tv:tv-material:1.0.0-beta01. A versão 1.0.0-beta01 contém estas confirmações.

Mudanças na API

  • A ColorScheme e as respectivas funções utilitárias agora estão estáveis. (If34fa).
  • O LocalContentColor agora está estável (I60ee2).
  • A API Typography agora é estável (I088d6).
  • As APIs Shapes agora estão estáveis (I0f5f4).
  • A API Border agora está estável (I69281).
  • A API Glow agora está estável (Iea5f1).
  • O componente de ícone agora está estável (I62c2d).
  • A API LocalTextStyles agora está estável (Iaded8).
  • A API MaterialTheme agora é estável (I2f541).
  • O componente Text agora está estável (Ib9e31).
  • O componente RadioButton agora é estável (Ia03c8).
  • O componente do switch agora está estável (I6cea3).
  • Os componentes Checkbox agora são estáveis (I7eafc).
  • Os componentes da superfície agora estão estáveis (I58758, I04aca).
  • NonInteractiveSurfaceDefaults foi renomeado como SurfaceDefaults, e NonInteractiveSurfaceColors foi renomeado como SurfaceColors (I0812e).
  • O Selectable Surface agora usa a terminologia "select" em vez de "check" porque as duas têm significados semânticos diferentes (I5a206).
  • NavigationDrawer e NavigationDrawerScope agora estão estáveis (I249c1).
  • O componente NavigationDrawerItem agora está estável (Id6986).
  • Os componentes da guia e TabRow agora estão estáveis (I92d92).
  • Os componentes Button, OutlinedButton, IconButton, OutlinedIconButton e WideButton agora estão estáveis (Ib4de8).
  • Os componentes Card, ClassicCard, CompactCard, WideClassicCard, StandardCardContainer e WideCardContainer agora estão estáveis (I34390).
  • StandardCardLayout foi renomeado como StandardCardContainer, e WideCardLayout foi renomeado como WideCardContainer (I08883).
  • CardContainerDefaults.ImageCard foi removido e CardDefaults.ContainerGradient renomeado como CardDefaults.ScrimBrush (I6adfe). É possível usar Card em vez de CardContainerDefaults.ImageCard nos contêineres de cartão.
  • ListItem e DenseListItem agora estão estáveis (Idebd9).
  • ListItemDefaults.ListItemShape, ListItemDefaults.FocusedDisabledBorder e ListItemDefaults.SelectedContainerColorOpacity agora são particulares (I5d533).
  • Os parâmetros de ListItem foram reorganizados e ListItemDefaults.ListItemElevation foi renomeado como ListItemDefaults.TonalElevation (Id6841). O parâmetro headlineContent foi movido para a parte de cima do elemento combinável. Anteriormente, você poderia usar a sintaxe da lambda final do Kotlin para transmitir o headlineContent. Agora, você precisa usar a sintaxe de parâmetros nomeados para fornecer o headlineContent.
  • LocalAbsoluteTonalElevation agora é interno (Ibfc65).
  • O componente ImmersiveList foi removido. Confira este exemplo para aprender a criar por conta própria. (Id48da).
  • Os componentes tv-material que expõem um MutableInteractionSource na API foram atualizados para expor um MutableInteractionSource anulável, que é definido como nulo por padrão. Não há mudanças semânticas aqui: transmitir um valor nulo significa que você não quer elevar a MutableInteractionSource, que vai ser criada dentro do componente, se necessário. Mudar para nulo permite que alguns componentes nunca aloquem uma MutableInteractionSource e que outros componentes só criem lentamente uma instância quando necessário, o que melhora o desempenho desses componentes. Se você não estiver usando o MutableInteractionSource transmitido a esses componentes, é recomendável transmitir o valor nulo. Também é recomendável fazer mudanças semelhantes nos seus próprios componentes. (I309b4, b/298048146).
  • O parâmetro TextAlign do componente TV Text agora não é nulo (Ib73b1, b/299490814).
  • Foi introduzido um valor não especificado especial para os campos TextAlign, TextDirection, Hyphens e LineBreak do ParagraphTextStyle para substituir (I4197e, b/299490814).

Mudanças de comportamento

  • O valor padrão do parâmetro shape para Surface não interativo foi alterado para RectangleShape (I1b859cb).
  • Alguns recursos de carrossel foram descartados para o lançamento da versão Beta porque as APIs necessárias são experimentais (I0e755d4).
  • A mudança de contentColor em Surface não ativa mais a animação entre estados (I436e794f).

Versão 1.0.0

Versão 1.0.0-alpha11

10 de julho de 2024

Lançamento de androidx.tv:tv-foundation:1.0.0-alpha11. A versão 1.0.0-alpha11 contém estas confirmações.

Mudanças na API

  • Os layouts lentos para TV foram descontinuados na biblioteca tv-foundation. Consulte este tíquete para saber como migrar dos layouts lentos de TV. (I0855f, b/332674072).
  • PlatformImeOptions agora é uma classe concreta em vez de uma interface. (If40a4).

Versão 1.0.0-alpha10

4 de outubro de 2023

Lançamento de androidx.tv:tv-foundation:1.0.0-alpha10 e androidx.tv:tv-material:1.0.0-alpha10. A versão 1.0.0-alpha10 contém estas confirmações.

Novos recursos

  • O NavigationDrawerItem foi introduzido para ser usado em NavigationDrawer e ModalNavigationDrawer. (I4b491).
  • Adicione o perfil de referência à biblioteca tv-foundation. (2b57fd7).
  • Foi adicionado um perfil de referência à biblioteca tv-material. (1711ff5).

Mudanças na API

  • NavigationDrawerScope.doesTabRowHaveFocus foi renomeado como NavigationDrawerScope.hasFocus (I8286b).
  • TabRowScope.isActivated foi renomeado como TabRowScope.hasFocus (Ic4273).

Correções de bugs

  • Foi corrigida a compatibilidade do carrossel com itens adjacentes que usam as APIs de restauração de foco (7b2a7a4).
  • Desative a indicação de brilho para API_LEVEL abaixo de 28, porque ela não é compatível com o SO. (6d3616f).
  • Foi corrigida a falha de ANR causada pelo posicionamento inadequado de itens em contêineres lentos ao rolar rápido na direção inversa. (642d65c).
  • O padding do plano de fundo foi removido da gaveta de navegação modal. (69965b2).
  • Correção do Scrim na gaveta de navegação para que ele seja desenhado acima do conteúdo do plano de fundo, e não atrás dele (d4bbefb).

Versão 1.0.0-alpha09

6 de setembro de 2023

Lançamento de androidx.tv:tv-foundation:1.0.0-alpha09 e androidx.tv:tv-material:1.0.0-alpha09. A versão 1.0.0-alpha09 contém estas confirmações.

Mudanças na API

  • A interface ReusableComposition foi adicionada para gerenciar o ciclo de vida e a reutilização de subcomposições (I812d1, b/252846775).
  • Sincronize o fork da base da tv com o compose-foundation. (I737c3, b/287011882).
  • A sobrecarga de LazyLayout foi adicionada, e ela aceita uma lambda de LazyLayoutItemProvider, não um objeto simples como antes. A sobrecarga anterior foi descontinuada. (I42a5a).
  • Adicione TvKeyboardAlignment para permitir que o desenvolvedor configure a posição do teclado na tela usando o AndroidImeOptions. (Idb772).
  • rememberCarouselState foi adicionado para lembrar de CarouselState com Saver ao Material do Compose para TV. (Id7275).
  • Alterar o parâmetro scrimColor: Color para scrimBrush:Brush a fim de permitir que os usuários adicionem gradientes ao scrim. (I254d4).

Versão 1.0.0-alpha08

26 de julho de 2023

Lançamento de androidx.tv:tv-foundation:1.0.0-alpha08 e androidx.tv:tv-material:1.0.0-alpha08. A versão 1.0.0-alpha08 contém estas confirmações.

Novos recursos

  • Introdução de componentes de ícone do Compose para o material de TV. (I86da4).
  • Adicionamos o componente ListItem ao TV Compose Material. (I3f0b3).
  • Adição do componente DenseListItem ao TV Compose Material. (I536bf).

Mudanças na API

  • As APIs públicas de tv-material foram marcadas como experimentais. (I632e7).
  • O TabRowScope foi introduzido para compartilhar o estado do elemento combinável TabRow com o elemento combinável Tab. Além disso, as propriedades TabColors foram renomeadas (Ief587).

Versão 1.0.0-alpha07

7 de junho de 2023

Lançamento de androidx.tv:tv-foundation:1.0.0-alpha07 e androidx.tv:tv-material:1.0.0-alpha07. A versão 1.0.0-alpha07 contém estas confirmações.

Mudanças na API

  • As indicações de escala dos componentes agora incluem "Nenhum" para desativar o dimensionamento. (I50df5).
  • Foi adicionado suporte ao clique longo para a superfície do Material de TV, cards e botões (Id2b89).
  • CarouselItem e CarouselScope foram removidos. A animação de conteúdo em primeiro plano pode ser gerada no slide usando Modifier.animateEnterExit de AnimatedContentScope. (Ic038e).
  • Parâmetros color e contentColor mesclados como colors para o Material Surface da TV (Ie69eb).
  • O elemento combinável RadioButton foi introduzido ao TV Material. (I08690).
  • O elemento combinável Switch foi introduzido ao TV Material. (I45e29).
  • O elemento combinável Checkbox foi introduzido ao TV Material. (I6a45a).
  • Introdução da plataforma não interativa em materiais de TV. (Ic5f85).
  • Torne as indicações internas. (Ibff82).

Versão 1.0.0-alpha06

19 de abril de 2023

Lançamento de androidx.tv:tv-foundation:1.0.0-alpha06 e androidx.tv:tv-material:1.0.0-alpha06. A versão 1.0.0-alpha06 contém estas confirmações.

Novos recursos

  • Foram adicionadas implementações do Material 3 Card otimizadas para TV.
    • Cartão básico (I5b701).
    • ClassicCard, CompactCard e WideClassicCard (I70471).
    • StandardCardLayout e WideCardLayout (I33fae).
  • Foram adicionadas implementações do botão do Material 3 otimizadas para TV.

Mudanças na API

  • CarouselSlide e slideCount em Carousel renomeados como CarouselItem e itemCount (Ie554c).
  • forward e backward ContentTransforms foram renomeados como StartToEnd e EndToStart. (Ie554c).

Correções de bugs

  • Processar o botão "Voltar" do botão Dpad quando o foco está em NavigationDrawer. (d654f4).

Versão 1.0.0-alpha05

22 de março de 2023

Lançamento de androidx.tv:tv-foundation:1.0.0-alpha05 e androidx.tv:tv-material:1.0.0-alpha05. A versão 1.0.0-alpha05 contém estas confirmações.

Mudanças na API

  • Introdução do elemento combinável da gaveta de navegação lateral no tv-material. Para aprender a usar esse elemento combinável, consulte os exemplos. (I12c08).
  • Introdução do elemento combinável Icon no TV Material 3 (I72db9).
  • Introdução do elemento combinável Surface ao tv-material com indicações como borda, brilho e escala, que podem ser usadas para criar componentes que destacam claramente o elemento em foco na tela da TV. (I4a6d8), (Iceea1), (Iee4d4), (I79edf) (Icb376).
  • O CarouselItem foi atualizado para CarouselSlide a fim de corresponder ao nome do parâmetro slideCount na API "Carrossel" (Ic4299).

Versão 1.0.0-alpha04

8 de fevereiro de 2023

Lançamento de androidx.tv:tv-foundation:1.0.0-alpha04 e androidx.tv:tv-material:1.0.0-alpha04. A versão 1.0.0-alpha04 contém estas confirmações.

Novos recursos

  • Em linhas, colunas e grades lentas, a tabela dinâmica vai ser substituída, se necessário, para que todo o item seja visualizado (11d7e40).
  • Foram adicionadas personalização de cores da guia em estados diferentes (21b2925).
  • O carrossel agora aceita animações personalizadas com rolagem manual para frente e para trás (431494a).

Mudanças na API

  • Renomeação de androidx.tv.material como androidx.tv.material3 e nivelamento da estrutura do pacote em androidx.tv.material3 (I6ca52).
  • O indicador na linha "Carousel Indicator" (Indicador do carrossel) agora é um slot que pode ser personalizado pelo desenvolvedor (268af2a).
  • focusableItem foi renomeado como immersiveListItem. Os usuários precisam adicionar manualmente o modificador focusable() ou clickable() com immersiveListItem (5dd5078) (b/263061052).
  • O timeToDisplayMillis foi renomeado como autoScrollDurationMillis no componente do carrossel (431494a).
  • O uso de CarouselItem agora é restrito para Carousel (431494a).
  • O componente do carrossel agora aceita ContentTransforms como a definição da animação em vez de EnterTransition e ExitTransitions (431494a).
  • Introdução da API PinnableContainer propagada por listas lentas usando um local de composição que permite fixar o item atual (Ib8881, b/259274257, b/195049010).
  • A propriedade mainAxisItemSpacing foi adicionada a TvLazyListLayoutInfo e TvLazyGridLayoutInfo (I37765).

Correções de bugs

  • A linha da guia foi atualizada para garantir que ela processe a contagem de guias de 0 ou 1 corretamente (I44009), (1c01525), (b/264018028).
  • Foi corrigida a falha na pesquisa de foco quando TvLazyColumn contém uma TvLazyRow vazia (e11b4fe), (b/260299091).
  • O modificador clickable agora funciona com ImmersiveList (5dd5078), (b/263061052).
  • A tecla "Voltar" agora é processada e usada para sair do carrossel em destaque (84c138c).
  • O carrossel não perde o foco após vários pressionamentos de tecla rápidos (799489f).
  • O carrossel não perde o foco após pressionamentos de tecla longos (b2cf37e).
  • Correção de falhas ocorridas quando a contagem de slides do carrossel mudava (b261247).

Versão 1.0.0-alpha03

7 de dezembro de 2022

Lançamento de androidx.tv:tv-foundation:1.0.0-alpha03 e androidx.tv:tv-material:1.0.0-alpha03. A versão 1.0.0-alpha03 contém estas confirmações.

Novos recursos

  • Agora, TabRow está disponível como uma API experimental e permite que os usuários adicionem as principais barras de navegação aos apps. Geralmente, dispositivos de TV esperam que as guias carreguem quando o título delas está focado na linha de guias.
  • Indicadores específicos de TV, como o sublinhado e o em forma de pílula são oferecidos prontos para uso. Os usos de exemplo podem ser encontrados em exemplos-tv.

Versão 1.0.0-alpha02

9 de novembro de 2022

Lançamento de androidx.tv:tv-foundation:1.0.0-alpha02 e androidx.tv:tv-material:1.0.0-alpha02. A versão 1.0.0-alpha02 contém estas confirmações.

Correções de bugs

  • Melhora no desempenho da rolagem em uma coleção de TvLazyRows/TvLazyColumns, reduzindo o espaço de pesquisa de foco (I723a3).

Versão 1.0.0-alpha01

5 de outubro de 2022

Lançamento de androidx.tv:tv-foundation:1.0.0-alpha01 e androidx.tv:tv-material:1.0.0-alpha01. A versão 1.0.0-alpha01 contém estas confirmações.

Novos recursos

A primeira versão Alfa contém implementações de pré-lançamento antecipado de componentes para casos de uso de TV, incluindo:

  • Foi adicionado o modificador scrollableWithPivot para permitir que contêineres de rolagem não lentos (como Row, Column e Grid) façam com que o contêiner role o conteúdo para que o item em foco permaneça na mesma posição na tela da TV.
  • Os elementos combináveis TvLazyRow, TvLazyColumn, TvLazyHorizontalGrid e TvLazyVerticalGrid foram adicionados. Dessa forma, o contêiner vai rolar o conteúdo para que o item em foco permaneça na mesma posição na tela da TV.
  • Foi adicionado um elemento combinável de carrossel em destaque para TV que permite ao usuário criar um carrossel de banner com rolagem automática.
  • Foi adicionado um elemento combinável de lista imersiva para TV que permite ao usuário criar uma linha/coluna/grade imersiva que muda o plano de fundo com base no item da lista em foco.

Problemas conhecidos

  • Por padrão, quando o contêiner de rolagem ganha foco, o primeiro elemento não ganha.
  • O foco em um TextField nem sempre abre o teclado ou pode inibir a seleção de outros campos.
  • A rolagem vertical em uma LazyColumn contendo LazyRows tem um desempenho ruim.