тв
Последнее обновление | Стабильный релиз | Кандидат на релиз | Бета-версия | Альфа-релиз |
---|---|---|---|---|
16 июля 2025 г. | 1.0.1 | - | - | 1.1.0-альфа01 |
Объявление зависимостей
Чтобы добавить зависимости от tv-foundation и tv-material, необходимо добавить репозиторий Google Maven в свой проект. Подробнее см. в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle
вашего приложения или модуля:
Groovy
dependencies { implementation "androidx.tv:tv-foundation:1.0.0-alpha12" implementation "androidx.tv:tv-material:1.1.0-alpha01" }
Kotlin
dependencies { implementation("androidx.tv:tv-foundation:1.0.0-alpha12") implementation("androidx.tv:tv-material:1.1.0-alpha01") }
Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .
Обратная связь
Ваши отзывы помогают улучшить 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 ).
- Поверхность (неинтерактивная) имеет упрощенную реализацию по сравнению с интерактивными. ( I7ea545150 )
ТВ-материалы Версия 1.0
Версия 1.0.1
16 июля 2025 г.
Выпущен androidx.tv:tv-material:1.0.1
. Версия 1.0.1 содержит следующие коммиты .
Исправления ошибок
- Обновлена высота
NavigationDrawerItem
для соответствия спецификациям. ( cf9a3ce ) - Конфигурация стратегии компоновки перенесена из компоновки Surface в компоновку Text. Это исправляет ошибку, из-за которой Exoplayer не отображал компоновку Surface на более ранних версиях API Android. ( 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-интерфейсы Shapes теперь стабильны ( I0f5f4 )
- API Border теперь стабилен ( I69281 )
- API Glow теперь стабилен ( 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
можно было использовать синтаксис завершающих лямбда-выражений 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 теперь ненулевой ( 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. Чтобы отказаться от ленивых макетов tv-foundation, см. примечания к выпуску 1.0.0-alpha11. ( I2fdd3 , b/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. Чтобы узнать, как отказаться от ленивых макетов TV Lazy Layouts, обратитесь к этому тикету . ( I0855f , b/332674072 )
-
PlatformImeOptions
теперь является конкретным классом, а не интерфейсом. ( If40a4 )
Версия 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 )
- Исправлена проблема с отображением холста в панели навигации поверх фонового содержимого, а не за ним. ( 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 , b/252846775 ) - Синхронизировать tv-foundation fork с compose-foundation. ( I737c3 , b/287011882 )
- Добавлена перегрузка
LazyLayout
, которая принимает лямбда-функциюLazyLayoutItemProvider
, а не простой объект, как раньше. Предыдущая перегрузка устарела. ( I42a5a ) - Добавьте
TvKeyboardAlignment
, чтобы позволить разработчику настраивать положение экранной клавиатуры черезAndroidImeOptions
. ( Idb772 ) - Добавьте
rememberCarouselState
, чтобы запомнитьCarouselState
с помощьюSaver
для создания телевизионного материала. ( Id7275 ) - Изменение параметра
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 Material. ( 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
- Индикация масштаба компонентов теперь включает значение None, отключающее масштабирование. ( I50df5 )
- Добавлена поддержка длительного нажатия для поверхности ТВ-материалов, карт и кнопок. ( Id2b89 )
-
CarouselItem
иCarouselScope
удалены. Анимацию содержимого переднего плана можно реализовать в слайде с помощьюModifier.animateEnterExit
изAnimatedContentScope
. ( Ic038e ) - Объединены параметры
color
иcontentColor
в качествеcolors
для поверхности ТВ-материала. ( Ie69eb ) - Введена возможность компоновки
RadioButton
в TV Material. ( 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, оптимизированные для ТВ.
- Добавьте реализацию кнопок Material 3, оптимизированную для ТВ.
Изменения 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
- Представляем компонуемый элемент Side Navigation Drawer в
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-альфа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 )
- Карусель теперь поддерживает пользовательские анимации для ручной прокрутки вперед и назад. ( 431494a )
Изменения API
- Переименование
androidx.tv.material
вandroidx.tv.material3
и выравнивание структуры пакета вandroidx.tv.material3
. ( I6ca52 ) - Индикатор в строке индикатора карусели теперь представляет собой слот, который может быть настроен разработчиком. ( 268af2a )
-
focusableItem
переименован вimmersiveListItem
. Пользователям придётся вручную добавлять модификаторыfocusable()
илиclickable()
вместе сimmersiveListItem
( 5dd5078 )( b/263061052 ). - Переименовано
timeToDisplayMillis
вautoScrollDurationMillis
в компоненте Carousel. ( 431494a ) -
CarouselItem
теперь можно использовать только в пределахCarousel
. ( 431494a ) - Карусель теперь принимает
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-альфа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, позволяющего пользователям добавлять в свои приложения верхние панели навигации. Как правило, телевизоры ожидают, что вкладки будут загружаться, когда фокус находится на заголовке вкладки в строке вкладок. - Специальные индикаторы для телевизоров, такие как индикатор подчёркивания и индикатор таблеток, доступны в комплекте поставки. Примеры использования можно найти в разделе «TV-Samples».
Версия 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
позволяет прокручивающемуся контейнеру прокручивать содержимое так, чтобы элемент в фокусе оставался в том же положении на экране телевизора. - Добавлена компоновка рекомендуемой карусели для ТВ, которая позволяет пользователю создавать автоматически прокручивающуюся карусель баннеров.
- Добавление компонуемого списка Immersive для ТВ, который позволяет пользователю создавать строку/столбец/сетку Immersive, меняющую фон в зависимости от элемента списка, находящегося в фокусе.
Известные проблемы
- Когда прокручиваемый контейнер получает фокус, первый элемент по умолчанию не получает фокус.
- При фокусировке на
TextField
не всегда открывается клавиатура или может помешать перемещению фокуса на другие поля. - Вертикальная прокрутка в
LazyColumn
, содержащемLazyRows
имеет низкую производительность.