TV

  
Cung cấp cho nhà phát triển các chức năng Compose và Material Design để viết ứng dụng cho TV
Bản cập nhật mới nhất Bản phát hành ổn định Bản phát hành dùng thử Bản phát hành beta Bản phát hành alpha
Ngày 1 tháng 5 năm 2024 - - 1.0.0-beta01 -

Khai báo phần phụ thuộc

Để thêm các phần phụ thuộc trên tv-foundation và tv-material, bạn phải thêm kho lưu trữ Google Maven vào dự án. Đọc nội dung Kho lưu trữ Maven của Google để biết thêm thông tin.

Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp build.gradle cho ứng dụng hoặc mô-đun:

Groovy

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

Kotlin

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

Để biết thêm thông tin về các phần phụ thuộc, hãy xem bài viết Thêm phần phụ thuộc vào bản dựng.

Ý kiến phản hồi

Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.

Báo lỗi mới

Xem tài liệu về Công cụ theo dõi lỗi để biết thêm thông tin.

Không có ghi chú phát hành cho cấu phần phần mềm này.

Tv-Material Phiên bản 1.0

Phiên bản 1.0.0-beta01

Ngày 1 tháng 5 năm 2024

Phát hành androidx.tv:tv-material:1.0.0-beta01. Phiên bản 1.0.0-beta01 bao gồm các thay đổi sau.

Các thay đổi về API

  • ColorScheme và các hàm hiệu dụng của nó hiện đã ổn định. (If34fa)
  • LocalContentColor hiện đã ổn định (I60ee2)
  • Typography API hiện đã ổn định (I088d6)
  • API hình dạng hiện đã ổn định (I0f5f4)
  • Border API hiện đã ổn định (I69281)
  • Glow API hiện đã ổn định (Iea5f1)
  • Thành phần biểu tượng hiện đã ổn định (I62c2d)
  • LocalTextStyles API hiện đã ổn định (Iaded8)
  • MaterialTheme API hiện đã ổn định (I2f541)
  • Thành phần văn bản hiện đã ổn định (Ib9e31)
  • Thành phần RadioButton hiện đã ổn định (Ia03c8)
  • Thành phần công tắc hiện đã ổn định (I6cea3)
  • Các thành phần Checkbox hiện đã ổn định (I7eafc)
  • Các thành phần bề mặt hiện đã ổn định (I58758, I04aca)
  • Đổi tên NonInteractiveSurfaceDefaults thành SurfaceDefaultsNonInteractiveSurfaceColors thành SurfaceColors (I0812e)
  • Nền tảng có thể chọn hiện sử dụng thuật ngữ "chọn" thay vì "kiểm tra" vì cả hai đều có ý nghĩa ngữ nghĩa khác nhau (I5a206)
  • NavigationDrawerNavigationDrawerScope hiện đang ổn định (I249c1)
  • Thành phần NavigationDrawerItem hiện đã ổn định (Id6986)
  • Các thành phần Tab và TabRow hiện đã ổn định (I92d92)
  • Các thành phần Button, OutlinedButton, IconButton, OutlinedIconButtonWideButton hiện đã ổn định (Ib4de8)
  • Các thành phần Card, ClassicCard, CompactCard, WideClassicCard, StandardCardContainerWideCardContainer hiện đã ổn định (I34390)
  • Đổi tên StandardCardLayout thành StandardCardContainerWideCardLayout thành WideCardContainer (I08883)
  • Xoá CardContainerDefaults.ImageCard và đổi tên CardDefaults.ContainerGradient thành CardDefaults.ScrimBrush (I6adfe)
  • ListItemDenseListItem hiện đang ổn định (Idebd9)
  • ListItemDefaults.ListItemShape, ListItemDefaults.FocusedDisabledBorderListItemDefaults.SelectedContainerColorOpacity hiện ở chế độ riêng tư (I5d533)
  • Sắp xếp lại các tham số của ListItem rồi đổi tên ListItemDefaults.ListItemElevation thành ListItemDefaults.TonalElevation (Id6841)
  • LocalAbsoluteTonalElevation hiện là nội bộ (Ibfc65)
  • Thành phần ImmersiveList đã bị xoá. Hãy xem mẫu này để tìm hiểu cách tự tạo dựng mô hình. (Id48da)
  • Các thành phần tv-material hiển thị MutableInteractionSource trong API đã được cập nhật để hiện MutableInteractionSource có thể nhận giá trị rỗng mặc định là rỗng. Không có thay đổi nào về ngữ nghĩa ở đây: việc truyền giá trị rỗng có nghĩa là bạn không muốn nâng MutableInteractionSource lên trên và đối tượng này sẽ được tạo bên trong thành phần nếu cần. Việc thay đổi thành giá trị rỗng cho phép một số thành phần không bao giờ phân bổ MutableInteractionSource, đồng thời cho phép các thành phần khác chỉ tạo từng phần một thực thể khi cần, giúp cải thiện hiệu suất trên các thành phần này. Nếu không sử dụng MutableInteractionSource mà bạn truyền đến các thành phần này, bạn nên truyền giá trị rỗng. Bạn cũng nên thực hiện các thay đổi tương tự trong các thành phần của riêng mình. (I309b4, b/298048146)
  • Tham số TextAlign của thành phần Văn bản TV hiện không rỗng (Ib73b1, b/299490814)
  • Ra mắt một giá trị Không xác định đặc biệt cho các trường TextAlign, TextDirection, HyphensLineBreak của ParagraphTextStyle để thay thế (I4197e, b/299490814)

