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 tham khảo 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 tham khảo 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 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 nền đó để 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 hai đ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 ở vùng góc bị cắt.
Tiện ích này sử dụng một nền không bị cắt xén. Điều này bao gồm nền trong suốt, các khung 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. Hệ thống có thể không xác định được chính xác nền cần dùng.
Nếu tiện ích của bạn sẽ chịu ảnh hưởng của thay đổi này, thì 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 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 giới thiệu các tham số hệ thống system_app_widget_background_radius
và system_app_widget_inner_radius
để đặt bán kính cho 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 một khung 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 các góc bo tròn.
Thêm giao diện cho thiết bị
Kể từ Android 12, một tiện ích có thể sử dụng màu giao diện của 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 các hiệu ứng chuyển đổi mượt mà và nhất quán trên nhiều tiện ích.
Hãy xem phần Thêm tính năng tạo giao diện cho thiết bị để biết thêm thông tin.


Giúp 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 lựa chọn mới để bạn có thể mang đến trải nghiệm cấu hình tốt hơn cho người dùng. Hãy xem bài viết 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 các nút kết 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 đây:
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 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 ràng buộc bổ sung về kích thước của tiện ích và bằng cách 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 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 của bộ chọn tiện ích cho ứng dụng bằng cách thêm nội dung mô tả tiện ích và bản xem trước tiện ích động. Để 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.
Bật chế độ chuyển đổi mượt mà hơn
Kể từ Android 12, trình chạy sẽ mang đến một hiệu ứng 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 tập hợp RemoteViews
đơn giản
Android 12 thêm phương thức setRemoteAdapter(int viewId, RemoteViews.RemoteCollectionItems items)
. Phương thức này cho phép ứng dụng của bạn truyền trực tiếp một tập hợ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 bài viết Sử dụng bộ sưu tập RemoteViews
.
Sử dụng chế độ sửa đổi thời gian chạy của RemoteViews
Android 12 bổ sung một số phương thức RemoteViews
cho phép sửa đổi các thuộc tính RemoteViews
trong thời gian chạy. Hãy xem tài liệu tham khảo về 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 chế độ sửa đổi thời gian chạy của RemoteViews
.