tv

  
为开发者提供 Compose 和 Material Design 功能,以便于编写 TV 应用
最近更新时间 稳定版 候选版 Beta 版 Alpha 版
2023 年 10 月 4 日 - - - 1.0.0-alpha10

声明依赖项

若要添加 tv-foundation 和 tv-material 的依赖项,您必须将 Google Maven 制品库添加到项目中。如需了解详情,请参阅 Google 的 Maven 制品库

在应用或模块的 build.gradle 文件中添加所需工件的依赖项:

Groovy

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

Kotlin

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

如需详细了解依赖项,请参阅添加 build 依赖项

反馈

您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。

创建新问题

如需了解详情,请参阅问题跟踪器文档

此工件没有版本说明。

版本 1.0.0

版本 1.0.0-alpha10

2023 年 10 月 4 日

发布了 androidx.tv:tv-foundation:1.0.0-alpha10androidx.tv:tv-material:1.0.0-alpha10版本 1.0.0-alpha10 中包含这些提交内容

新功能

  • 引入了在 NavigationDrawerModalNavigationDrawer 中使用的 NavigationDrawerItem。(I4b491
  • 向 tv-foundation 库添加了基准配置文件。(2b57fd7)
  • 向 tv-material 库添加了基准配置文件。(1711ff5)

API 变更

  • NavigationDrawerScope.doesTabRowHaveFocus 已重命名为 NavigationDrawerScope.hasFocus。(I8286b
  • TabRowScope.isActivated 已重命名为 TabRowScope.hasFocus。(Ic4273

bug 修复

  • 修复了轮播界面与使用焦点恢复器 API 的相邻项之间的兼容性。(7b2a7a4)
  • 为低于 28 的 API_LEVEL 停用发光指示,因为操作系统不支持它。(6d3616f)
  • 修复了在反向快速滚动时因延迟容器中的项目放置不当而导致的 ANR 崩溃问题。(642d65c)
  • 移除了模态抽屉式导航栏中的背景内边距。(69965b2)
  • 修复了抽屉式导航栏中的 Scrim 问题,使其在背景内容上方而不是后方绘制。(d4bbefb)

版本 1.0.0-alpha09

2023 年 9 月 6 日

发布了 androidx.tv:tv-foundation:1.0.0-alpha09androidx.tv:tv-material:1.0.0-alpha09版本 1.0.0-alpha09 中包含这些提交内容

API 变更

  • 添加了 ReusableComposition 接口,用于管理子组合的生命周期和重复使用。(I812d1b/252846775
  • 将 tv-foundation 分支与 compose-foundation 进行了同步。(I737c3b/287011882
  • 添加了 LazyLayout 的重载,它接受 LazyLayoutItemProvider 的 lambda,而不是像以前一样的普通对象。之前的重载已废弃。(I42a5a)
  • 添加了 TvKeyboardAlignment,以允许开发者通过 AndroidImeOptions 配置屏幕键盘的位置。(Idb772)
  • 添加了 rememberCarouselState,以通过 SaverCarouselState 记在 TV Compose Material 中。(Id7275)
  • scrimColor: Color 参数更改为 scrimBrush:Brush 参数,以允许用户向纱罩添加渐变效果。(I254d4)

版本 1.0.0-alpha08

2023 年 7 月 26 日

发布了 androidx.tv:tv-foundation:1.0.0-alpha08androidx.tv:tv-material:1.0.0-alpha08版本 1.0.0-alpha08 中包含这些提交内容。

新功能

  • 针对 Compose for TV Material 引入了 Chip 组件。(I86da4)
  • 在 TV Compose Material 中添加了 ListItem 组件。(I3f0b3)
  • 在 TV Compose Material 中添加了 DenseListItem 组件。(I536bf)

API 变更

  • 将公共的 tv-material API 标记成了实验性 API。(I632e7)
  • 引入了 TabRowScope,以将 TabRow 可组合项的状态与 Tab 可组合项共享,还重命名了 TabColors 属性。(Ief587)

版本 1.0.0-alpha07

2023 年 6 月 7 日

发布了 androidx.tv:tv-foundation:1.0.0-alpha07androidx.tv:tv-material:1.0.0-alpha07版本 1.0.0-alpha07 中包含这些提交内容。

API 变更

  • 组件的缩放指示现包括“无”,用以停用缩放功能。(I50df5)
  • 添加了对 TV Material Surface、卡片和按钮的长按支持。(Id2b89)
  • 移除了 CarouselItemCarouselScope。使用 AnimatedContentScope 中的 Modifier.animateEnterExit 可以在幻灯片中实现前景内容动画。(Ic038e)
  • 针对 TV Material Surface 将 colorcontentColor 两个参数合并成了 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-alpha06androidx.tv:tv-material:1.0.0-alpha06版本 1.0.0-alpha06 中包含这些提交内容。

新功能

  • 添加了针对 TV 进行了优化 Material 3 卡片实现。
    • 基础卡片 (I5b701)
    • ClassicCardCompactCardWideClassicCard (I70471)
    • StandardCardLayoutWideCardLayout (I33fae)
  • 添加了针对 TV 进行了优化的 Material 3 按钮实现。

API 变更

  • Carousel 中的 CarouselSlideslideCount 重命名为了 CarouselItemitemCount。(Ie554c)
  • forwardbackward ContentTransforms 重命名为了 StartToEndEndToStart。(Ie554c)

bug 修复

  • 当焦点位于 NavigationDrawer 上时处理方向键返回按钮。(d654f4)

版本 1.0.0-alpha05

2023 年 3 月 22 日

发布了 androidx.tv:tv-foundation:1.0.0-alpha05androidx.tv:tv-material:1.0.0-alpha05版本 1.0.0-alpha05 中包含这些提交内容

API 变更

  • tv-material 中引入了侧边抽屉式导航栏可组合项。如需了解如何使用此可组合项,请参考示例。(I12c08)
  • 在 TV Material 3 中引入了图标可组合项。(I72db9)
  • tv-material 中引入了 Surface 可组合项,带有边框、发光、缩放等指示,可用于构建能清晰突出 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-alpha04androidx.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。(431494a)
  • CarouselItem 现在只能在 Carousel 内使用。(431494a)
  • 轮播界面现在接受 ContentTransforms 而不是 EnterTransitionExitTransitions 作为动画定义。(431494a)
  • 引入了 PinnableContainer API,由延迟列表通过本地组合进行传播,以便固定当前项。(Ib8881b/259274257b/195049010
  • TvLazyListLayoutInfoTvLazyGridLayoutInfo 添加了 mainAxisItemSpacing 属性 (I37765)

bug 修复

  • 更新了标签页行,以确保它能正确处理标签页数量为 0 或 1 时的情况。(I44009)、(1c01525)、(b/264018028)
  • 修复了当 TvLazyColumn 包含空 TvLazyRow 时焦点搜索崩溃的问题。(e11b4fe)、(b/260299091)
  • clickable 修饰符现在可与 ImmersiveList 搭配使用。(5dd5078)、(b/263061052)
  • 系统现在会处理返回键,该按键可用于退出“精选轮播界面”。(84c138c)
  • 用户多次快速按下按键时轮播界面不会失去焦点。(799489f)
  • 用户长按按键时轮播界面不会失去焦点。(b2cf37e)
  • 解决了轮播界面幻灯片数量变化时发生崩溃的问题。(b261247)

版本 1.0.0-alpha03

2022 年 12 月 7 日

发布了 androidx.tv:tv-foundation:1.0.0-alpha03androidx.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-alpha02androidx.tv:tv-material:1.0.0-alpha02版本 1.0.0-alpha02 中包含这些提交内容

bug 修复

  • 通过减少焦点搜索空间,提升了滚动一系列 TvLazyRows/TvLazyColumns 时的滚动性能。(I723a3)

版本 1.0.0-alpha01

2022 年 10 月 5 日

发布了 androidx.tv:tv-foundation:1.0.0-alpha01androidx.tv:tv-material:1.0.0-alpha01版本 1.0.0-alpha01 中包含这些提交内容

新功能

首个 Alpha 版包含适用于 TV 用例的组件的早期预览版实现,包括:

  • 添加了修饰符 scrollableWithPivot,可允许非延迟滚动容器(例如:行、列和网格)让滚动容器滚动内容,从而使获得焦点的项在 TV 屏幕上保持同一位置。
  • 添加了可组合项 TvLazyRowTvLazyColumnTvLazyHorizontalGridTvLazyVerticalGrid,可让滚动容器滚动内容,从而使获得焦点的项目在 TV 屏幕上保持同一位置。
  • 添加了适用于 TV 的精选轮播界面可组合项,可让用户创建自动滚动横幅的轮播界面。
  • 为 TV 添加了沉浸式列表可组合项,可让用户创建根据获得焦点的列表项来更改背景的沉浸式行/列/网格。

已知问题

  • 默认情况下,滚动容器获得焦点后,第一个元素不会获得焦点。
  • 聚焦在 TextField 上时,不一定会打开键盘,也可能阻止焦点移至其他字段。
  • 在包含 LazyRowsLazyColumn 中垂直滚动时,性能不佳。