Phiên bản 1.0.0

Phiên bản 1.0.0-alpha10

Ngày 4 tháng 10 năm 2023

Phát hành androidx.tv:tv-foundation:1.0.0-alpha10androidx.tv:tv-material:1.0.0-alpha10. Phiên bản 1.0.0-alpha10 bao gồm các thay đổi sau.

Tính năng mới

  • Ra mắt NavigationDrawerItem để sử dụng trong NavigationDrawerModalNavigationDrawer. (I4b491)
  • Thêm hồ sơ cơ sở vào thư viện tv-foundation. (2b57fd7)
  • Thêm hồ sơ cơ sở vào thư viện tv-material. (1711ff5)

Các thay đổi về API

  • Đổi tên NavigationDrawerScope.doesTabRowHaveFocus thành NavigationDrawerScope.hasFocus. (I8286b)
  • Đổi tên TabRowScope.isActivated thành TabRowScope.hasFocus. (Ic4273)

Sửa lỗi

  • Sửa khả năng tương thích của Băng chuyền với các mục liền kề sử dụng API khôi phục tiêu điểm. (7b2a7a4)
  • Tắt chỉ báo phát sáng cho API_LEVEL dưới 28 vì chỉ báo này không được hệ điều hành hỗ trợ. (6d3616f)
  • Khắc phục sự cố ANR do vị trí mục không đúng trong vùng chứa tải từng phần khi cuộn nhanh theo chiều ngược lại. (642d65c)
  • Xoá khoảng đệm nền trong Ngăn điều hướng mô-đun. (69965b2)
  • Sửa lỗi Scrim trong Ngăn điều hướng để vẽ bên trên nội dung nền thay vì phía sau nội dung đó. (d4bbefb)

Phiên bản 1.0.0-alpha09

Ngày 6 tháng 9 năm 2023

Phát hành androidx.tv:tv-foundation:1.0.0-alpha09androidx.tv:tv-material:1.0.0-alpha09. Phiên bản 1.0.0-alpha09 bao gồm các thay đổi sau.

