Compose for TV 是构建 Android TV 用户界面的现代方法。Compose for TV 为您的电视应用解锁了 Android 的 Jetpack Compose 的所有优势,使构建美观且功能强大的 UI 变得更加容易。
使用 Compose for TV 的一些具体优势包括:
- 灵活性:Compose 可用于创建任何类型的 UI,从简单的布局到复杂的动画。组件开箱即用,但也可以自定义和设置样式以满足您的应用需求。
- 简化和加速开发:Compose 与现有代码兼容,使开发者能够更高效地构建代码量更少的应用。
- 直观:Compose 使用声明性语法,使您可以更改 UI,调试、理解和审查代码。
如果您不熟悉使用 Jetpack Compose 工具包,请查看Compose 学习路径。许多移动 Compose 的开发原则也适用于 TV。有关声明性 UI 框架的一般优势的更多信息,请参阅为什么选择 Compose。要了解更多信息,还可以参阅GitHub 上的 Compose for TV 示例存储库。
兼容性
Compose for TV 在 Android 5.0(API 级别 21)或更高版本的 Android 电视上运行。使用 Compose for TV 的 1.0 版本需要 androidx.compose 库的 1.3.0 版本和 Kotlin 1.7.10。
设置
在 Android TV 上使用 Jetpack Compose 类似于在任何其他 Android 项目中使用 Jetpack Compose。主要区别在于 Compose for TV 添加了提供电视优化组件的库,并使创建适合电视的用户界面变得更容易。在某些情况下,这些组件与它们的非电视对应组件具有相同的名称,例如androidx.tv.material3.Button
和 androidx.compose.material3.Button
。
Jetpack Compose 工具包依赖项
要使用 Compose for TV,请在应用的 build.gradle
文件中包含 Jetpack Compose 工具包依赖项,如下所示
Kotlin
dependencies { val composeBom = platform("androidx.compose:compose-bom:2024.10.01") implementation(composeBom) // General compose dependencies. implementation("androidx.activity:activity-compose:1.9.2") implementation("androidx.compose.ui:ui-tooling-preview") debugImplementation("androidx.compose.ui:ui-tooling") // Compose for TV dependencies. implementation("androidx.tv:tv-material:1.0.0") }
Groovy
dependencies { def composeBom = platform('androidx.compose:compose-bom:2024.10.01') implementation composeBom // General compose dependencies. implementation 'androidx.activity:activity-compose:1.9.2' implementation 'androidx.compose.ui:ui-tooling-preview' debugImplementation 'androidx.compose.ui:ui-tooling' // Compose for TV dependencies. implementation 'androidx.tv:tv-material:1.0.0' }
有什么不同
电视材质组件专为客厅设计,具有清晰的焦点指示器和遥控器友好的输入行为。有关如何使用这些特定组件的详细信息,请查看电视 UI 设计指南。
尽可能使用电视版本的 API 以利用这些功能。
虽然从技术上讲可以使用 Compose Material 的移动版本,但它没有针对 Android TV 上独特的交互风格进行优化。此外,将 Compose Material 与 Compose for TV 中的 Compose Material 混合可能会导致意外行为。例如,由于每个库都有自己的 MaterialTheme
对象,因此如果使用这两个版本,颜色、排版或形状可能会不一致。
下表概述了电视和移动版本之间的依赖关系差异
电视依赖项 (androidx.tv.*) |
比较 | 移动依赖项 (androidx.compose.*) |
---|---|---|
androidx.tv:tv-material | 而不是 | androidx.compose.material3:material3 |
其他资源
电视设计指南
使用 Compose for TV 构建用户界面的专用电视组件概述,以及指向相关开发者资源的链接。电视材质目录示例
一个目录应用,演示了如何使用 Compose for TV 实现Material Design 原则。JetStream 示例
一个媒体流应用,演示了如何在典型的 Material 应用和现实世界架构中使用 TV Compose。Compose for TV 简介
此 Codelab 演示了如何构建一个视频播放器应用,其中包含目录浏览器屏幕和详细信息屏幕。
进一步阅读
探索这些指南,了解如何为以下内容构建出色的电视优化体验: