телевизор

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

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

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

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

классный

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

Котлин

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

Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .

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

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

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

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

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

ТВ-Материал Версия 1.1

Версия 1.1.0-альфа01

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 ).
  • Surface (неинтерактивный) имеет упрощенную реализацию по сравнению с интерактивными. ( I7ea545150 )

ТВ-Материал Версия 1.0

Версия 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 содержит эти коммиты .

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

  • Исправлена ​​текстовая анимация Jittery в компонуемой поверхности. ( 3163319 )

Версия 1.0.0-rc01

10 июля 2024 г.

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

Версия 1.0.0-бета01

1 мая 2024 г.

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

Изменения API

  • ColorScheme и ее служебные функции теперь стабильны. ( Если34фа )
  • LocalContentColor теперь стабилен ( I60ee2 )
  • Typography API теперь стабилен ( I088d6 ).
  • API фигур теперь стабильны ( I0f5f4 ).
  • Border API теперь стабилен ( I69281 ).
  • Glow API теперь стабилен ( Iea5f1 ).
  • Компонент значков теперь стабилен ( I62c2d ).
  • API LocalTextStyles теперь стабилен ( Iaded8 )
  • API MaterialTheme теперь стабилен ( I2f541 ).
  • Текстовый компонент теперь стабилен ( Ib9e31 ).
  • Компонент RadioButton теперь стабилен ( Ia03c8 ).
  • Компонент коммутатора теперь стабилен ( I6cea3 ).
  • Компоненты Checkbox теперь стабильны ( I7eafc )
  • Компоненты поверхности теперь стабильны ( I58758 , I04aca ).
  • NonInteractiveSurfaceDefaults переименован в SurfaceDefaults , а NonInteractiveSurfaceColors в SurfaceColors ( I0812e ).
  • Выбираемая поверхность теперь использует терминологию «выбрать» вместо «проверить», поскольку они оба имеют разное семантическое значение ( 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 . Теперь вам нужно будет использовать синтаксис именованных параметров для предоставления headlineContent .
  • LocalAbsoluteTonalElevation теперь является внутренним ( Ibfc65 ).
  • Компонент ImmersiveList был удален. Посмотрите этот образец , чтобы узнать, как построить его самостоятельно. ( Ид48да )
  • Компоненты tv-material, предоставляющие MutableInteractionSource в своем API, были обновлены и теперь предоставляют MutableInteractionSource с нулевым значением, который по умолчанию имеет значение null. Здесь нет никаких семантических изменений: передача null означает, что вы не хотите поднимать MutableInteractionSource , и при необходимости он будет создан внутри компонента. Изменение значения null позволяет некоторым компонентам никогда не выделять MutableInteractionSource , а другим компонентам — только лениво создавать экземпляр, когда это необходимо, что повышает производительность этих компонентов. Если вы не используете MutableInteractionSource который передаете этим компонентам, рекомендуется вместо этого передать значение null. Также рекомендуется внести аналогичные изменения в ваши собственные компоненты. ( I309b4 , б/298048146 )
  • Параметр TextAlign компонента TV Text теперь не равен нулю ( Ib73b1 , b/299490814 ).
  • Введено специальное значение Unspecified для полей TextAlign , TextDirection , Hyphens и LineBreak ParagraphTextStyle для замены ( I4197e , b/299490814 ).

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

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

Версия 1.0.0

Версия 1.0.0-альфа12

15 января 2025 г.

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

Изменения API

  • Очистка ленивых макетов от tv-foundation. Обратитесь к примечаниям к выпуску 1.0.0-alpha11, чтобы перейти от ленивых макетов tv-foundation. ( I2fdd3 , б/358913893 )

Версия 1.0.0-альфа11

10 июля 2024 г.

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

Изменения API

  • Tv Lazy Layouts исключены из библиотеки tv-foundation. Обратитесь к этому билету , чтобы узнать, как отказаться от ленивых макетов телевидения. ( I0855f , б / 332674072 )
  • PlatformImeOptions теперь представляет собой конкретный класс, а не интерфейс. ( Если40а4 )

Версия 1.0.0-альфа10

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 )
  • Добавьте базовый профиль в библиотеку ТВ-материалов. ( 1711ff5 )

Изменения API

  • Переименован NavigationDrawerScope.doesTabRowHaveFocus в NavigationDrawerScope.hasFocus . ( I8286b )
  • TabRowScope.isActivated переименован в TabRowScope.hasFocus . ( Ic4273 )

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

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

Версия 1.0.0-альфа09

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 , б/252846775 )
  • Синхронизируйте вилку tv-foundation с compose-foundation. ( I737c3 , б / 287011882 )
  • Добавлена ​​перегрузка LazyLayout , она принимает лямбда LazyLayoutItemProvider , а не простой объект, как это было раньше. Предыдущая перегрузка устарела. ( I42a5a )
  • Добавьте TvKeyboardAlignment , чтобы позволить разработчику настраивать положение клавиатуры на экране с помощью AndroidImeOptions . ( Идб772 )
  • Добавьте rememberCarouselState , чтобы запомнить CarouselState с помощью Saver в TV Compose Material. ( Ид7275 )
  • Изменение параметра scrimColor: Color на параметр scrimBrush:Brush чтобы пользователи могли добавлять градиенты к холсту. ( I254d4 )

Версия 1.0.0-альфа08

26 июля 2023 г.

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

Новые возможности

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

Изменения API

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

Версия 1.0.0-альфа07

7 июня 2023 г.

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

Изменения API

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

Версия 1.0.0-альфа06

19 апреля 2023 г.

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

Новые возможности

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

Изменения API

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

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

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

Версия 1.0.0-альфа05

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 с такими индикациями, как «Граница», «Свечение» и «Масштаб», которые можно использовать для создания компонентов, которые четко выделяют сфокусированный элемент на экране телевизора. ( I4a6d8 ), ( Iceea1 ), ( Iee4d4 ), ( I79edf ), ( Icb376 )
  • Обновите CarouselItem до CarouselSlide чтобы оно соответствовало имени slideCount в API Carousel ( Ic4299 ).

Версия 1.0.0-альфа04

8 февраля 2023 г.

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

Новые возможности

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

Изменения API

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

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

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

Версия 1.0.0-альфа03

7 декабря 2022 г.

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

Новые возможности

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

Версия 1.0.0-альфа02

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-альфа01

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 имеет низкую производительность.