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 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 ra 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 đang 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ụ tốt 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 các chỉ số về cửa sổ.
Các lớp kích thước cửa sổ mới: Lớn và Rất lớn
Bản cập nhật lớn nhất trong phiên bản 1.5 là việc bổ sung 2 lớp kích thước cửa sổ theo 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 chính thức gồm các điểm ngắt khung hiển thị được quy định sẵn 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ừ 1200 dp đến 1600 dp
- Rất lớn: Đối với chiều rộng ≥1600 dp
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 chỉ số 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ột màn hình ngoài vào thiết bị của họ 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.
Điện thoại kết nối với một màn hình ngoài, với một phiên làm việc 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ó ý kiến chủ quan về việc sử dụng màn hình lớn hơn là điều rất quan trọng.
Trên những màn hình rất lớn này, việc chỉ cần tăng tỷ lệ 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 người dùng tốt nhất. Ví dụ: ứng dụng email có thể hiển thị thoải mái 2 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ị một cách trang nhã 3 hoặc thậm chí 4 ngăn – có thể là hộp thư, danh sách thư, toàn bộ nội dung thư và ngă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 mang đến cho bạn một 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 máy tính có năng suất cao và nhiều thông tin.
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 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 phù hợp khi bạn chắc chắn rằng ứng dụng của mình có ít nhất khoảng trống đó:
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 này đã được cập nhật theo các điểm ngắt mới! Kể từ phiên bản 1.2 (hiện ở giai đoạn Release Candidate), các hàm chỉ thị scaffold ngăn mặc định 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: Giờ đây, WindowManager 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, mang đến trải nghiệm ổn định và nhất quán hơn. Nhà phát triển không cần 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 sử dụng tính năng 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, chứ không chỉ từ ngữ cảnh Hoạt động. Điều này giúp bạn linh hoạt hơn khi truy cập thông tin về cửa sổ từ các phần khác nhau trong ứ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 các 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 các ứng dụng hoàn toàn thích ứng chạy trên nhiều 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ẻ!
Tiếp tục đọc
-
Tin tức về sản phẩm
Chúng tôi rất vui mừng thông báo một cột mốc lớn trong việc kết hợp điện toán di động và máy tính trên Android: tính năng hỗ trợ màn hình kết nối đã đạt giai đoạn phát hành rộng rãi cùng với bản phát hành Android 16 QPR3!
Francesco Romano • Đọc trong 7 phút
-
Tin tức về sản phẩm
Giờ đây, việc kiểm thử các lượt tương tác trên nhiều thiết bị trở nên dễ dàng hơn bao giờ hết nhờ Trình mô phỏng Android.
Steven Jenkins • Đọc trong 2 phút
-
Tin tức về sản phẩm
Mỗi nhà phát triển đều có quy trình làm việc và nhu cầu riêng về AI. Do đó, bạn cần có thể chọn cách AI hỗ trợ quá trình phát triển của mình. Vào tháng 1, chúng tôi đã giới thiệu khả năng chọn bất kỳ mô hình AI cục bộ hoặc từ xa nào để hỗ trợ chức năng AI trong Android Studio
Matthew Warner • Đọc trong 2 phút
Nhận thông tin cập nhật
Nhận thông tin chi tiết mới nhất về hoạt động phát triển trên Android trong hộp thư đến của bạn mỗi tuần.