Các thay đổi về API

  • Thêm giao diện ReusableComposition để quản lý vòng đời và sử dụng lại các lần kết hợp phụ. (I812d1, b/252846775)
  • Đồng bộ hoá nhánh phát triển tv-foundation với compose-foundation. (I737c3, b/287011882)
  • Thêm hàm quá tải của LazyLayout, hàm này chấp nhận lambda của LazyLayoutItemProvider, chứ không phải đối tượng đơn giản như trước đây. Hàm quá tải trước đây không còn được dùng nữa. (I42a5a)
  • Thêm TvKeyboardAlignment để cho phép nhà phát triển định cấu hình vị trí bàn phím ảo thông qua AndroidImeOptions. (Idb772)
  • Thêm rememberCarouselState để ghi nhớ CarouselStateSaver vào TV Material trong Compose. (Id7275)
  • Thay đổi tham số scrimColor: Color thành tham số scrimBrush:Brush để cho phép người dùng thêm các màu gradient vào tập lệnh. (I254d4)

Phiên bản 1.0.0-alpha08

Ngày 26 tháng 7 năm 2023

Phát hành androidx.tv:tv-foundation:1.0.0-alpha08androidx.tv:tv-material:1.0.0-alpha08. Phiên bản 1.0.0-alpha08 bao gồm các thay đổi sau.

Tính năng mới

  • Ra mắt các thành phần Khối cho Compose Material cho TV. (I86da4)
  • Thêm thành phần ListItem cho Compose Material cho TV. (I3f0b3)
  • Thêm thành phần DenseListItem cho Compose Material cho TV. (I536bf)

Các thay đổi về API

  • Đánh dấu các API TV-Material công khai là Thử nghiệm. (I632e7)
  • Ra mắt TabRowScope để chia sẻ trạng thái từ thành phần kết hợp TabRow với thành phần kết hợp Thẻ và thuộc tính TabColors. (Ief587)

Phiên bản 1.0.0-alpha07

Ngày 7 tháng 6 năm 2023

Phát hành androidx.tv:tv-foundation:1.0.0-alpha07androidx.tv:tv-material:1.0.0-alpha07. Phiên bản 1.0.0-alpha07 bao gồm các thay đổi sau.

Các thay đổi về API

  • Trong số chỉ báo tỷ lệ của các thành phần hiện đã có None (Không có) để vô hiệu hoá việc điều chỉnh theo tỷ lệ. (I50df5)
  • Thêm tính năng hỗ trợ lượt nhấp kéo dài cho Bề mặt, Thẻ, và Nút của TV Material. (Id2b89)
  • CarouselItemCarouselScope đã bị xoá. Ảnh động nội dung nền trước có thể được sử dụng trong trang trình bày bằng cách sử dụng Modifier.animateEnterExit từ AnimatedContentScope. (Ic038e)
  • Hợp nhất tham số colorcontentColor trở thành colors cho Bề mặt TV Material. (Ie69eb)
  • Ra mắt thành phần kết hợp RadioButton trong TV Material. (I08690)
  • Ra mắt thành phần kết hợp Switch trong TV Material. (I45e29)
  • Ra mắt thành phần kết hợp Checkbox trong TV Material. (I6a45a)
  • Ra mắt Bề mặt không tương tác trong TV Material. (Ic5f85)
  • Điều chỉnh các chỉ báo thành nội bộ. (Ibff82)

Phiên bản 1.0.0-alpha06

Ngày 19 tháng 4 năm 2023

Phát hành androidx.tv:tv-foundation:1.0.0-alpha06androidx.tv:tv-material:1.0.0-alpha06. Phiên bản 1.0.0-alpha06 bao gồm các thay đổi sau.

Tính năng mới

  • Thêm phương thức triển khai Thẻ Material 3 được tối ưu hoá cho TV.
    • Thẻ cơ bản (I5b701)
    • ClassicCard, CompactCardWideClassicCard (I70471)
    • StandardCardLayoutWideCardLayout (I33fae)
  • Thêm phương thức triển khai Nút Material 3 được tối ưu hoá cho TV.

Các thay đổi về API

  • Đổi tên CarouselSlideslideCount trong Carousel thành CarouselItemitemCount. (Ie554c)
  • Đổi tên forwardbackward ContentTransforms thành StartToEndEndToStart. (Ie554c)

