电视
最新更新 | 稳定版 | 候选版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2024 年 8 月 21 日 | 1.0.0 | - | - | - |
声明依赖项
要添加对 tv-foundation 和 tv-material 的依赖项,您必须将 Google Maven 存储库添加到您的项目中。阅读Google 的 Maven 存储库以了解更多信息。
在应用或模块的 build.gradle
文件中添加所需工件的依赖项
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") }
有关依赖项的更多信息,请参阅添加构建依赖项。
反馈
您的反馈有助于改进 Jetpack。如果您发现新的问题或有改进此库的想法,请告知我们。在创建新问题之前,请查看此库中现有问题。您可以通过点击星形按钮为现有问题添加您的投票。
有关更多信息,请参阅问题跟踪器文档。
此工件没有发布说明。
Tv-Material 版本 1.0
版本 1.0.0
2024 年 8 月 21 日
androidx.tv:tv-material:1.0.0
已发布。版本 1.0.0 是 androidx.tv:tv-material
的第一个稳定版本。
版本 1.0.0-rc02
2024 年 8 月 7 日
androidx.tv:tv-material:1.0.0-rc02
已发布。版本 1.0.0-rc02 包含这些提交。
错误修复
- 修复了 Surface 可组合组件中的文本动画抖动问题。(3163319)
版本 1.0.0-rc01
2024 年 7 月 10 日
androidx.tv:tv-material:1.0.0-rc01
已发布。版本 1.0.0-rc01 包含这些提交。
版本 1.0.0-beta01
2024 年 5 月 1 日
androidx.tv:tv-material:1.0.0-beta01
已发布。版本 1.0.0-beta01 包含这些提交。
API 更改
ColorScheme
及其实用程序函数现已稳定。(If34fa)LocalContentColor
现已稳定(I60ee2)Typography
API 现已稳定(I088d6)- 形状 API 现已稳定(I0f5f4)
- 边框 API 现已稳定(I69281)
- 发光 API 现已稳定(Iea5f1)
- 图标组件现已稳定(I62c2d)
LocalTextStyles
API 现已稳定(Iaded8)MaterialTheme
API 现已稳定(I2f541)- 文本组件现已稳定(Ib9e31)
RadioButton
组件现已稳定(Ia03c8)- 开关组件现已稳定(I6cea3)
Checkbox
组件现已稳定(I7eafc)- 表面组件现已稳定(I58758,I04aca)
- 将
NonInteractiveSurfaceDefaults
重命名为SurfaceDefaults
,并将NonInteractiveSurfaceColors
重命名为SurfaceColors
(I0812e) - 可选择的表面现在使用“select”术语代替“check”,因为它们具有不同的语义含义(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
参数已移动到可组合组件的顶部。之前,您可以使用 Kotlin 的尾随 lambda 语法传递headlineContent
。现在,您必须使用命名参数语法来提供headlineContent
。 LocalAbsoluteTonalElevation
现在是内部的(Ibfc65)- 已删除
ImmersiveList
组件。请查看此示例,了解如何自己构建它。(Id48da) - 在 API 中公开
MutableInteractionSource
的 tv-material 组件已更新为现在公开一个默认为 null 的可空MutableInteractionSource
。这里没有语义更改:传递 null 表示您不希望提升MutableInteractionSource
,并且如果需要,它将在组件内部创建。更改为 null 允许某些组件永远不会分配MutableInteractionSource
,并允许其他组件仅在需要时延迟创建实例,从而提高了这些组件的性能。如果您没有使用传递给这些组件的MutableInteractionSource
,建议您传递 null。还建议您在您自己的组件中进行类似的更改。(I309b4,b/298048146) - TV 文本组件的
TextAlign
参数现在是非空的(Ib73b1,b/299490814) - 为
TextAlign
、TextDirection
、Hyphens
和LineBreak
字段引入了ParagraphTextStyle
的特殊未指定值以替换(I4197e,b/299490814)
行为更改
- 非交互式
Surface
的shape
参数的默认值已更改为RectangleShape
(I1b859cb) - 由于必要的 API 处于实验阶段,因此某些轮播功能已在 Beta 版发布中删除(I0e755d4)
- 在
Surface
中更改contentColor
不会再在状态之间进行动画切换(I436e794f)
版本 1.0.0
版本 1.0.0-alpha11
2024 年 7 月 10 日
androidx.tv:tv-foundation:1.0.0-alpha11
已发布。版本 1.0.0-alpha11 包含这些提交。
API 更改
- Tv Lazy 布局已从 tv-foundation 库中弃用。请参阅此工单,了解如何从 tv lazy 布局迁移。(I0855f,b/332674072)
PlatformImeOptions
现在是具体类而不是接口。(If40a4)
版本 1.0.0-alpha10
2023 年 10 月 4 日
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
2023年9月6日
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
的 lambda 表达式,而不是像以前一样接受普通对象。之前的重载已弃用。(I42a5a)- 添加
TvKeyboardAlignment
以允许开发者通过AndroidImeOptions
配置屏幕键盘位置。(Idb772) - 将
rememberCarouselState
添加到 TV Compose Material 中,用于使用Saver
记住CarouselState
。(Id7275) - 将
scrimColor: Color
参数更改为scrimBrush:Brush
参数,以允许用户向遮罩层添加渐变。(I254d4)
版本 1.0.0-alpha08
2023年7月26日
androidx.tv:tv-foundation:1.0.0-alpha08
和 androidx.tv:tv-material:1.0.0-alpha08
已发布。 版本 1.0.0-alpha08 包含这些提交。
新功能
- 为 Compose for TV Material 引入 Chip 组件。(I86da4)
- 将
ListItem
组件添加到 TV Compose Material 中。(I3f0b3) - 将
DenseListItem
组件添加到 TV Compose Material 中。(I536bf)
API 更改
- 将公共 tv-material API 标记为 Experimental。(I632e7)
- 引入
TabRowScope
以共享TabRow
可组合项与 Tab 可组合项的状态,并重命名TabColors
属性。(Ief587)
版本 1.0.0-alpha07
2023年6月7日
androidx.tv:tv-foundation:1.0.0-alpha07
和 androidx.tv:tv-material:1.0.0-alpha07
已发布。 版本 1.0.0-alpha07 包含这些提交。
API 更改
- 组件的缩放指示现在包括 None 以禁用缩放。(I50df5)
- 为 TV Material Surface、卡片和按钮添加了长按支持。(Id2b89)
CarouselItem
和CarouselScope
已删除。可以通过使用AnimatedContentScope
中的Modifier.animateEnterExit
在滑动中实现前景色动画。(Ic038e)- 将 TV Material Surface 的
color
和contentColor
参数合并为colors
。(Ie69eb) - 在 TV Material 中引入
RadioButton
可组合项。(I08690) - 在 TV Material 中引入
Switch
可组合项。(I45e29) - 在 TV Material 中引入
Checkbox
可组合项。(I6a45a) - 在 TV Material 中引入不可交互的 Surface。(Ic5f85)
- 将指示器设为内部使用。(Ibff82)
版本 1.0.0-alpha06
2023年4月19日
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)
错误修复
- 在
NavigationDrawer
上聚焦时处理后退 DPAD 按钮。(d654f4)
版本 1.0.0-alpha05
2023年3月22日
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 中引入 Icon 可组合项 (I72db9)
- 将 Surface 可组合项引入
tv-material
,并包含边框、辉光和缩放等指示,可用于构建在电视屏幕上清晰突出显示焦点元素的组件。(I4a6d8)、(Iceea1)、(Iee4d4)、(I79edf)、(Icb376) - 将
CarouselItem
更新为CarouselSlide
以匹配“Carousel”API 中的slideCount
参数名称 (Ic4299)
版本 1.0.0-alpha04
2023年2月8日
androidx.tv:tv-foundation:1.0.0-alpha04
和 androidx.tv:tv-material:1.0.0-alpha04
已发布。 版本 1.0.0-alpha04 包含这些提交。
新功能
- 在惰性行、列和网格中,如有必要,将覆盖轴心点以确保整个项目都进入视图。(11d7e40)
- 添加选项卡在不同状态下的颜色自定义。(21b2925)
- Carousel 现在接受用于向前和向后手动滚动的自定义动画。(431494a)
API 更改
- 将
androidx.tv.material
重命名为androidx.tv.material3
,并在androidx.tv.material3
下扁平化包结构。(I6ca52) - Carousel 指示器行内的指示器现在是一个插槽,开发者可以自定义它。(268af2a)
- 将
focusableItem
重命名为immersiveListItem
。用户需要手动添加focusable()
或clickable()
修饰符以及immersiveListItem
(5dd5078)(b/263061052) - 将 Carousel 组件中的
timeToDisplayMillis
重命名为autoScrollDurationMillis
。(431494a) CarouselItem
现在仅限在Carousel
中使用。(431494a)- Carousel 现在接受
ContentTransforms
作为动画定义,而不是EnterTransition
和ExitTransitions
。(431494a) - 引入
PinnableContainer
api,通过组合本地传播到惰性列表,允许固定当前项目。(Ib8881, b/259274257, b/195049010) - 将
mainAxisItemSpacing
属性添加到TvLazyListLayoutInfo
和TvLazyGridLayoutInfo
(I37765)
错误修复
- 更新 tab-row 以确保它正确处理 tab 数量为 0 或 1 的情况。(I44009)、(1c01525)、(b/264018028)
- 修复
TvLazyColumn
包含空TvLazyRow
时焦点搜索崩溃的问题。(e11b4fe)、(b/260299091) - 现在
clickable
修饰符可与ImmersiveList
配合使用。(5dd5078)、(b/263061052) - 现在已处理后退键,并将其用于退出特色轮播。(84c138c)
- Carousel 在多次快速按键时不会失去焦点。(799489f)
- 旋转木马在长时间按键时不会失去焦点。(b2cf37e)
- 解决了旋转木马幻灯片数量发生变化时发生的崩溃问题。(b261247)
版本 1.0.0-alpha03
2022 年 12 月 7 日
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
2022 年 11 月 9 日
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
2022 年 10 月 5 日
androidx.tv:tv-foundation:1.0.0-alpha01
和 androidx.tv:tv-material:1.0.0-alpha01
已发布。 版本 1.0.0-alpha01 包含这些提交。
新功能
第一个 alpha 版本包含针对电视用例的组件的早期预览实现,包括
- 添加修饰符
scrollableWithPivot
以允许非延迟滚动容器(如 Row、Column、Grid)滚动内容,以便聚焦的项目在电视屏幕上的位置保持不变。 - 添加可组合项
TvLazyRow
、TvLazyColumn
、TvLazyHorizontalGrid
、TvLazyVerticalGrid
以允许滚动容器滚动内容,以便聚焦的项目在电视屏幕上的位置保持不变。 - 添加适用于电视的 Featured Carousel 可组合项,允许用户创建自动滚动的横幅轮播。
- 添加适用于电视的 Immersive List 可组合项,允许用户创建沉浸式 Row/Column/Grid,该列表根据聚焦的列表项更改背景。
已知问题
- 当滚动容器获得焦点时,第一个元素默认不会获得焦点。
- 聚焦于
TextField
并不总是会打开键盘,或者可能会阻止焦点移动到其他字段。 - 在包含
LazyRows
的LazyColumn
中垂直滚动性能较差。