телевизор

Предоставляет разработчикам функциональные возможности Compose и Material Design для создания приложений для телевизоров.
Последнее обновление Стабильный релиз Предварительная версия релиза Бета-версия Альфа-версия
11 марта 2026 г. 1.0.1 - 1.1.0-beta01 -

Объявление зависимостей

Чтобы добавить зависимости от tv-foundation и tv-material, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .

Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:

классный

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

Котлин

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

Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .

Обратная связь

Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.

Создать новую задачу

Для получения более подробной информации см. документацию по системе отслеживания ошибок .

Для этого артефакта отсутствуют примечания к выпуску.

Версия телевизионного материала 1.1

Версия 1.1.0-beta01

11 марта 2026 г.

Выпущена версия androidx.tv:tv-material:1.1.0-beta01 . Версия 1.1.0-beta01 содержит следующие коммиты .

Изменения в API

  • Для использования проектов, выпущенных с Kotlin 2.0, требуется KGP 2.0.0 или более поздняя версия ( Idb6b5 , b/344563182 ).

Внешний вклад

  • Параметр androidx.compose.ui.graphics.NativePaint typealias` устарел, используйте android.graphics.Paint напрямую ( I6303c , b/477394763 ).
  • Замените Paint.asFrameworkPaint() на расширение Paint.nativePaint чтобы избежать раскрытия типа платформы в исходном коде commonMain через typealias ( I6303c , b/477394763 ).

Версия 1.1.0-alpha01

15 января 2025 г.

Выпущена версия androidx.tv:tv-material:1.1.0-alpha01 . Версия 1.1.0-alpha01 содержит следующие коммиты .

Изменения в API

  • Замените FocusEnterExitScope.cancelFocus() на cancelFocusChange() ( I89959 )
  • FocusProperties.enter и FocusProperties.exit были заменены на onEnter и onExit соответственно, с использованием области видимости получателя вместо параметра FocusDirection . ( I6e667 )

Исправлены ошибки

  • Переместил CompositingStrategy.OffScreen из Surface в Text для исправления дрожания текста при масштабировании. ( I92b15f17 )
  • Исправлена ​​ошибка управления фокусом в карусели ( IE508b721375 )
  • Поверхностные (неинтерактивные) модели имеют упрощенную реализацию по сравнению с интерактивными. ( I7ea545150 )

Tv-Material Версия 1.0

Версия 1.0.1

16 июля 2025 г.

Выпущена версия androidx.tv:tv-material:1.0.1 . Версия 1.0.1 содержит следующие изменения .

Исправлены ошибки

  • Высота элемента NavigationDrawerItem изменена в соответствии со спецификациями. ( cf9a3ce )
  • Перенесена настройка стратегии композитинга с объекта Surface на объект Text. Это исправляет ошибку, из-за которой Exoplayer не отображался на объектах Surface в более старых версиях Android API. ( 9858ffb )

Версия 1.0.0

21 августа 2024 г.

Выпущена версия androidx.tv:tv-material:1.0.0 . Версия 1.0.0 — это первый стабильный релиз androidx.tv:tv-material .

Версия 1.0.0-rc02

7 августа 2024 г.

Выпущена версия androidx.tv:tv-material:1.0.0-rc02 . Версия 1.0.0-rc02 содержит следующие коммиты .

Исправлены ошибки

  • Исправлена ​​нестабильная анимация текста в Surface composable. ( 3163319 )

Версия 1.0.0-rc01

10 июля 2024 г.

Выпущена версия androidx.tv:tv-material:1.0.0-rc01 . Версия 1.0.0-rc01 содержит следующие коммиты .

Версия 1.0.0-beta01

1 мая 2024 г.

Выпущена версия androidx.tv:tv-material:1.0.0-beta01 . Версия 1.0.0-beta01 содержит следующие коммиты .

Изменения в API

  • Функция ColorScheme и её вспомогательные возможности теперь стабильны. ( If34fa )
  • LocalContentColor теперь работает стабильно ( I60ee2 ).
  • API Typography теперь стабилен ( I088d6 ).
  • API для работы с фигурами теперь стабильны ( I0f5f4 ).
  • API Border теперь стабилен ( I69281 )
  • API Glow теперь стабилен ( Iea5f1 )
  • Компонент Icon теперь стабилен ( I62c2d )
  • API LocalTextStyles теперь стабилен ( Iaded8 )
  • API MaterialTheme теперь стабилен ( I2f541 )
  • Компонент «Текст» теперь стабилен ( Ib9e31 )
  • Компонент RadioButton теперь стабилен ( Ia03c8 )
  • Компонент Switch теперь стабилен ( I6cea3 ).
  • Компоненты Checkbox теперь стабильны ( I7eafc )
  • Поверхностные компоненты теперь стабильны ( I58758 , I04aca ).
  • Переименованы NonInteractiveSurfaceDefaults в SurfaceDefaults и NonInteractiveSurfaceColors в SurfaceColors ( I0812e )
  • В функции Selectable Surface теперь используется термин «выбрать» вместо «отметить», поскольку они имеют разное семантическое значение ( I5a206 ).
  • NavigationDrawer и NavigationDrawerScope теперь стабильны ( I249c1 ).
  • Компонент NavigationDrawerItem теперь стабилен ( Id6986 )
  • Компоненты Tab и TabRow теперь стабильны ( I92d92 )
  • Компоненты Button , OutlinedButton , IconButton , OutlinedIconButton и WideButton теперь стабильны ( Ib4de8 ).
  • Компоненты Card , ClassicCard , CompactCard , WideClassicCard , StandardCardContainer и WideCardContainer теперь стабильны ( I34390 ).
  • Переименованы StandardCardLayout в StandardCardContainer и WideCardLayout в WideCardContainer ( I08883 )
  • Удален CardContainerDefaults.ImageCard и CardDefaults.ContainerGradient переименован в CardDefaults.ScrimBrush ( I6adfe ). Вы можете использовать Card вместо CardContainerDefaults.ImageCard в ваших контейнерах карточек.
  • ListItem и DenseListItem теперь стабильны ( Idebd9 ).
  • ListItemDefaults.ListItemShape , ListItemDefaults.FocusedDisabledBorder и ListItemDefaults.SelectedContainerColorOpacity теперь являются приватными ( I5d533 ).
  • Изменены параметры ListItem и переименован ListItemDefaults.ListItemElevation в ListItemDefaults.TonalElevation ( Id6841 ). Параметр headlineContent перемещен в начало составного элемента. Ранее для передачи headlineContent можно было использовать синтаксис лямбда-выражений в конце строк кода Kotlin. Теперь же для указания headlineContent необходимо использовать синтаксис именованных параметров.
  • LocalAbsoluteTonalElevation теперь является внутренним ( Ibfc65 ).
  • Компонент ImmersiveList был удалён. Ознакомьтесь с этим примером , чтобы узнать, как создать его самостоятельно. ( Id48da )
  • Компоненты tv-material, предоставляющие MutableInteractionSource в своем API, были обновлены и теперь предоставляют MutableInteractionSource с возможностью присвоения значения null, по умолчанию равного null. Семантических изменений нет: передача null означает, что вы не хотите поднимать MutableInteractionSource , и он будет создан внутри компонента при необходимости. Изменение на null позволяет некоторым компонентам никогда не выделять MutableInteractionSource , а другим компонентам — создавать экземпляр только при необходимости, что повышает производительность этих компонентов. Если вы не используете MutableInteractionSource , передаваемый этим компонентам, рекомендуется передавать вместо него null. Также рекомендуется внести аналогичные изменения в ваши собственные компоненты. ( I309b4 , b/298048146 )
  • Параметр TextAlign компонента TV Text теперь не равен null ( Ib73b1 , b/299490814 )
  • Введено специальное значение «Не указано» для полей TextAlign , TextDirection , Hyphens и LineBreak в ParagraphTextStyle для замены ( I4197e , b/299490814 )

Изменения в поведении

  • Значение по умолчанию параметра shape для неинтерактивной Surface изменено на RectangleShape ( I1b859cb ).
  • Некоторые функции карусели были исключены из бета-версии из-за того, что необходимые API являются экспериментальными ( I0e755d4 ).
  • Изменение contentColor в Surface больше не сопровождается анимацией перехода между состояниями ( I436e794f )

Версия 1.0.0

Версия 1.0.0-beta01

11 марта 2026 г.

Выпущена версия androidx.tv:tv-foundation:1.0.0-beta01 . Версия 1.0.0-beta01 содержит следующие коммиты .

Изменения в API

  • Для использования проектов, выпущенных с Kotlin 2.0, требуется KGP 2.0.0 или более поздняя версия ( Idb6b5 , b/344563182 ).

Версия 1.0.0-alpha12

15 января 2025 г.

Выпущена версия androidx.tv:tv-foundation:1.0.0-alpha12 . Версия 1.0.0-alpha12 содержит следующие коммиты .

Изменения в API

  • Устранены ленивые макеты из tv-foundation. Для перехода на другую систему, отличную от ленивых макетов tv-foundation, обратитесь к примечаниям к релизу 1.0.0-alpha11. ( I2fdd3 , b/358913893 )

Версия 1.0.0-alpha11

10 июля 2024 г.

Выпущена версия androidx.tv:tv-foundation:1.0.0-alpha11 . Версия 1.0.0-alpha11 содержит следующие коммиты .

Изменения в API

  • Функция отложенной компоновки экрана (tv Lazy Layouts) устарела в библиотеке tv-foundation. Чтобы узнать, как отказаться от функции отложенной компоновки экрана tv, обратитесь к этому тикету . ( I0855f , b/332674072 )
  • Теперь PlatformImeOptions — это конкретный класс, а не интерфейс. ( If40a4 )

Версия 1.0.0-alpha10

4 октября 2023 г.

Выпущены версии androidx.tv:tv-foundation:1.0.0-alpha10 и androidx.tv:tv-material:1.0.0-alpha10 . Версия 1.0.0-alpha10 содержит следующие коммиты.

Новые функции

  • Введен NavigationDrawerItem для использования внутри NavigationDrawer и ModalNavigationDrawer . ( I4b491 )
  • Добавить базовый профиль в библиотеку tv-foundation. ( 2b57fd7 )
  • Добавить базовый профиль в библиотеку tv-material. ( 1711ff5 )

Изменения в API

  • Переименована NavigationDrawerScope.doesTabRowHaveFocus в NavigationDrawerScope.hasFocus . ( I8286b )
  • Переименована функция TabRowScope.isActivated в TabRowScope.hasFocus . ( Ic4273 )

Исправлены ошибки

  • Исправлена ​​несовместимость карусели с соседними элементами, использующими API восстановления фокуса. ( 7b2a7a4 )
  • Отключить индикацию свечения для API_LEVEL ниже 28, поскольку она не поддерживается операционной системой. ( 6d3616f )
  • Исправлена ​​ошибка ANR, приводящая к сбою, вызванному неправильным размещением элементов в отложенных контейнерах при быстрой прокрутке в обратном направлении. ( 642d65c )
  • Удален фоновый отступ в модальном навигационном меню. ( 69965b2 )
  • Исправлена ​​ошибка, из-за которой полупрозрачная ширма в боковой панели навигации отображалась поверх фонового контента, а не за ним. ( d4bbefb )

Версия 1.0.0-alpha09

6 сентября 2023 г.

Выпущены версии androidx.tv:tv-foundation:1.0.0-alpha09 и androidx.tv:tv-material:1.0.0-alpha09 . Версия 1.0.0-alpha09 содержит следующие коммиты.

Изменения в API

  • Добавлен интерфейс ReusableComposition для управления жизненным циклом и повторного использования подкомпозиций. ( I812d1 , b/252846775 )
  • Синхронизация форка tv-foundation с compose-foundation. ( I737c3 , b/287011882 )
  • Добавлена ​​перегрузка класса LazyLayout , она принимает лямбда-функцию типа LazyLayoutItemProvider , а не простой объект, как это было раньше. Предыдущая перегрузка устарела. ( I42a5a )
  • Добавьте TvKeyboardAlignment , позволяющий разработчику настраивать положение экранной клавиатуры через AndroidImeOptions . ( Idb772 )
  • Добавьте rememberCarouselState , чтобы запоминать CarouselState при Saver в качестве материала для создания ТВ-приложения. ( Id7275 )
  • Изменение параметра scrimColor: Color на параметр scrimBrush:Brush , чтобы позволить пользователям добавлять градиенты к полупрозрачному фону. ( I254d4 )

Версия 1.0.0-alpha08

26 июля 2023 г.

Выпущены версии androidx.tv:tv-foundation:1.0.0-alpha08 и androidx.tv:tv-material:1.0.0-alpha08 . Версия 1.0.0-alpha08 содержит следующие коммиты.

Новые функции

  • Представлены компоненты микросхемы для создания телевизионного контента. ( I86da4 )
  • Добавьте компонент ListItem в компонент TV Compose Material. ( I3f0b3 )
  • Добавьте компонент DenseListItem в TV Compose Material. ( I536bf )

Изменения в API

  • Общедоступные API для телевизионных материалов помечены как экспериментальные. ( I632e7 )
  • Введена функция TabRowScope для обмена состоянием между компонентами TabRow и Tab, а также переименованы свойства TabColors . ( Ief587 )

Версия 1.0.0-alpha07

7 июня 2023 г.

Выпущены версии androidx.tv:tv-foundation:1.0.0-alpha07 и androidx.tv:tv-material:1.0.0-alpha07 . Версия 1.0.0-alpha07 содержит следующие коммиты.

Изменения в API

  • Теперь в индикаторах масштабирования компонентов присутствует опция «Нет», позволяющая отключить масштабирование. ( I50df5 )
  • Добавлена ​​поддержка длительного нажатия для элементов интерфейса TV Material Surface, карточек и кнопок. ( Id2b89 )
  • CarouselItem и CarouselScope были удалены. Анимацию содержимого переднего плана на слайде можно реализовать с помощью Modifier.animateEnterExit из AnimatedContentScope . ( Ic038e )
  • Объединены параметры color и contentColor в качестве colors для Material Surface на телевизоре. ( IE69eb )
  • Введена возможность компоновки RadioButton в TV Material. ( I08690 )
  • Введена Switch , компонуемая в телевизионном материале. ( I45e29 )
  • Введена возможность компоновки Checkbox в телевизионном материале. ( I6a45a )
  • В телевизионные материалы введена неинтерактивная поверхность. ( Ic5f85 )
  • Сделайте указания внутренними. ( Ibff82 )

Версия 1.0.0-alpha06

19 апреля 2023 г.

Выпущены версии androidx.tv:tv-foundation:1.0.0-alpha06 и androidx.tv:tv-material:1.0.0-alpha06 . Версия 1.0.0-alpha06 содержит следующие коммиты.

Новые функции

  • Добавлены оптимизированные для телевизоров реализации карточек Material 3.
    • Базовая карта ( I5b701 )
    • ClassicCard , CompactCard и WideClassicCard ( I70471 )
    • StandardCardLayout и WideCardLayout ( I33fae )
  • Добавлены оптимизированные для телевизоров реализации кнопок Material 3.
    • Базовая кнопка ( I69c11 )
    • IconButton и OutlinedIconButton ( Ib504c )
    • WideButton ( I4cecf )

Изменения в API

  • Переименованы CarouselSlide и slideCount в Carousel в CarouselItem и itemCount . ( IE554c )
  • Переименованы ContentTransforms forward и backward в StartToEnd и EndToStart . ( IE554c )

Исправлены ошибки

  • Обработка нажатия кнопки DPAD "Назад" при фокусировке на NavigationDrawer . ( d654f4 )

Версия 1.0.0-alpha05

22 марта 2023 г.

Выпущены версии androidx.tv:tv-foundation:1.0.0-alpha05 и androidx.tv:tv-material:1.0.0-alpha05 . Версия 1.0.0-alpha05 содержит следующие коммиты.

Изменения в API

  • Представляем боковую навигационную панель, интегрируемую в tv-material . Чтобы узнать, как использовать этот компонент, обратитесь к примерам . ( I12c08 )
  • Вставить иконку, создаваемую в TV Material 3 ( I72db9 )
  • Представляем Surface, компонуемый с tv-material с такими индикаторами, как Border, Glow и Scale, которые можно использовать для создания компонентов, четко выделяющих сфокусированный элемент на экране телевизора. ( I4a6d8 ), ( Iceea1 ), ( Iee4d4 ), ( I79edf ), ( Icb376 )
  • Обновите CarouselItem на CarouselSlide , чтобы он соответствовал имени параметра slideCount в API 'Carousel' ( Ic4299 ).

Версия 1.0.0-alpha04

8 февраля 2023 г.

Выпущены версии androidx.tv:tv-foundation:1.0.0-alpha04 и androidx.tv:tv-material:1.0.0-alpha04 . Версия 1.0.0-alpha04 содержит следующие коммиты.

Новые функции

  • В ленивых строках, столбцах и сетках, при необходимости, опорная точка переопределяется, чтобы гарантировать отображение всего элемента целиком. ( 11d7e40 )
  • Добавить возможность настройки цветов вкладок в разных состояниях. ( 21b2925 )
  • Теперь карусель поддерживает пользовательские анимации для ручной прокрутки вперед и назад. ( 431494a )

Изменения в API

  • Переименование androidx.tv.material в androidx.tv.material3 и сглаживание структуры пакетов в androidx.tv.material3 . ( I6ca52 )
  • Индикатор в строке индикаторов карусели теперь представляет собой слот, который может быть настроен разработчиком. ( 268af2a )
  • Переименован focusableItem в immersiveListItem . Пользователям придется вручную добавлять модификатор focusable() или clickable() вместе с immersiveListItem ( 5dd5078 )( b/263061052 )
  • В компоненте Carousel timeToDisplayMillis переименована в autoScrollDurationMillis . ( 431494a )
  • Теперь CarouselItem можно использовать только внутри Carousel . ( 431494a )
  • Теперь Carousel принимает ContentTransforms в качестве определения анимации вместо EnterTransition и ExitTransitions . ( 431494a )
  • Введен API PinnableContainer распространяемый через ленивые списки посредством локальной переменной композиции, что позволяет закреплять текущий элемент. ( Ib8881 , b/259274257 , b/195049010 )
  • Добавлено свойство mainAxisItemSpacing в TvLazyListLayoutInfo и TvLazyGridLayoutInfo ( I37765 )

Исправлены ошибки

  • Обновите строку табуляции, чтобы она корректно обрабатывала значения табуляции, равные 0 или 1. ( I44009 ), ( 1c01525 ), ( b/264018028 )
  • Исправлена ​​ошибка поиска фокуса, возникающая, когда TvLazyColumn содержит пустую строку TvLazyRow . ( e11b4fe ), ( b/260299091 )
  • Теперь clickable модификатор работает с ImmersiveList . ( 5dd5078 ), ( b/263061052 )
  • Теперь клавиша «Назад» обрабатывается и используется для выхода из карусели избранных. ( 84c138c )
  • Карусель не теряет фокус при быстрых многократных нажатиях клавиш. ( 799489f )
  • Карусель не теряет фокус при длительном нажатии клавиш. ( b2cf37e )
  • Исправлены ошибки, приводящие к сбоям при изменении количества слайдов в карусели. ( b261247 )

Версия 1.0.0-alpha03

7 декабря 2022 г.

Выпущены версии androidx.tv:tv-foundation:1.0.0-alpha03 и androidx.tv:tv-material:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит следующие коммиты.

Новые функции

  • Теперь TabRow доступен в качестве экспериментального API, позволяющего пользователям добавлять верхние панели навигации в свои приложения. Как правило, телевизионные устройства ожидают, что вкладки будут загружаться, когда на них будет сфокусирован заголовок вкладки в строке вкладок.
  • Специальные индикаторы для телевизоров, такие как индикатор подчеркивания и индикатор точки, предлагаются по умолчанию. Примеры использования можно найти в папке tv-samples.

Версия 1.0.0-alpha02

9 ноября 2022 г.

Выпущены версии androidx.tv:tv-foundation:1.0.0-alpha02 и androidx.tv:tv-material:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит следующие коммиты.

Исправлены ошибки

  • Улучшена производительность прокрутки при прокрутке коллекции TvLazyRows/TvLazyColumns за счет уменьшения пространства поиска фокуса. ( I723a3 )

Версия 1.0.0-alpha01

5 октября 2022 г.

Выпущены версии androidx.tv:tv-foundation:1.0.0-alpha01 и androidx.tv:tv-material:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит следующие коммиты.

Новые функции

Первая альфа-версия содержит предварительные версии компонентов для использования в сценариях просмотра на телевидении, в том числе:

  • Добавлен модификатор scrollableWithPivot , позволяющий контейнерам без отложенной прокрутки, таким как Row, Column, Grid, прокручивать содержимое таким образом, чтобы элемент в фокусе оставался в одном и том же положении на экране телевизора.
  • Добавление компонентов TvLazyRow , TvLazyColumn , TvLazyHorizontalGrid , TvLazyVerticalGrid позволяет контейнеру прокручивать содержимое таким образом, чтобы элемент, находящийся в фокусе, оставался в одном и том же положении на экране телевизора.
  • Добавлена ​​функция создания карусели с избранными баннерами для телевизоров, позволяющая пользователю создавать автоматически прокручивающуюся баннерную карусель.
  • Добавлена ​​возможность компоновки иммерсивного списка для телевизора, позволяющая пользователю создавать иммерсивные строки/столбцы/сетки, фон которых меняется в зависимости от элемента списка, находящегося в фокусе.

Известные проблемы

  • Когда прокручиваемый контейнер получает фокус, первый элемент по умолчанию не получает фокус.
  • При фокусировке на TextField не всегда открывается клавиатура, или же это может препятствовать перемещению фокуса на другие поля.
  • Вертикальная прокрутка в LazyColumn , содержащем LazyRows , демонстрирует низкую производительность.