Sửa lỗi

  • Xử lý nút Quay lại trên Bàn phím định hướng khi lấy tiêu điểm NavigationDrawer. (d654f4)

Phiên bản 1.0.0-alpha05

Ngày 22 tháng 3 năm 2023

Phát hành androidx.tv:tv-foundation:1.0.0-alpha05androidx.tv:tv-material:1.0.0-alpha05. Phiên bản 1.0.0-alpha05 bao gồm các thay đổi sau.

Các thay đổi về API

  • Ra mắt thành phần kết hợp Ngăn điều hướng bên ở trong tv-material. Để tìm hiểu cách sử dụng thành phần kết hợp này, vui lòng tham khảo mẫu. (I12c08)
  • Ra mắt thành phần kết hợp Biểu tượng trong TV Material 3 (I72db9)
  • Ra mắt thành phần kết hợp Bề mặt cho tv-material với các chỉ báo như Đường viền, Độ sáng và Tỷ lệ, có thể được sử dụng để xây dựng các thành phần làm nổi bật rõ ràng phần tử được lấy tiêu điểm trên màn hình TV. (I4a6d8), (Iceea1), (Iee4d4), (I79edf), (Icb376)
  • Cập nhật CarouselItem thành CarouselSlide để phù hợp với tên tham số slideCount trong API "Băng chuyền" (Ic4299)

Phiên bản 1.0.0-alpha04

Ngày 8 tháng 2 năm 2023

Phát hành androidx.tv:tv-foundation:1.0.0-alpha04androidx.tv:tv-material:1.0.0-alpha04. Phiên bản 1.0.0-alpha04 bao gồm các thay đổi sau.

Tính năng mới

  • Trong các hàng, cột và lưới tải từng phần, pivot sẽ bị ghi đè (nếu cần) để đảm bảo toàn bộ mục được đưa vào khung hiển thị. (11d7e40)
  • Thêm chế độ tuỳ chỉnh màu thẻ ở các trạng thái khác nhau. (21b2925)
  • Băng chuyền hiện chấp nhận ảnh động tuỳ chỉnh để cuộn tiến và lùi theo cách thủ công. (431494a)

Các thay đổi về API

  • Đổi tên androidx.tv.material thành androidx.tv.material3 và làm phẳng cấu trúc gói trong androidx.tv.material3. (I6ca52)
  • Chỉ báo trong hàng Chỉ báo băng chuyền hiện là một vùng có thể được nhà phát triển tuỳ chỉnh. (268af2a)
  • Đổi tên focusableItem thành immersiveListItem. Người dùng sẽ phải thêm đối tượng sửa đổi focusable() hoặc clickable() theo cách thủ công cùng với immersiveListItem (5dd5078)(b/263061052)
  • Đổi tên timeToDisplayMillis thành autoScrollDurationMillis trong thành phần của Băng chuyền. (431494a)
  • CarouselItem đang bị hạn chế sử dụng trong Carousel. (431494a)
  • Băng chuyền hiện chấp nhận ContentTransforms làm định nghĩa ảnh động thay vì EnterTransitionExitTransitions. (431494a)
  • Giới thiệu API PinnableContainer được phân phát theo danh sách tải từng phần thông qua một thành phần cục bộ cho phép ghim mục hiện tại. (Ib8881, b/259274257, b/195049010)
  • Thêm thuộc tính mainAxisItemSpacing vào TvLazyListLayoutInfoTvLazyGridLayoutInfo (I37765)

