电视
最新更新 | 稳定版 | 发布候选版 | 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) - 可选择表面现在使用“选择”术语,而不是“选中”,因为它们都具有不同的语义含义(I5a206)
NavigationDrawer
和NavigationDrawerScope
现已稳定(I249c1)NavigationDrawerItem
组件现已稳定(Id6986)- 标签和
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) - tv-material 组件在 API 中公开
MutableInteractionSource
的已更新为现在公开一个可为空的MutableInteractionSource
,默认值为 null。这里没有语义变化:传递 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 处于实验阶段,某些轮播功能已在测试版发布中删除(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 懒加载布局已从 tv-foundation 库中弃用。参考 此工单 以了解如何从 TV 懒加载布局迁移。(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
,以便使用Saver
在 TV Compose Material 中记住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 引入了筹码组件。(I86da4)
- 将
ListItem
组件添加到 TV Compose Material。(I3f0b3) - 将
DenseListItem
组件添加到 TV Compose Material。(I536bf)
API 更改
- 将公开的 tv-material API 标记为实验性。(I632e7)
- 引入了
TabRowScope
,用于与 Tab 可组合组件共享来自TabRow
可组合组件的状态,并重命名了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 包含这些提交。
新功能
- 添加为 TV 优化的 Material 3 卡片实现。
- 添加为 TV 优化的 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 中引入图标可组合项 (I72db9)
- 将 Surface 可组合项引入
tv-material
,其中包括边框、光晕和缩放等指示,可用于构建在 TV 屏幕上清晰突出显示焦点元素的组件。 (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) - 向
TvLazyListLayoutInfo
和TvLazyGridLayoutInfo
添加了mainAxisItemSpacing
属性 (I37765)
错误修复
- 更新选项卡行以确保它正确处理 0 或 1 个选项卡计数。 (I44009)、(1c01525)、(b/264018028)
- 修复
TvLazyColumn
包含空TvLazyRow
时发生的焦点搜索崩溃。 (e11b4fe)、(b/260299091) clickable
修饰符现在适用于ImmersiveList
。 (5dd5078)、(b/263061052)- 后退键现在已处理,并用于退出精选轮播。 (84c138c)
- Carousel 在多次快速按键时不会失去焦点。 (799489f)
- Carousel 在长按键时不会失去焦点。 (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 设备期望在选项卡行中聚焦选项卡标题时加载选项卡。- TV 特定的指示器,如下划线指示器和药丸指示器,开箱即用。可以在 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 版本包含适用于 TV 用例的组件的早期预览实现,包括
- 添加修饰符
scrollableWithPivot
以允许非延迟滚动容器(如 Row、Column、Grid)滚动内容,以便焦点项目在 TV 屏幕上的位置保持不变。 - 添加可组合项
TvLazyRow
、TvLazyColumn
、TvLazyHorizontalGrid
、TvLazyVerticalGrid
以允许滚动容器滚动内容,以便焦点项目在 TV 屏幕上的位置保持不变。 - 添加用于 TV 的精选轮播可组合项,允许用户创建自动滚动的横幅轮播。
- 添加用于 TV 的沉浸式列表可组合项,允许用户创建沉浸式行/列/网格,该网格根据焦点中的列表项目更改背景。
已知问题
- 当滚动容器获得焦点时,第一个元素默认情况下不会获得焦点。
- 聚焦
TextField
并不总是打开键盘,或者可能会阻止焦点移动到其他字段。 - 在包含
LazyRows
的LazyColumn
中垂直滚动时性能较差。