tv

  
Les proporciona a los desarrolladores funciones de Compose y Material Design a fin de escribir aplicaciones para TV
Actualización más reciente Versión estable Versión potencial Versión beta Versión alfa
15 de enero de 2025 1.0.0 - - 1.1.0-alpha01

Cómo declarar dependencias

Para agregar dependencias en tv-foundation y tv-material, debes agregar el repositorio de Maven de Google a tu proyecto. Consulta el repositorio de Maven de Google para obtener más información.

Agrega las dependencias de los artefactos que necesites en el archivo build.gradle de tu app o 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 obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.

Comentarios

Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.

Crear un error nuevo

Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.

No hay notas de la versión para este artefacto.

Tv-Material versión 1.1

Versión 1.1.0-alpha01

15 de enero de 2025

Lanzamiento de androidx.tv:tv-material:1.1.0-alpha01. La versión 1.1.0-alpha01 contiene estas confirmaciones.

Cambios en la API

  • Se cambió FocusEnterExitScope.cancelFocus() a cancelFocusChange()(I89959).
  • FocusProperties.enter y FocusProperties.exit se reemplazaron por onEnter y onExit, respectivamente,con un alcance del receptor en lugar del parámetro FocusDirection. (I6e667).

Correcciones de errores

  • Se movió CompositingStrategy.OffScreen de Surface a Text para corregir el texto inestable durante el escalamiento. (I92b15f17).
  • Se corrigió la administración de enfoque dañada en el carrusel (Ie508b721375).
  • La superficie (no interactiva) tiene una implementación simplificada en comparación con las interactivas. (I7ea545150)

Tv-Material versión 1.0

Versión 1.0.0

21 de agosto de 2024

Lanzamiento de androidx.tv:tv-material:1.0.0. La versión 1.0.0 es la primera versión estable de androidx.tv:tv-material.

Versión 1.0.0-rc02

7 de agosto de 2024

Lanzamiento de androidx.tv:tv-material:1.0.0-rc02. La versión 1.0.0-rc02 contiene estas confirmaciones.

Correcciones de errores

  • Se corrigió la animación de texto inestable en el elemento componible de Surface. (3163319).

Versión 1.0.0-rc01

10 de julio de 2024

Lanzamiento de androidx.tv:tv-material:1.0.0-rc01. La versión 1.0.0-rc01 contiene estas confirmaciones.

Versión 1.0.0-beta01

1 de mayo de 2024

Lanzamiento de androidx.tv:tv-material:1.0.0-beta01. La versión 1.0.0-beta01 contiene estas confirmaciones.