Sửa lỗi

  • Cập nhật hàng thẻ nhằm đảm bảo hàng này xử lý chính xác số thẻ là 0 hoặc 1. (I44009), (1c01525), (b/264018028)
  • Khắc phục sự cố tìm kiếm theo tâm điểm khi TvLazyColumn chứa TvLazyRow rỗng. (e11b4fe), (b/260299091)
  • Đối tượng sửa đổi clickable hiện tương thích với ImmersiveList. (5dd5078), (b/263061052)
  • Phím Quay lại hiện được xử lý và dùng để thoát khỏi Băng chuyền nổi bật. (84c138c)
  • Băng chuyền không làm mất tâm điểm trên nhiều lần nhấn phím nhanh. (799489f)
  • Băng chuyền không làm mất tâm điểm trên lần nhấn giữ phím. (b2cf37e)
  • Giải quyết các sự cố khi thay đổi số lượng trang trình bày trong băng chuyền. (b261247)

Phiên bản 1.0.0-alpha03

Ngày 7 tháng 12 năm 2022

Phát hành androidx.tv:tv-foundation:1.0.0-alpha03androidx.tv:tv-material:1.0.0-alpha03. Phiên bản 1.0.0-alpha03 bao gồm các thay đổi sau.

Tính năng mới

  • TabRow hiện được cung cấp dưới dạng một API thử nghiệm cho phép người dùng thêm các thanh điều hướng trên cùng vào ứng dụng của họ. Nhìn chung, các thiết bị TV yêu cầu tải thẻ khi tiêu đề thẻ được lấy tiêu điểm trong hàng thẻ.
  • Chỉ báo cụ thể cho TV như chỉ báo gạch chân và chỉ báo hình bầu dục được cung cấp sẵn. Bạn có thể xem cách sử dụng mẫu trong tv-samples

Phiên bản 1.0.0-alpha02

Ngày 9 tháng 11 năm 2022

Phát hành androidx.tv:tv-foundation:1.0.0-alpha02androidx.tv:tv-material:1.0.0-alpha02. Phiên bản 1.0.0-alpha02 bao gồm các thay đổi sau.

Sửa lỗi

  • Cải thiện hiệu suất cuộn khi cuộn qua một tập hợp TvLazyRows/TvLazyColumns bằng cách giảm không gian tìm kiếm tâm điểm. (I723a3)

Phiên bản 1.0.0-alpha01

Ngày 5 tháng 10 năm 2022

Phát hành androidx.tv:tv-foundation:1.0.0-alpha01androidx.tv:tv-material:1.0.0-alpha01. Phiên bản 1.0.0-alpha01 bao gồm các thay đổi sau.

Tính năng mới

Phiên bản alpha đầu tiên bao gồm những phương thức triển khai xem trước sớm cho các thành phần trong trường hợp sử dụng của TV, bao gồm:

  • Thêm đối tượng sửa đổi scrollableWithPivot để cho phép các vùng chứa cuộn không tải từng phần như Hàng, Cột, Lưới có vùng chứa cuộn cuộn nội dung sao cho các mục là tâm điểm ở cùng một vị trí trên màn hình TV.
  • Thêm các thành phần kết hợp TvLazyRow,TvLazyColumn, TvLazyHorizontalGrid, TvLazyVerticalGrid để vùng chứa cuộn di chuyển nội dung sao cho các mục là tâm điểm vẫn ở cùng một vị trí trên màn hình TV.
  • Thêm thành phần kết hợp Băng chuyền nổi bật (Featured Carousel) cho TV, cho phép người dùng tạo băng chuyền biểu ngữ cuộn tự động.
  • Thêm thành phần kết hợp Danh sách sống động (Immersive List) cho TV, cho phép người dùng tạo Hàng/Cột/Lưới sống động để thay đổi nền dựa trên các mục trong danh sách là tâm điểm.

Vấn đề đã biết

  • Khi vùng chứa cuộn trở thành tâm điểm, theo mặc định, phần tử đầu tiên thường không được làm tâm điểm.
  • Tâm điểm tại TextField không phải lúc nào cũng mở bàn phím nhập hoặc có thể ngăn tâm điểm di chuyển đến các trường khác.
  • Thao tác cuộn theo chiều dọc kém hiệu quả trong LazyColumn chứa LazyRows.