Di chuyển sang Compose cho TV
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Để di chuyển từ bộ công cụ giao diện người dùng Leanback sang Compose cho Android TV, hãy làm theo các bước sau:
Đánh giá cách triển khai Leanback hiện tại bằng cách xác định các thành phần bạn đang sử dụng (bao gồm cả các thành phần được cung cấp bên trong các mảnh được tạo sẵn) và tìm hiểu cách cấu trúc giao diện người dùng cũng như cách dữ liệu di chuyển qua ứng dụng.
Di chuyển từng màn hình của ứng dụng TV sang Compose để bạn có thể tìm hiểu và điều chỉnh dần dần cho phù hợp với Compose.
Mặc dù bạn có thể sử dụng cả Leanback và Compose trong cùng một ứng dụng để cho phép quá trình di chuyển dần dần, hãy bắt đầu bằng cách thay thế toàn bộ mảnh cùng một lúc với mục tiêu chuyển đổi ứng dụng TV thành một hoạt động duy nhất.
Bắt đầu từ những bước nhỏ. Đừng cố di chuyển mọi thứ cùng một lúc. Bắt đầu với các thành phần nhỏ hơn như màn hình cài đặt hoặc tài khoản và dần dần làm việc thông qua ứng dụng.
Tham khảo tài liệu và ví dụ trong các tài nguyên được liệt kê trong phần Tài nguyên.
Tận dụng các thành phần chuyên dụng từ Compose cho TV bằng cách sử dụng thư viện Jetpack. Hãy tham khảo hướng dẫn thiết kế của chúng tôi để khám phá cách bạn có thể tuỳ chỉnh và mở rộng các thành phần kết hợp sẵn có để tạo giao diện người dùng TV đẹp mắt.
Điều chỉnh dữ liệu và hoạt động quản lý trạng thái để hỗ trợ mô hình lập trình khai báo của Compose. Việc điều chỉnh có thể yêu cầu thay đổi cách bạn quản lý dữ liệu và trạng thái trong ứng dụng. Hãy sử dụng ViewModel
và các cơ chế quản lý trạng thái nội bộ của Jetpack Compose để quản lý dữ liệu và trạng thái trong ứng dụng.
Kiểm thử và lặp lại khi bạn di chuyển các phần phức tạp hơn của ứng dụng.
Hãy tham gia cộng đồng nhà phát triển Android đang hoạt động trên Stack Overflow để trao đổi về mọi lỗi bạn gặp phải hoặc gửi lỗi thông qua công cụ theo dõi lỗi công khai của chúng tôi.
Tài nguyên
Cho dù bạn mới sử dụng Compose hay đang trong quá trình di chuyển sang Compose, bộ sưu tập tài nguyên khổng lồ của chúng tôi sẽ giúp bạn tìm hiểu các phương pháp hay nhất để xây dựng giao diện người dùng trên TV bằng bộ công cụ phát triển Android hiện đại, Jetpack Compose:
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-07-27 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-07-27 UTC."],[],[],null,["# Migrate to Compose for TV\n\nTo migrate from the Leanback UI toolkit to Compose for Android TV, follow these steps:\n\n- **Assess your current Leanback implementation** by identifying the components\n you're using (including those that are provided inside the prefabricated\n fragments) and understanding how your UI is structured and how data flows\n through your app.\n\n- **Migrate individual screens** of your TV app to Compose so you can learn and adapt to Compose\n gradually.\n\n - While you can use both Leanback and Compose within the same app to allow for\n a gradual migration process, begin by replacing entire fragments at a time\n with a goal of converting your TV application into a single activity.\n\n - Start small. Don't try to migrate everything at once. Begin with smaller\n components like settings or account screens and gradually work your way\n through the app.\n\n - Refer to documentation and examples in the resources listed in the\n [Resources](#resources) section.\n\n- **Leverage dedicated components** from Compose for TV by using [the Jetpack\n libraries](/jetpack/androidx/releases/tv). Consult our [design guides](/design/ui/tv/guides/components) to explore\n how you can customize and extend ready-to-use composables to build\n beautiful TV UIs.\n\n- **Adapt your data and state management** to support the Compose [declarative\n programming paradigm](/develop/ui/compose/mental-model#paradigm). Adaptation might require changes in how you manage\n data and state in your app. Use [`ViewModel`](/reference/kotlin/androidx/lifecycle/ViewModel)\n and Jetpack Compose internal state management mechanisms to manage data and\n state in your app.\n\n- **[Test](/develop/ui/compose/testing) and iterate** as you migrate more complex parts of your app.\n\nEngage with the active Android [developer community on Stack\nOverflow](https://stackoverflow.com/questions/tagged/android-jetpack-compose-tv) for any bugs you encounter, or submit the bugs through\nour [public bug tracker](/jetpack/androidx/releases/tv#feedback).\n\nResources\n---------\n\nWhether you're new to Compose or are in the process of migrating to Compose\nalready, our large collection of resources are here to help you learn best\npractices for building TV UIs with the modern Android development toolkit,\nJetpack Compose:\n\n- [Compose for TV integration guides](/training/tv/playback/compose)\n- [TV design guides](/design/ui/tv/guides/components)\n- [Introduction to Compose for TV](/codelabs/compose-for-tv-introduction) codelab\n- [Library release notes](/jetpack/androidx/releases/tv)\n- [JetStream](https://github.com/android/tv-samples/tree/main/JetStreamCompose) video streaming sample app\n- [JetCaster](https://github.com/android/compose-samples/tree/main/Jetcaster/tv-app) audio streaming sample app\n- [Component samples](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:tv/samples/src/main/java/androidx/tv/samples/)"]]