Compose for TV 是构建 Android TV 的新颖方法 界面。Compose for TV 充分发挥 Android 的 Jetpack Compose 的优势, TV 应用,从而为应用构建功能强大且美观出众的界面 。
使用 Compose for TV 的一些具体优势包括:
- 灵活性:Compose 可用于创建任何类型的界面,包括简单的界面 以及复杂的动画组件开箱即可使用,但也可以 进行自定义和设置样式,以满足应用的需求。
- 简体中文与加速开发:Compose 与 让开发者能够更高效地构建应用 可以减少代码量。
- 直观:Compose 使用声明式语法, 更改界面,调试、理解和审核您的代码。
如果您不熟悉如何使用 Jetpack Compose 工具包,请查看 Compose 开发者在线课程。很多 Compose 移动设备开发原则同样适用于 TV。了解原因 Compose 有关声明式界面框架一般优势的信息。学习内容 另请参阅适用于 GitHub 上的 TV 示例代码库。
兼容性
Compose for TV 适用于搭载 Android 5.0(API 级别 21)或更高版本的 Android TV。 若要使用 Compose for TV 1.0 版,必须安装 androidx.compose 库 和 Kotlin 1.7.10。
设置
在 Android TV 上使用 Jetpack Compose 与将 Jetpack Compose 用于
其他 Android 项目主要区别在于
Compose for TV
添加了一些库,这些库可提供针对 TV 优化的组件,并使创建
为电视量身打造的用户界面在某些情况下,这些组件
与电视对应的非电视版本对应的名称,例如
androidx.tv.material3.Button
和
androidx.compose.material3.Button
。
Jetpack Compose 工具包依赖项
如需使用 Compose for TV,请添加 Jetpack Compose 工具包
依赖项添加到应用的 build.gradle
文件中,如下所示:
Kotlin
dependencies { val composeBom = platform("androidx.compose:compose-bom:2024.06.00") implementation(composeBom) // General compose dependencies. implementation("androidx.activity:activity-compose:1.9.0") 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-rc01") }
Groovy
dependencies { def composeBom = platform('androidx.compose:compose-bom:2024.06.00') implementation composeBom // General compose dependencies. implementation 'androidx.activity:activity-compose:1.9.0' 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-rc01' }
不同之处
TV Material 组件专门针对客厅设计,焦点清晰 指示器和方便远程使用的输入行为。如需详细了解 如需使用这些特定组件,请参阅 TV 界面设计指南。
尽可能使用 TV 版的 API,从中受益 这些功能。
虽然从技术层面来讲,可以使用移动版 Compose Material,
它没有针对 Android TV 上独特的互动方式进行优化。在
将 Compose Material 与 Compose Material 结合使用,
Compose for TV 可能会导致意外行为。例如:
因为每个库都有自己的 MaterialTheme
对象,所以有可能
颜色、排版或形状不一致的情况。
下表概述了 TV 与 移动设备:
TV 依赖项 (androidx.tv.*) |
比较 | 移动设备依赖项 (androidx.compose.*) |
---|---|---|
androidx.tv:tv-material | 代替 | androidx.compose.material3:material3 |
其他资源
TV 设计指南
用于构建界面的专用 TV 组件概览 相关开发者资源的链接。TV Material Catalog 示例
一个演示如何实现的目录应用 使用 Compose for TV 的 Material Design 原则。JetStream 示例
一个流媒体应用,演示了如何将 TV Compose 与 典型的 Material 应用和真实架构。Compose for TV 简介
此 Codelab 将逐步介绍使用目录浏览器构建视频播放器应用 屏幕和详情屏幕。
深入阅读
请浏览以下指南,了解如何针对以下平台打造针对电视优化的出色体验: