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 10 tháng 7 năm 2024 - 1.0.0-rc01 - -

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-alpha11"
    implementation "androidx.tv:tv-material:1.0.0-rc01"
}

Kotlin

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

Để 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-rc01

Ngày 10 tháng 7 năm 2024

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

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)
  • API Typography hiện đã ổn định (I088d6)
  • Shapes API 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)
  • API LocalTextStyles hiện đã ổn định (Iaded8)
  • API MaterialTheme 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 chuyển đổi hiện đã ổn định (I6cea3)
  • Các thành phần Checkbox hiện đã ổn định (I7eAAP)
  • Các thành phần trên nền tảng 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 đã ổn định (I249c1)
  • Thành phần NavigationDrawerItem hiện đã ổn định (Id6986)
  • Các thành phần Thẻ 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). Bạn có thể sử dụng Card thay cho CardContainerDefaults.ImageCard trong vùng chứa thẻ.
  • ListItemDenseListItem hiện đã ổ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 và đổi tên ListItemDefaults.ListItemElevation thành ListItemDefaults.TonalElevation (Id6841). Tham số headlineContent đã được chuyển lên đầu thành phần kết hợp. Trước đó, bạn có thể sử dụng cú pháp lambda theo sau của Kotlin để truyền headlineContent. Bây giờ, bạn sẽ phải sử dụng cú pháp tham số đã đặt tên để cung cấp headlineContent.
  • LocalAbsoluteTonalElevation hiện là nội bộ (Ibfc65)
  • Đã xoá thành phần ImmersiveList. Hãy xem mẫu này để tìm hiểu cách tự tạo ứng dụng. (Id48da)
  • Các thành phần tv-material hiển thị MutableInteractionSource trong API đã được cập nhật để hiện một MutableInteractionSource rỗng mặc định có giá trị 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 chuyển MutableInteractionSource lên trên và mã 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 và 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 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 mình. (I309b4, b/298048146)
  • Tham số TextAlign của thành phần Văn bản truyền hình 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)

Thay đổi về hành vi

  • Giá trị mặc định của tham số shape cho Surface không tương tác đã được thay đổi thành RectangleShape (I1b859cb)
  • Một số tính năng băng chuyền đã bị loại bỏ trong bản phát hành beta do các API cần thiết đang trong giai đoạn thử nghiệm (I0e755d4)
  • Việc thay đổi contentColor trong Surface không còn tạo ảnh động giữa các trạng thái (I436e794f)

Phiên bản 1.0.0

Phiên bản 1.0.0-alpha11

Ngày 10 tháng 7 năm 2024

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

Các thay đổi về API

  • Bố cục lazy TV đã ngừng hoạt động trong thư viện tv-foundation. Hãy tham khảo phiếu yêu cầu hỗ trợ này để tìm hiểu cách di chuyển khỏi bố cục lazy của TV. (I0855f, b/332674072)
  • PlatformImeOptions hiện là một lớp cụ thể thay vì giao diện. (If40a4)

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

  • Khắc phục 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 trình khôi phục tiêu điểm. (7b2a7a4)
  • Tắt chỉ báo ánh sáng cho API_LEVEL dưới 28 vì hệ điều hành không hỗ trợ chỉ báo này. (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 hướng 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ẽ phía trên nội dung nền thay vì phía sau. (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.