Cambios en la API

  • ColorScheme y sus funciones de utilidad ahora son estables. (If34fa).
  • LocalContentColor ahora es estable (I60ee2).
  • La API de Typography ahora es estable (I088d6).
  • Las APIs de Shapes ahora son estables (I0f5f4).
  • La API de Border ahora es estable (I69281).
  • La API de Glow ahora es estable (Iea5f1).
  • El componente de ícono ahora es estable (I62c2d).
  • La API de LocalTextStyles ahora es estable (Iaded8).
  • La API de MaterialTheme ahora es estable (I2f541).
  • El componente de texto ahora es estable (Ib9e31).
  • El componente RadioButton ahora es estable (Ia03c8).
  • El componente de interruptor ahora es estable (I6cea3).
  • Los componentes de Checkbox ahora son estables (I7eafc).
  • Los componentes de la plataforma ahora son estables (I58758, I04aca).
  • Se cambió el nombre de NonInteractiveSurfaceDefaults por SurfaceDefaults y el de NonInteractiveSurfaceColors por SurfaceColors (I0812e).
  • La superficie seleccionable ahora usa la terminología "seleccionar" en lugar de "marcar", ya que ambas tienen un significado semántico diferente (I5a206).
  • NavigationDrawer y NavigationDrawerScope ahora son estables (I249c1).
  • El componente NavigationDrawerItem ahora es estable (Id6986).
  • Los componentes de pestaña y TabRow ahora son estables (I92d92).
  • Los componentes Button, OutlinedButton, IconButton, OutlinedIconButton y WideButton ahora son estables (Ib4de8).
  • Los componentes Card, ClassicCard, CompactCard, WideClassicCard, StandardCardContainer y WideCardContainer ahora son estables (I34390).
  • Se cambió el nombre de StandardCardLayout por StandardCardContainer y el de WideCardLayout por WideCardContainer (I08883).
  • Se quitó CardContainerDefaults.ImageCard y se cambió el nombre de CardDefaults.ContainerGradient a CardDefaults.ScrimBrush (I6adfe). Puedes usar Card en lugar de CardContainerDefaults.ImageCard en tus contenedores de tarjetas.
  • ListItem y DenseListItem ahora son estables (Idebd9).
  • ListItemDefaults.ListItemShape, ListItemDefaults.FocusedDisabledBorder y ListItemDefaults.SelectedContainerColorOpacity ahora son privados (I5d533)
  • Se reordenaron los parámetros de ListItem y se cambió el nombre de ListItemDefaults.ListItemElevation a ListItemDefaults.TonalElevation (Id6841). El parámetro headlineContent se movió a la parte superior del elemento componible. Antes, podías usar la sintaxis de expresión lambda final de Kotlin para pasar el headlineContent. Ahora, deberás usar la sintaxis de parámetros con nombre para proporcionar el headlineContent.
  • LocalAbsoluteTonalElevation ahora es interno (Ibfc65).
  • Se quitó el componente ImmersiveList. Consulta este ejemplo para aprender a compilarlo por tu cuenta. (Id48da).
  • Los componentes de tv-material que exponen un MutableInteractionSource en su API se actualizaron para exponer un MutableInteractionSource anulable que se establece de forma predeterminada en nulo. No hay cambios semánticos aquí: pasar nulo significa que no deseas elevar el MutableInteractionSource, y se creará dentro del componente si es necesario. Cambiar a nulo permite que algunos componentes nunca asignen un MutableInteractionSource y que otros componentes solo creen una instancia de forma diferida cuando lo necesiten, lo que mejora el rendimiento de estos componentes. Si no usas el MutableInteractionSource que pasas a estos componentes, te recomendamos que pases nulo. También te recomendamos que realices cambios similares en tus propios componentes. (I309b4, b/298048146).
  • El parámetro TextAlign del componente de texto de TV ahora no es nulo (Ib73b1, b/299490814).
  • Se introdujo un valor especial no especificado para los campos TextAlign, TextDirection, Hyphens y LineBreak de ParagraphTextStyle para reemplazar (I4197e, b/299490814).

Cambios de comportamiento

  • El valor predeterminado del parámetro shape para Surface no interactivo se cambió a RectangleShape (I1b859cb).
  • Se quitaron algunas funciones del carrusel para el lanzamiento beta debido a que las APIs necesarias son experimentales (I0e755d4).
  • Cambiar contentColor en Surface ya no anima entre estados (I436e794f).

Versión 1.0.0

Versión 1.0.0-alpha12

15 de enero de 2025

Lanzamiento de androidx.tv:tv-foundation:1.0.0-alpha12. La versión 1.0.0-alpha12 contiene estas confirmaciones.

Cambios en la API

  • Se limpiaron los diseños diferidos de tv-foundation. Consulta las notas de la versión 1.0.0-alpha11 para migrar de los diseños diferidos de tv-foundation. (I2fdd3, b/358913893)

Versión 1.0.0-alpha11

10 de julio de 2024

Lanzamiento de androidx.tv:tv-foundation:1.0.0-alpha11. La versión 1.0.0-alpha11 contiene estas confirmaciones.

Cambios en la API

  • Los diseños diferidos de TV dejaron de estar disponibles en la biblioteca de tv-foundation. Consulta este ticket para obtener información sobre cómo migrar desde los diseños diferidos de TV. (I0855f, b/332674072).
  • PlatformImeOptions ahora es una clase concreta en lugar de una interfaz. (If40a4).

Versión 1.0.0-alpha10

4 de octubre de 2023

