Tin tức về sản phẩm

Jetpack WindowManager 1.5 đã ổn định

Thời gian đọc: 2 phút
Xem hồ sơ của Francesco Romano
Francesco Romano Kỹ sư quan hệ nhà phát triển, Android

Chúng tôi rất vui mừng thông báo rằng Jetpack WindowManager 1.5.0 hiện đã ổn định!

Bản phát hành này được xây dựng dựa trên nền tảng vững chắc về khả năng thích ứng trong WindowManager, giúp bạn dễ dàng tạo giao diện người dùng thích ứng, tinh tế và đẹp mắt trên mọi kích thước màn hình. Khi hệ sinh thái Android tiếp tục phát triển, người dùng sẽ tương tác với các ứng dụng trên nhiều loại thiết bị hơn bao giờ hết: từ điện thoại và thiết bị có thể gập lại cho đến máy tính bảng, màn hình kết nối, Chromebook và thậm chí cả màn hình ô tô ở chế độ đỗ xe.

WindowManager 1.5 tập trung vào việc cung cấp các công cụ hiệu quả hơn cho môi trường thiết bị đa dạng này.

Tính năng mới trong WindowManager 1.5

Bản phát hành ổn định này giới thiệu các điểm ngắt mới cho màn hình rất lớn, cải thiện API nhúng hoạt động và mang lại sự linh hoạt hơn khi tính toán chỉ số cửa sổ.

Các lớp kích thước cửa sổ mới: Lớn và Rất lớn

Nội dung cập nhật lớn nhất trong phiên bản 1.5 là việc bổ sung hai lớp kích thước cửa sổ chiều rộng mới: Lớn và Rất lớn.

Lớp kích thước cửa sổ là tập hợp các điểm ngắt khung nhìn chính thức, có quy cách bắt buộc, giúp bạn thiết kế và phát triển bố cục thích ứng. Với phiên bản 1.5, chúng tôi sẽ mở rộng hướng dẫn này cho những màn hình lớn hơn máy tính bảng thông thường.

Sau đây là các điểm ngắt chiều rộng mới:

  • Lớn: Đối với chiều rộng từ 1200dp đến 1600dp
  • Rất lớn: Đối với chiều rộng ≥1600dp
window_size_classes_width.png

Các lớp kích thước cửa sổ khác nhau dựa trên chiều rộng màn hình. 

Tại sao những điều này lại quan trọng?

Kể từ Android 16 QPR1 Beta 2, Android hỗ trợ màn hình được kết nối, cho phép người dùng gắn màn hình ngoài vào thiết bị và biến thiết bị đó thành một công cụ giống như máy tính có màn hình lớn.

ADB_5350_asset.gif

Điện thoại kết nối với màn hình ngoài, có một phiên máy tính trên màn hình ngoài. 

Khi tính năng mới này ra mắt, hướng dẫn cụ thể về việc hỗ trợ màn hình lớn hơn là rất quan trọng. 

Trên những nền tảng rất lớn này, việc chỉ tăng kích thước bố cục Mở rộng của máy tính bảng không phải lúc nào cũng mang lại trải nghiệm tốt nhất cho người dùng. Ví dụ: ứng dụng email có thể hiển thị thoải mái hai ngăn (hộp thư và thư) trong lớp kích thước cửa sổ Mở rộng. Nhưng trên màn hình máy tính Cực lớn, ứng dụng email có thể hiển thị ba hoặc thậm chí bốn ngăn một cách tinh tế, có thể là hộp thư, danh sách thư, toàn bộ nội dung thư và bảng điều khiển lịch/việc cần làm, tất cả cùng một lúc.

Bằng cách cung cấp các điểm ngắt chính thức cho kích thước màn hình rất lớn, WindowManager 1.5 cung cấp cho bạn tín hiệu rõ ràng để giới thiệu các bố cục được thiết kế riêng cho trải nghiệm hiệu quả, nhiều thông tin trên máy tính.

Bạn có thể tính toán các lớp kích thước cửa sổ bằng cách sử dụng computeWindowSizeClass(), đây là một hàm mở rộng thư viện androidx.window.core.layout giúp mở rộng loại Set<WindowSizeClass>. 

Để đưa các lớp kích thước cửa sổ mới vào dự án, bạn chỉ cần gọi hàm từ tập hợp WindowSizeClass.BREAKPOINTS_V2 thay vì WindowSizeClass.BREAKPOINTS_V1:

val currentWindowMetrics =

    WindowMetricsCalculator.getOrCreate()

    .computeCurrentWindowMetrics(LocalContext.current)


val sizeClass = WindowSizeClass.BREAKPOINTS_V2

    .computeWindowSizeClass(currentWindowMetrics)


Sau đó, hãy áp dụng bố cục chính xác khi bạn chắc chắn rằng ứng dụng của mình có ít nhất không gian đó:

if(sizeClass.isWidthAtLeastBreakpoint(

    WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){

    ...

    // window is at least 1200 dp wide


}

Thư viện thích ứng

Thư viện thích ứng Material 3 của Compose giúp bạn tạo giao diện người dùng thích ứng. Các giao diện này sẽ tự động điều chỉnh theo cấu hình cửa sổ hiện tại, chẳng hạn như các lớp kích thước cửa sổ hoặc tư thế thiết bị. 

Tin vui là thư viện đã được cập nhật các điểm ngắt mới! Kể từ phiên bản 1.2 (hiện đang ở giai đoạn Bản phát hành dùng thử), các hàm chỉ thị scaffold ngăn mặc định sẽ hỗ trợ các lớp kích thước chiều rộng cửa sổ Lớn và Rất lớn.

Bạn chỉ cần chọn sử dụng bằng cách khai báo trong tệp bản dựng Gradle rằng bạn muốn sử dụng các điểm ngắt mới:

currentWindowAdaptiveInfo(

    supportLargeAndXLargeWidth = true)

Các điểm cải tiến khác

  • Nhúng hoạt động – tự động lưu và khôi phục: WindowManager hiện có thể tự động lưu và khôi phục trạng thái của các phần phân tách nhúng hoạt động. Điều này giúp duy trì bố cục của người dùng trong quá trình tạo lại quy trình, mang lại trải nghiệm ổn định và nhất quán hơn. Nhà phát triển không còn phải lưu và khôi phục trạng thái theo cách thủ công nữa, mà chỉ cần chọn lưu tự động bằng cách đặt thuộc tính EmbeddingConfiguration#isAutoSaveEmbeddingState.
  • WindowMetrics mở rộng: Giờ đây, bạn có thể tính toán WindowMetrics từ Ngữ cảnh ứng dụng, không chỉ Ngữ cảnh hoạt động. Điều này giúp bạn linh hoạt hơn trong việc truy cập thông tin cửa sổ từ nhiều phần của ứng dụng.

Cách bắt đầu

Để bắt đầu sử dụng các lớp kích thước Lớn và Rất lớn mới cũng như các tính năng khác của phiên bản 1.5 trong dự án Android, hãy cập nhật các phần phụ thuộc của ứng dụng trong build.gradle.kts lên phiên bản ổn định mới nhất:

dependencies {
    implementation("androidx.window:window:1.5.0") 

    // or, if you're using the WindowManager testing library:

    testImplementation("androidx.window:window-testing:1.5.0")

}

WindowManager 1.5 là một bước tiến khác trong việc tạo ứng dụng thích ứng hoàn toàn chạy trên các kiểu dáng Android. Hãy xem ghi chú phát hành chính thức để biết danh sách đầy đủ các thay đổi và bản sửa lỗi.

Chúc bạn lập trình vui vẻ!

Tác giả:
Tiếp tục đọc