Android 12 (API cấp 31) cải tiến Widgets API hiện có để cải thiện trải nghiệm người dùng và nhà phát triển trong nền tảng và trình chạy. Hãy sử dụng hướng dẫn này để tìm hiểu cách đảm bảo tiện ích của bạn tương thích với Android 12, đồng thời làm tài liệu tham khảo cho các API để làm mới tiện ích hiện có.
Đảm bảo tiện ích của bạn tương thích với Android 12
Các tiện ích trong Android 12 có góc bo tròn. Khi một tiện ích ứng dụng được sử dụng trên thiết bị chạy Android 12 trở lên, trình chạy sẽ tự động xác định nền của tiện ích và cắt bớt để có các góc bo tròn.
Trong trường hợp này, tiện ích của bạn có thể không hiển thị đúng cách trong một trong các điều kiện sau:
Tiện ích chứa nội dung ở các góc: Điều này có thể khiến một số nội dung ở khu vực góc bị cắt bớt.
Tiện ích sử dụng nền không dễ bị cắt bớt. Điều này bao gồm nền trong suốt, thành phần hiển thị hoặc bố cục trống hoặc bất kỳ loại nền đặc biệt nào khác không dễ bị cắt bớt. Hệ thống có thể không xác định chính xác nền cần sử dụng.
Nếu thay đổi này ảnh hưởng đến tiện ích của bạn, bạn nên làm mới tiện ích đó bằng các góc bo tròn (như mô tả trong phần sau) để đảm bảo tiện ích hiển thị đúng cách.
Sử dụng mẫu
Để xem tất cả các API này đang hoạt động, hãy xem tiện ích danh sách mẫu của chúng tôi.
Triển khai góc bo tròn
Android 12 ra mắt các tham số hệ thống system_app_widget_background_radius
và system_app_widget_inner_radius
để đặt bán kính của các góc bo tròn của tiện ích.
1 Góc của tiện ích.
2 Góc của thành phần hiển thị bên trong tiện ích.
Để biết thông tin chi tiết, hãy xem phần Triển khai góc bo tròn.
Thêm giao diện cho thiết bị
Kể từ Android 12, tiện ích có thể sử dụng màu giao diện thiết bị cho các nút, nền và các thành phần khác, bao gồm cả giao diện sáng và tối. Điều này giúp chuyển đổi mượt mà hơn và nhất quán trên các tiện ích khác nhau.
Hãy xem phần Thêm giao diện cho thiết bị để biết thêm thông tin.
Dễ dàng cá nhân hoá tiện ích hơn
Nếu bạn chỉ định một hoạt động định cấu hình bằng thuộc tính configure
của appwidget-provider
, thì máy chủ Tiện ích ứng dụng sẽ chạy hoạt động đó ngay sau khi người dùng thêm tiện ích vào màn hình chính.
Android 12 bổ sung các tuỳ chọn mới để giúp bạn mang đến trải nghiệm cấu hình tốt hơn cho người dùng. Hãy xem phần Cho phép người dùng định cấu hình tiện ích để biết thông tin chi tiết.
Thêm nút phức hợp mới
Android 12 bổ sung tính năng hỗ trợ mới cho hành vi có trạng thái bằng cách sử dụng các thành phần hiện có sau:
Tiện ích vẫn không có trạng thái. Ứng dụng của bạn phải lưu trữ trạng thái và đăng ký các sự kiện thay đổi trạng thái.
Để biết thông tin chi tiết, hãy xem phần Hỗ trợ hành vi có trạng thái.
Sử dụng các API cải tiến cho kích thước và bố cục tiện ích
Kể từ Android 12, bạn có thể tận dụng các thuộc tính kích thước tinh tế hơn và bố cục linh hoạt hơn bằng cách chỉ định các quy tắc ràng buộc kích thước tiện ích bổ sung, cũng như cung cấp bố cục thích ứng và bố cục chính xác.
Hãy xem phần Cung cấp bố cục tiện ích linh hoạt để biết thông tin chi tiết.
Cải thiện trải nghiệm bộ chọn tiện ích của ứng dụng
Android 12 cho phép bạn cải thiện trải nghiệm bộ chọn tiện ích cho ứng dụng bằng cách thêm bản xem trước tiện ích động và nội dung mô tả tiện ích. Để biết thông tin chi tiết, hãy xem phần Thêm bản xem trước tiện ích có thể mở rộng vào bộ chọn tiện ích và Thêm nội dung mô tả cho tiện ích.
Cho phép chuyển đổi mượt mà hơn
Kể từ Android 12, trình chạy sẽ cung cấp quá trình chuyển đổi mượt mà hơn khi người dùng chạy ứng dụng của bạn từ một tiện ích. Hãy xem phần Bật hiệu ứng chuyển đổi mượt mà hơn để biết thông tin chi tiết.
Sử dụng các bộ sưu tập RemoteViews
được đơn giản hoá
Android 12 thêm phương thức setRemoteAdapter(int viewId, RemoteViews.RemoteCollectionItems items)
, cho phép ứng dụng của bạn truyền trực tiếp một bộ sưu tập khi điền sẵn ListView
. Trước đây, khi sử dụng ListView
, bạn cần triển khai và khai báo RemoteViewsService
để trả về RemoteViewsFactory
.
Để biết thông tin chi tiết, hãy xem phần Sử dụng bộ sưu tập RemoteViews
.
Sử dụng tính năng sửa đổi thời gian chạy của RemoteViews
Android 12 thêm một số phương thức RemoteViews
cho phép sửa đổi thuộc tính RemoteViews
trong thời gian chạy. Hãy xem tài liệu tham khảo API RemoteViews
để biết danh sách đầy đủ các phương thức đã thêm.
Để biết thông tin chi tiết, hãy xem phần Sử dụng tính năng sửa đổi thời gian chạy của RemoteViews
.