Lanzamiento de androidx.tv:tv-foundation:1.0.0-alpha10 y androidx.tv:tv-material:1.0.0-alpha10. La versión 1.0.0-alpha10 contiene estas confirmaciones.

Nuevas funciones

  • Se introdujo NavigationDrawerItem para usarse en NavigationDrawer y ModalNavigationDrawer. (I4b491).
  • Se agregó el perfil de Baseline a la biblioteca de tv-foundation. (2b57fd7).
  • Se agregó el perfil de Baseline a la biblioteca de tv-material. (1711ff5).

Cambios en la API

  • Se cambió el nombre de NavigationDrawerScope.doesTabRowHaveFocus a NavigationDrawerScope.hasFocus. (I8286b).
  • Se cambió el nombre de TabRowScope.isActivated a TabRowScope.hasFocus. (Ic4273).

Correcciones de errores

  • Se corrigió la compatibilidad del carrusel con elementos adyacentes que usan APIs de restaurador de enfoque. (7b2a7a4).
  • Se inhabilitó la indicación de brillo para API_LEVEL inferior a 28, ya que el SO no la admite. (6d3616f).
  • Se corrigió la falla de ANR causada por la ubicación incorrecta de elementos en contenedores diferidos cuando se desplazaba rápidamente en la dirección inversa. (642d65c).
  • Se quitó el padding de fondo en el panel lateral de navegación modal. (69965b2).
  • Se corrigió el fondo en el panel lateral de navegación para que se dibuje sobre el contenido de fondo en lugar de detrás de él. (d4bbefb).

Versión 1.0.0-alpha09

6 de septiembre de 2023

Lanzamiento de androidx.tv:tv-foundation:1.0.0-alpha09 y androidx.tv:tv-material:1.0.0-alpha09. La versión 1.0.0-alpha09 contiene estas confirmaciones.

Cambios en la API

  • Se agregó la interfaz ReusableComposition para administrar el ciclo de vida y la reutilización de subcomposiciones. (I812d1, b/252846775).
  • Sincroniza la bifurcación de tv-foundation con compose-foundation. (I737c3, b/287011882).
  • Se agregó la sobrecarga de LazyLayout, que acepta una lambda de LazyLayoutItemProvider, no un objeto simple como antes. La sobrecarga anterior dejó de estar disponible. (I42a5a).
  • Se agregó TvKeyboardAlignment para permitir que el desarrollador configure la posición del teclado en pantalla a través de AndroidImeOptions. (Idb772).
  • Agrega rememberCarouselState para recordar CarouselState con Saver a Material de Compose para TV. (Id7275)
  • Se cambió el parámetro scrimColor: Color al parámetro scrimBrush:Brush para permitir que los usuarios agreguen gradientes a la pantalla de carga. (I254d4)

Versión 1.0.0-alpha08

26 de julio de 2023

Lanzamiento de androidx.tv:tv-foundation:1.0.0-alpha08 y androidx.tv:tv-material:1.0.0-alpha08. La versión 1.0.0-alpha08 contiene estas confirmaciones.

Nuevas funciones

  • Se introdujeron componentes de Chip para el material de Compose para TV. (I86da4).
  • Se agregó el componente ListItem a TV Compose Material. (I3f0b3)
  • Se agregó el componente DenseListItem a TV Compose Material. (I536bf)

Cambios en la API

  • Se marcaron las APIs públicas de tv-material como experimentales. (I632e7).
  • Se introdujo TabRowScope para compartir el estado del elemento componible TabRow con el elemento componible Tab y se cambió el nombre de las propiedades TabColors. (Ief587).

Versión 1.0.0-alpha07

7 de junio de 2023

Lanzamiento de androidx.tv:tv-foundation:1.0.0-alpha07 y androidx.tv:tv-material:1.0.0-alpha07. La versión 1.0.0-alpha07 contiene estas confirmaciones.

