tv

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

声明依赖项

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

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

Groovy

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

Kotlin

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

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

反馈

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

创建新问题

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

此工件没有版本说明。

版本 1.0.0

版本 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 中垂直滚动时,性能不佳。