Tiện ích là một phần thiết yếu của hoạt động tuỳ chỉnh màn hình chính. Bạn có thể coi đây là chế độ xem "nhanh" đối với những dữ liệu và chức năng quan trọng nhất của ứng dụng mà người dùng có thể truy cập ngay trên màn hình chính. Người dùng có thể di chuyển tiện ích trên bảng điều khiển màn hình chính và đổi kích thước (nếu được hỗ trợ) để điều chỉnh lượng thông tin trong tiện ích theo ý muốn.
Tài liệu này giới thiệu các loại tiện ích mà bạn có thể tạo và các nguyên tắc thiết kế cần tuân theo. Để tạo một tiện ích ứng dụng bằng API Xoá khung hiển thị và bố cục XML, hãy xem phần Tạo tiện ích đơn giản. Để xây dựng tiện ích bằng API kiểu Kotlin và Compose, hãy xem Jetpack Glance.
Các loại tiện ích
Khi bạn lên kế hoạch cho tiện ích, hãy nghĩ về loại tiện ích bạn muốn tạo. Các tiện ích thường thuộc một trong các danh mục sau:
Tiện ích thông tin
![Ví dụ về tiện ích thời tiết cho thấy Tokyo nhiều mây, nhiệt độ 14 độ và nhiệt độ dự kiến bắt đầu từ 4 giờ chiều đến 7 giờ tối](https://developer.android.google.cn/static/images/appwidgets/weather-size-5x2.png?authuser=9&hl=vi)
Các tiện ích thông tin thường hiển thị các phần tử thông tin quan trọng và theo dõi cách thông tin đó thay đổi theo thời gian. Ví dụ về tiện ích thông tin là tiện ích thời tiết, tiện ích đồng hồ hoặc tiện ích theo dõi điểm số thể thao. Thao tác nhấn vào các tiện ích thông tin thường sẽ chạy ứng dụng được liên kết và mở ra chế độ xem chi tiết của thông tin tiện ích đó.
Tiện ích Bộ sưu tập
Các tiện ích "bộ sưu tập" chuyên hiển thị nhiều phần tử thuộc cùng một loại, chẳng hạn như bộ sưu tập ảnh trong ứng dụng thư viện, bộ sưu tập bài viết của một ứng dụng tin tức hoặc bộ sưu tập email/tin nhắn của ứng dụng giao tiếp. Các tiện ích thu thập có thể cuộn theo chiều dọc.
Tiện ích thu thập thường tập trung vào các trường hợp sử dụng sau:
- Duyệt qua bộ sưu tập.
- Mở một phần tử của bộ sưu tập ở chế độ xem chi tiết của bộ sưu tập đó trong ứng dụng liên kết.
- Tương tác với các phần tử, chẳng hạn như đánh dấu các phần tử đó là đã xong – với sự hỗ trợ cho các nút kết hợp trong Android 12 (API cấp 31).
Điều khiển tiện ích
![Một tiện ích của ứng dụng có tên "Danh sách đèn", cho thấy các công tắc bật/tắt có nhãn "Phòng ngủ", "Bếp" và "Phòng khách", trong đó 2 công tắc đầu tiên đang tắt](https://developer.android.google.cn/static/images/appwidgets/light-list.png?authuser=9&hl=vi)
Mục đích chính của tiện ích điều khiển là hiển thị các chức năng thường dùng để người dùng có thể kích hoạt các chức năng đó từ màn hình chính mà không cần phải mở ứng dụng. Bạn có thể coi chúng là điều khiển từ xa cho một ứng dụng. Ví dụ về tiện ích điều khiển là tiện ích điều khiển nhà cho phép người dùng bật hoặc tắt đèn trong nhà.
Khi tương tác với một tiện ích điều khiển, bạn có thể mở một khung hiển thị chi tiết được liên kết trong ứng dụng. Điều này phụ thuộc vào việc hàm của tiện ích điều khiển có tạo ra dữ liệu hay không, chẳng hạn như trong trường hợp tiện ích tìm kiếm.
Tiện ích kết hợp
![Một ứng dụng nhạc chung hiện các nút "không thích", quay lại, phát/tạm dừng, tiến và "thích". Nghệ sĩ và bản nhạc sẽ lần lượt được liệt kê là "Nghệ sĩ" và "Nhạc mẫu".](https://developer.android.google.cn/static/images/appwidgets/music.png?authuser=9&hl=vi)
Mặc dù một số tiện ích đại diện cho một trong các loại trong các phần trước (thông tin, bộ sưu tập hoặc thành phần điều khiển), nhưng nhiều tiện ích là chế độ kết hợp kết hợp các phần tử thuộc nhiều kiểu. Ví dụ: tiện ích trình phát nhạc chủ yếu là một tiện ích điều khiển, nhưng cũng cho người dùng biết bản nhạc nào đang phát, chẳng hạn như tiện ích thông tin.
Khi lên kế hoạch cho tiện ích, hãy thiết kế xung quanh một trong các loại cơ sở và thêm phần tử thuộc các loại khác nếu cần.
Tích hợp tiện ích với Trợ lý Google
Trợ lý Google có thể hiển thị bất kỳ loại tiện ích nào để phản hồi lệnh thoại của người dùng. Bạn có thể định cấu hình các tiện ích để thực hiện Hành động trong ứng dụng, cho phép người dùng nhận được câu trả lời nhanh và trải nghiệm tương tác với ứng dụng trên các nền tảng của Trợ lý như Android và Android Auto. Để biết thêm thông tin chi tiết về phương thức thực hiện tiện ích cho Trợ lý, hãy xem phần Tích hợp Hành động trong ứng dụng với các tiện ích Android.
Giới hạn về tiện ích
Mặc dù tiện ích có thể được hiểu là "ứng dụng nhỏ", nhưng bạn cần nắm được một số giới hạn nhất định trước khi thiết kế tiện ích.
Cử chỉ
Vì các tiện ích nằm trên màn hình chính, nên chúng phải cùng tồn tại với trình điều hướng được thiết lập tại đó. Điều này giới hạn khả năng hỗ trợ cử chỉ trong một tiện ích so với ứng dụng toàn màn hình. Mặc dù các ứng dụng có thể cho phép người dùng di chuyển giữa các màn hình theo chiều ngang, nhưng cử chỉ đó đã được thực hiện trên màn hình chính để phục vụ cho mục đích di chuyển giữa các màn hình chính.
Các cử chỉ duy nhất có sẵn cho tiện ích là chạm và vuốt dọc.
Nhân tố
Do các giới hạn về cử chỉ có sẵn cho tiện ích, một số thành phần giao diện người dùng dựa vào cử chỉ bị hạn chế không dùng được cho các tiện ích. Để xem danh sách đầy đủ các thành phần được hỗ trợ và thông tin khác về các hạn chế về bố cục, hãy xem phần Tạo bố cục tiện ích và Cung cấp bố cục tiện ích linh hoạt.
Hướng dẫn thiết kế
Nội dung của tiện ích
Tiện ích là một cách tuyệt vời để thu hút người dùng đến ứng dụng của bạn bằng cách "quảng cáo" nội dung mới và thú vị có sẵn trong ứng dụng.
Giống như đoạn giới thiệu trên trang chủ của một tờ báo, các tiện ích hợp nhất và tập trung thông tin của ứng dụng, đồng thời kết nối với thông tin phong phú hơn trong ứng dụng. Bạn có thể nói tiện ích là thông tin "bữa ăn nhẹ" trong khi ứng dụng là "bữa ăn". Hãy đảm bảo ứng dụng của bạn hiển thị nhiều chi tiết hơn về một mục thông tin so với nội dung mà tiện ích hiển thị.
Điều hướng tiện ích
Ngoài nội dung thông tin thuần tuý, hãy cân nhắc việc tạo tiện ích cung cấp đường liên kết điều hướng đến các khu vực thường dùng trong ứng dụng. Điều này giúp người dùng hoàn thành công việc nhanh hơn và mở rộng phạm vi tiếp cận chức năng của ứng dụng sang màn hình chính.
Các đề xuất phù hợp cho đường liên kết điều hướng trên tiện ích là:
Chức năng tạo sinh: đây là những chức năng cho phép người dùng tạo nội dung mới cho ứng dụng, chẳng hạn như tạo tài liệu mới hoặc thông báo mới.
Mở ứng dụng ở cấp cao nhất: nhấn vào một phần tử thông tin thường chuyển người dùng đến màn hình chi tiết cấp thấp hơn. Việc cung cấp quyền truy cập vào cấp cao nhất của ứng dụng sẽ mang lại khả năng điều hướng linh hoạt hơn và có thể thay thế lối tắt ứng dụng chuyên dụng mà người dùng sử dụng để điều hướng đến ứng dụng từ màn hình chính. Việc sử dụng biểu tượng ứng dụng cho chức năng này cũng có thể cung cấp cho tiện ích một danh tính rõ ràng nếu dữ liệu bạn đang hiển thị không rõ ràng.
Đổi kích thước tiện ích
![Tiện ích Đồng hồ tiêu chuẩn của Google](https://developer.android.google.cn/static/images/appwidgets/clock.png?authuser=9&hl=vi)
Thao tác chạm và giữ một tiện ích có thể đổi kích thước, sau đó thả ra sẽ đặt tiện ích đó vào chế độ đổi kích thước. Người dùng có thể sử dụng ô điều khiển kéo hoặc các góc của tiện ích để đặt kích thước ưu tiên.
Việc đổi kích thước cho phép người dùng điều chỉnh chiều cao và chiều rộng của tiện ích trong các giới hạn của lưới vị trí trên màn hình chính. Bạn có thể quyết định xem tiện ích của mình có thể tự do đổi kích thước hay bị hạn chế theo các thay đổi về kích thước theo chiều ngang hoặc chiều dọc hay không. Bạn không cần hỗ trợ đổi kích thước nếu tiện ích của bạn vốn có kích thước cố định.
Việc cho phép người dùng đổi kích thước tiện ích có các lợi ích quan trọng sau:
- Họ có thể tinh chỉnh lượng thông tin họ muốn xem trên mỗi tiện ích.
- Các chế độ này có thể tác động tốt hơn đến bố cục của các tiện ích và lối tắt trên bảng điều khiển trên màn hình chính.
Lập chiến lược đổi kích thước cho tiện ích theo loại tiện ích bạn đang tạo. Các tiện ích thu thập dựa trên danh sách hoặc lưới thường đơn giản, vì việc đổi kích thước tiện ích sẽ mở rộng hoặc thu gọn vùng cuộn dọc. Bất kể kích thước của tiện ích là bao nhiêu, người dùng vẫn có thể cuộn tất cả các phần tử thông tin vào khung hiển thị.
Các tiện ích thông tin đòi hỏi bạn phải thực hiện nhiều bước lập kế hoạch hơn vì chúng không thể cuộn được và mọi nội dung phải vừa với một kích thước nhất định. Bạn phải tự động điều chỉnh nội dung và bố cục của tiện ích theo kích thước mà người dùng xác định thông qua thao tác đổi kích thước.
Trong ví dụ sau đây, người dùng có thể đổi kích thước tiện ích thời tiết trong 3 bước, hiển thị thông tin phong phú hơn về thời tiết ở vị trí hiện tại khi tiện ích phát triển.
![Ví dụ về tiện ích thời tiết ở kích thước lưới nhỏ nhất là 3x2 và liệt kê tên vị trí (Tokyo), nhiệt độ (14°) và biểu tượng cho biết thời tiết nhiều mây một phần](https://developer.android.google.cn/static/images/appwidgets/weather-size-3x2.png?authuser=9&hl=vi)
![Ví dụ về tiện ích thời tiết có kích thước "trung bình" 5x2, bao gồm tất cả giao diện người dùng từ kích thước lưới 3x2 cùng với nhãn "hầu như nhiều mây" và
nhiệt độ dự báo từ 4 giờ chiều đến 7 giờ tối](https://developer.android.google.cn/static/images/appwidgets/weather-size-5x2.png?authuser=9&hl=vi)
![Ví dụ về tiện ích thời tiết có kích thước "lớn" 5x4, bao gồm tất cả giao diện người dùng có kích thước lưới 3x2 và 5x2 cùng với thông tin dự báo thời tiết từ thứ Ba đến thứ Sáu](https://developer.android.google.cn/static/images/appwidgets/weather-size-5x4.png?authuser=9&hl=vi)
Đối với mỗi kích thước tiện ích, hãy xác định lượng thông tin ứng dụng hiển thị. Đối với các kích thước nhỏ hơn, hãy tập trung vào thông tin cần thiết, sau đó thêm thông tin theo bối cảnh khi tiện ích này phát triển theo chiều ngang và chiều dọc.
Những điều cần cân nhắc về bố cục
Bạn nên bố trí các tiện ích theo kích thước của lưới vị trí trên thiết bị mà bạn dùng để phát triển. Đây có thể là số liệu ước tính ban đầu hữu ích, nhưng hãy lưu ý những điểm sau:
- Việc lập chiến lược đổi kích thước tiện ích trên "nhóm kích thước" thay vì phương diện lưới biến sẽ mang lại cho bạn kết quả đáng tin cậy nhất.
- Số lượng, kích thước và khoảng cách của các ô có thể khác nhau nhiều giữa các thiết bị. Do đó, điều quan trọng là tiện ích của bạn phải linh hoạt và có thể chứa nhiều hoặc ít dung lượng hơn dự kiến.
- Khi người dùng đổi kích thước một tiện ích, hệ thống sẽ phản hồi bằng phạm vi kích thước dp mà tiện ích của bạn có thể tự vẽ lại.
- Kể từ Android 12, bạn có thể cung cấp thêm các thuộc tính kích thước được tinh chỉnh và bố cục linh hoạt hơn. Trong đó có:
- Chỉ định các quy tắc ràng buộc đối với kích thước tiện ích. Ví dụ: bạn có thể chỉ định kích thước mục tiêu cho tiện ích (trong các ô lưới) cũng như kích thước tối đa có thể.
- Cung cấp bố cục thích ứng. Bố cục này sẽ thay đổi tuỳ theo kích thước của tiện ích.
- Cung cấp bố cục có kích thước chính xác, cho phép trình chạy phản hồi các lựa chọn kích thước cho chế độ dọc và ngang, cho điện thoại hoặc 4 kích thước cho thiết bị có thể gập lại.
- Sử dụng hướng dẫn cập nhật và API mới để xác định kích thước phù hợp cho tiện ích của bạn.
Cấu hình tiện ích theo người dùng
Đôi khi, người dùng cần thiết lập tiện ích thì tiện ích mới có thể sử dụng được. Hãy nghĩ đến một tiện ích email mà người dùng cần chọn thư mục thư trước khi hộp thư đến có thể hiển thị hoặc một tiện ích ảnh tĩnh để người dùng phải gán hình ảnh từ thư viện để hiển thị. Các tiện ích Android sẽ hiển thị các lựa chọn về cấu hình ngay sau khi người dùng thả tiện ích đó vào màn hình chính.
Danh sách kiểm tra thiết kế tiện ích
- Tập trung vào các phần nhỏ của thông tin có thể xem nhanh trên tiện ích của bạn. Hãy mở rộng thông tin trong ứng dụng của bạn.
- Chọn loại tiện ích phù hợp với mục đích của bạn.
- Lập kế hoạch cách nội dung cho tiện ích của bạn thích ứng với các kích thước khác nhau.
- Tạo bố cục tiện ích độc lập với hướng và thiết bị bằng cách đảm bảo bố cục có thể kéo giãn và thu gọn.
- Cân nhắc xem tiện ích của bạn có cần bất kỳ cấu hình bổ sung nào hay không.