Cambios en la API

  • Las indicaciones de escala de los componentes ahora incluyen Ninguno para inhabilitar el escalamiento. (I50df5).
  • Se agregó compatibilidad con el clic largo para la superficie de material, las tarjetas y los botones de TV. (Id2b89).
  • Se quitaron CarouselItem y CarouselScope. La animación del contenido en primer plano se puede lograr en la diapositiva usando Modifier.animateEnterExit desde AnimatedContentScope. (Ic038e).
  • Se combinaron los parámetros color y contentColor como colors para la superficie de material de TV. (Ie69eb).
  • Se introdujo el elemento RadioButton componible en Material para TV. (I08690).
  • Se introdujo el elemento Switch componible en Material para TV. (I45e29)
  • Se introdujo el elemento Checkbox componible en Material para TV. (I6a45a)
  • Se introdujo la superficie no interactiva en Material para TV. (Ic5f85).
  • Se hicieron internas las indicaciones. (Ibff82).

Versión 1.0.0-alpha06

19 de abril de 2023

Lanzamiento de androidx.tv:tv-foundation:1.0.0-alpha06 y androidx.tv:tv-material:1.0.0-alpha06. La versión 1.0.0-alpha06 contiene estas confirmaciones.

Nuevas funciones

  • Se agregaron implementaciones de tarjetas de Material 3 optimizadas para TV.
    • Tarjeta básica (I5b701)
    • ClassicCard, CompactCard y WideClassicCard (I70471)
    • StandardCardLayout y WideCardLayout (I33fae).
  • Se agregaron implementaciones de botones de Material 3 optimizadas para TV.

Cambios en la API

  • Se cambió el nombre de CarouselSlide y slideCount en Carousel por CarouselItem y itemCount. (Ie554c).
  • Se cambió el nombre de forward y backward ContentTransforms por StartToEnd y EndToStart. (Ie554c).

Correcciones de errores

  • Controla el botón del mando de dirección hacia atrás cuando el enfoque esté en NavigationDrawer. (d654f4).

Versión 1.0.0-alpha05

22 de marzo de 2023

Lanzamiento de androidx.tv:tv-foundation:1.0.0-alpha05 y androidx.tv:tv-material:1.0.0-alpha05. La versión 1.0.0-alpha05 contiene estas confirmaciones.

Cambios en la API

  • Presentamos el panel lateral de navegación componible en tv-material. Para aprender a usar este elemento componible, consulta los ejemplos. (I12c08)
  • Se introdujo el elemento componible Icon en Material 3 para TV (I72db9).
  • Presentamos la superficie componible en tv-material con indicaciones como Borde, Brillo y Escala, que se pueden usar para compilar componentes que destaquen claramente el elemento enfocado en la pantalla de la TV. (I4a6d8), (Iceea1), (Iee4d4), (I79edf), (Icb376).
  • Se actualizó CarouselItem a CarouselSlide para que coincida con el nombre del parámetro slideCount en la API de "Carrusel" (Ic4299).

Versión 1.0.0-alpha04

8 de febrero de 2023

Lanzamiento de androidx.tv:tv-foundation:1.0.0-alpha04 y androidx.tv:tv-material:1.0.0-alpha04. La versión 1.0.0-alpha04 contiene estas confirmaciones.

Nuevas funciones

  • En filas, columnas y cuadrículas diferidas, se anula la tabla dinámica, si es necesario, a fin de garantizar que se muestre todo el elemento (11d7e40).
  • Se agregó personalización de los colores de las pestañas en diferentes estados (21b2925).
  • El carrusel ahora acepta animaciones personalizadas para el desplazamiento manual hacia adelante y hacia atrás (431494a).

Cambios en la API

  • Se cambió el nombre de androidx.tv.material a androidx.tv.material3 y se compactó la estructura del paquete en androidx.tv.material3 (I6ca52).
  • El indicador dentro de la fila Indicador de carrusel ahora es un espacio que el desarrollador puede personalizar (268af2a).
  • Se cambió el nombre de focusableItem a immersiveListItem. Los usuarios deberán agregar manualmente los modificadores focusable() o clickable() junto con immersiveListItem (5dd5078)(b/263061052).
  • Se cambió el nombre de timeToDisplayMillis a autoScrollDurationMillis en el componente de carrusel (431494a).
  • Ahora CarouselItem solo se puede usar dentro de Carousel (431494a).
  • El carrusel ahora acepta ContentTransforms como definición de animación en lugar de EnterTransition y ExitTransitions (431494a).
  • Se introdujo la API de PinnableContainer propagada por listas diferidas a través de un elemento local de composición que permite fijar el elemento actual (Ib8881, b/259274257, b/195049010).
  • Se agregó la propiedad mainAxisItemSpacing a TvLazyListLayoutInfo y TvLazyGridLayoutInfo (I37765).

