tv
Atualização mais recente | Versão estável | Versão candidata a lançamento | Versão Beta | Versão Alfa |
---|---|---|---|---|
21 de agosto de 2024 | 1.0.0 | - | - | - |
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" }
Kotlin
dependencies { implementation("androidx.tv:tv-foundation:1.0.0-alpha11") implementation("androidx.tv:tv-material:1.0.0") }
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.
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
21 de agosto de 2024
Lançamento de androidx.tv:tv-material:1.0.0
. A versão 1.0.0 é a primeira versão estável do androidx.tv:tv-material
.
Versão 1.0.0-rc02
7 de agosto de 2024
Lançamento de androidx.tv:tv-material:1.0.0-rc02
. A versão 1.0.0-rc02 contém estas confirmações.
Correções de bugs
- Corrigimos a animação de texto "Instável" no elemento combinável Surface. (3163319).
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 comoSurfaceDefaults
, eNonInteractiveSurfaceColors
foi renomeado comoSurfaceColors
(I0812e).- O Selectable Surface agora usa a terminologia "select" em vez de "check" porque as duas têm significados semânticos diferentes (I5a206).
NavigationDrawer
eNavigationDrawerScope
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
eWideButton
agora estão estáveis (Ib4de8). Card
,ClassicCard
,CompactCard
,WideClassicCard
,StandardCardContainer
e mais Os componentesWideCardContainer
agora estão estáveis (I34390).StandardCardLayout
foi renomeado comoStandardCardContainer
, eWideCardLayout
foi renomeado comoWideCardContainer
(I08883).CardContainerDefaults.ImageCard
foi removido eCardDefaults.ContainerGradient
renomeado comoCardDefaults.ScrimBrush
(I6adfe). É possível usarCard
em vez deCardContainerDefaults.ImageCard
nos contêineres de cartão.ListItem
eDenseListItem
agora estão estáveis (Idebd9).ListItemDefaults.ListItemShape
,ListItemDefaults.FocusedDisabledBorder
eListItemDefaults.SelectedContainerColorOpacity
agora são particulares (I5d533).- Reorganizou os parâmetros de
ListItem
eListItemDefaults.ListItemElevation
foi renomeado comoListItemDefaults.TonalElevation
(Id6841). O parâmetroheadlineContent
foi movido para a parte de cima do elemento combinável. Anteriormente, você poderia usar a sintaxe da lambda final do Kotlin para transmitir oheadlineContent
. Agora, você precisa usar a sintaxe de parâmetros nomeados para fornecer oheadlineContent
. 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 umMutableInteractionSource
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 aMutableInteractionSource
, que vai ser criada dentro do componente, se necessário. Mudar para nulo permite que alguns componentes nunca aloquem umaMutableInteractionSource
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 oMutableInteractionSource
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
eLineBreak
doParagraphTextStyle
para substituir (I4197e, b/299490814).
Mudanças de comportamento
- O valor padrão do parâmetro
shape
paraSurface
não interativo foi alterado paraRectangleShape
(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
emSurface
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 emNavigationDrawer
eModalNavigationDrawer
. (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 comoNavigationDrawerScope.hasFocus
(I8286b).TabRowScope.isActivated
foi renomeado comoTabRowScope.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 deLazyLayoutItemProvider
, 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 oAndroidImeOptions
. (Idb772). rememberCarouselState
foi adicionado para lembrar deCarouselState
comSaver
ao Material do Compose para TV. (Id7275).- Alterar o parâmetro
scrimColor: Color
parascrimBrush: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ávelTabRow
com o elemento combinável Tab. Além disso, as propriedadesTabColors
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
eCarouselScope
foram removidos. A animação de conteúdo em primeiro plano pode ser gerada no slide usandoModifier.animateEnterExit
deAnimatedContentScope
. (Ic038e).- Parâmetros
color
econtentColor
mesclados comocolors
para o Material Surface da TV (Ie69eb). - O elemento combinável
RadioButton
foi introduzido no Material para TV. (I08690). - O elemento combinável
Switch
foi introduzido no Material para TV. (I45e29). - O elemento combinável
Checkbox
foi introduzido no Material para TV. (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.
- Foram adicionadas implementações do botão do Material 3 otimizadas para TV.
Mudanças na API
CarouselSlide
eslideCount
emCarousel
renomeados comoCarouselItem
eitemCount
(Ie554c).forward
ebackward
ContentTransforms
foram renomeados comoStartToEnd
eEndToStart
. (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). - Atualize
CarouselItem
paraCarouselSlide
a fim de corresponder ao nome do parâmetroslideCount
em "Carrossel" API (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
comoandroidx.tv.material3
e nivelamento da estrutura do pacote emandroidx.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 comoimmersiveListItem
. Os usuários precisam adicionar manualmente o modificadorfocusable()
ouclickable()
comimmersiveListItem
(5dd5078) (b/263061052).- O
timeToDisplayMillis
foi renomeado comoautoScrollDurationMillis
no componente do carrossel (431494a). - O uso de
CarouselItem
agora é restrito paraCarousel
(431494a). - O componente do carrossel agora aceita
ContentTransforms
como a definição da animação em vez deEnterTransition
eExitTransitions
(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 aTvLazyListLayoutInfo
eTvLazyGridLayoutInfo
(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 umaTvLazyRow
vazia (e11b4fe), (b/260299091). - O modificador
clickable
agora funciona comImmersiveList
(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
eTvLazyVerticalGrid
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
contendoLazyRows
tem um desempenho ruim.