Correcciones de errores

  • Se actualizó la fila de pestañas para asegurarte de que se administre correctamente un recuento de 0 o 1 (I44009), (1c01525), (b/264018028).
  • Se corrigió la falla de foco de búsqueda cuando TvLazyColumn contiene un TvLazyRow vacío (e11b4fe), (b/260299091).
  • El modificador clickable ahora funciona con ImmersiveList (5dd5078), (b/263061052).
  • Ahora, se maneja la tecla Atrás y se utiliza para salir del carrusel destacado (84c138c).
  • El carrusel no pierde el foco cuando se presionan varias teclas rápidamente (799489f).
  • El carrusel no pierde el foco cuando se mantienen presionadas las teclas (b2cf37e).
  • Se solucionaron las fallas cuando cambia el recuento de diapositivas del carrusel (b261247).

Versión 1.0.0-alpha03

7 de diciembre de 2022

Lanzamiento de androidx.tv:tv-foundation:1.0.0-alpha03 y androidx.tv:tv-material:1.0.0-alpha03. La versión 1.0.0-alpha03 contiene estas confirmaciones.

Nuevas funciones

  • Ahora TabRow está disponible como una API experimental que permite a los usuarios agregar barras de navegación superior a sus apps. En general, los dispositivos de TV esperan que se carguen las pestañas cuando el título de la pestaña se enfoca en la fila de pestañas.
  • Los indicadores específicos de la TV, como el indicador de subrayado y el indicador de píldora, se ofrecen listos para usar. Puedes encontrar muestras de uso en tv-samples

Versión 1.0.0-alpha02

9 de noviembre de 2022

Lanzamiento de androidx.tv:tv-foundation:1.0.0-alpha02 y androidx.tv:tv-material:1.0.0-alpha02. La versión 1.0.0-alpha02 contiene estas confirmaciones.

Correcciones de errores

  • Se mejoró el rendimiento de desplazamiento en colecciones de TvLazyRows/TvLazyColumns mediante la reducción del espacio de búsqueda del foco (I723a3).

Versión 1.0.0-alpha01

5 de octubre de 2022

Lanzamiento de androidx.tv:tv-foundation:1.0.0-alpha01 y androidx.tv:tv-material:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

La primera versión alfa contiene implementaciones preliminares de componentes para casos de uso de TV, como los siguientes:

  • Se agregó el modificador scrollableWithPivot para permitir que los contenedores de desplazamiento no diferido, como Fila, Columna o Cuadrícula, hagan que el contenedor de desplazamiento desplace el contenido para que el elemento enfocado permanezca en la misma posición en la pantalla de la TV.
  • Se agregaron elementos TvLazyRow, TvLazyColumn, TvLazyHorizontalGrid y TvLazyVerticalGrid componibles para que el contenedor de desplazamiento desplace el contenido para que el elemento enfocado permanezca en la misma posición en la pantalla de la TV.
  • Se agregó un Carrusel de destacados componible para TV que permite al usuario crear un carrusel de banners con desplazamiento automático.
  • Se agregó un elemento de componibilidad de lista envolvente para TV que permite al usuario crear una fila, columna o cuadrícula envolvente que cambie el fondo en función del elemento de la lista enfocado.

Errores conocidos

  • Cuando el contenedor de desplazamiento obtiene el foco, el primer elemento no lo obtiene de forma predeterminada.
  • Si se enfoca un elemento TextField, no siempre se abre el teclado o se puede impedir que el enfoque se mueva a otros campos.
  • El desplazamiento vertical en un LazyColumn que contiene LazyRows tiene un rendimiento deficiente.