Tiện ích là một khía cạnh thiết yếu của việc tuỳ chỉnh màn hình chính. Bạn có thể coi chúng là chế độ xem "tóm tắt" 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 các tiện ích giữa các bảng điều khiển trê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 cách sử dụng API Khung hiển thị từ xa và bố cục XML, hãy xem phần Tạo một tiện ích đơn giản. Để tạo một tiện ích bằng Kotlin và các API theo kiểu Compose, hãy xem Jetpack Glance.
Các loại tiện ích
Khi lên kế hoạch cho tiện ích, hãy nghĩ về loại tiện ích mà 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

Các tiện ích thông tin thường hiển thị những 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. Khi nhấn vào các tiện ích thông tin, ứng dụng liên kết thường sẽ khởi chạy và mở chế độ xem chi tiết về thông tin tiện ích.
Tiện ích bộ sưu tập
Tiện ích tập hợp chuyên hiển thị nhiều phần tử thuộc cùng một loại, chẳng hạn như một tập hợp hình ảnh trong ứng dụng thư viện, một tập hợp bài viết trong ứng dụng tin tức hoặc một tập hợp email hoặc tin nhắn trong ứng dụng giao tiếp. Tiện ích tập hợp có thể cuộn theo chiều dọc.
Các tiện ích bộ sưu tập thường tập trung vào những trường hợp sử dụng sau:
- Duyệt xem bộ sưu tập.
- Mở một phần tử của bộ sưu tập ở chế độ xem chi tiết trong ứng dụng được liên kết.
- Tương tác với các phần tử, chẳng hạn như đánh dấu là đã hoàn tất – có hỗ trợ các nút kết hợp trong Android 12 (API cấp 31).
Tiện ích điều khiển

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 đó trên màn hình chính mà không cần mở ứng dụng. Bạn có thể coi tiện ích điều khiển 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 thiết bị trong nhà, cho phép người dùng bật hoặc tắt đèn trong nhà.
Tương tác với một tiện ích điều khiển có thể mở một chế độ xem chi tiết được liên kết trong ứng dụng. Điều này phụ thuộc vào việc chức năng của tiện ích điều khiển có xuất ra dữ liệu nào 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ặc dù một số tiện ích đại diện cho một trong các loại trong phần trước (thông tin, bộ sưu tập hoặc chế độ kiểm soát), nhưng nhiều tiện ích là tiện ích kết hợp, kết hợp các phần tử của nhiều loại. 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 tiện ích này cũng cho người dùng biết bản nhạc đang phát, giống như một tiện ích thông tin.
Khi lên kế hoạch cho tiện ích, hãy thiết kế dựa trên một trong các loại cơ bản và thêm các phần tử thuộc những 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ị mọi loại tiện ích để phản hồi các 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 Thao tác với ứng dụng, cho phép người dùng nhận được câu trả lời nhanh và trải nghiệm ứng dụng mang tính tương tác 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ề việc thực hiện tiện ích cho Trợ lý, hãy xem bài viết Tích hợp Hành động trong ứng dụng với tiện ích Android.
Giới hạn của tiện ích
Mặc dù có thể hiểu tiện ích là "ứng dụng thu nhỏ", nhưng có một số hạn chế quan trọng mà bạn cần nắm rõ trước khi thiết kế tiện ích.
Cử chỉ
Vì 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 chế độ điều hướng được thiết lập ở đó. Điều này hạn chế khả năng hỗ trợ cử chỉ có trong một tiện ích so với một ứ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 dùng trên màn hình chính cho mục đích di chuyển giữa các màn hình chính.
Các thao tác duy nhất có sẵn cho tiện ích là chạm và vuốt dọc.
Thành phần
Do những hạn chế về cử chỉ có sẵn cho các tiện ích, nên một số khối giao diện người dùng dựa trên các cử chỉ bị hạn chế sẽ không có sẵn cho các tiện ích. Để biết danh sách đầy đủ về các khối xây dựng được hỗ trợ và thêm thông tin về các quy định 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 tiện ích
Tiện ích là một cách hiệu quả để thu hút người dùng đến với ứng dụng của bạn bằng cách "quảng cáo" nội dung mới và thú vị có trong ứng dụng.
Giống như các đoạn trích trên trang nhất 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 một ứng dụng, đồng thời cung cấp mối liên kết đến thông tin chi tiết hơn trong ứng dụng. Bạn có thể nói tiện ích là "đồ ăn nhẹ" thông tin, trong khi ứng dụng là "bữa ăn". Đảm bảo ứng dụng của bạn cho thấy thông tin chi tiết hơn về một mục thông tin so với những gì tiện ích hiển thị.
Thao tác đ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 các đường liên kết điều hướng đến những khu vực thường dùng của ứng dụng. Điều này giúp người dùng hoàn thành các tác vụ nhanh hơn và mở rộng phạm vi 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à:
Hàm tạo sinh: đây là những hàm cho phép người dùng tạo nội dung mới cho một ứng dụng, chẳng hạn như tạo một tài liệu mới hoặc một tin nhắn mới.
Mở ứng dụng ở cấp cao nhất: khi nhấn vào một phần tử thông tin, người dùng thường được chuyển đế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 đến sự linh hoạt hơn khi điều hướng và có thể thay thế một lối tắt chuyên dụng của ứng dụng mà người dùng thường dùng để chuyển đế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ể giúp tiện ích của bạn có 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

Khi bạn chạm và giữ một tiện ích có thể đổi kích thước rồi thả ra, tiện ích đó sẽ chuyển sang chế độ đổi kích thước. Người dùng có thể sử dụng các tay cầm kéo hoặc góc của tiện ích để đặt kích thước mà họ muốn.
Tính năng đổ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 một tiện ích trong các ràng buộc 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ể đổi kích thước tuỳ ý hay bị giới hạn ở các thay đổi về kích thước theo chiều ngang hoặc chiều dọc. Bạn không cần hỗ trợ thay đổ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 mang lại những lợi ích quan trọng sau:
- Họ có thể điều chỉnh lượng thông tin mà họ muốn xem trên mỗi tiện ích.
- Họ 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 chính.
Lập kế hoạch cho chiến lược đổi kích thước tiện ích theo loại tiện ích mà bạn đang tạo. Các tiện ích bộ sưu tập dựa trên danh sách hoặc lưới thường rất đơn giản, vì việc đổi kích thước tiện ích sẽ mở rộng hoặc thu hẹp vùng cuộn dọc. Bất kể kích thước của tiện ích, người dùng vẫn có thể cuộn tất cả các phần tử thông tin vào chế độ xem.
Các tiện ích thông tin đòi hỏi bạn phải lên kế hoạch kỹ lưỡng hơn vì chúng không thể cuộn và mọi nội dung đều phải nằm trong một kích thước nhất định. Bạn phải điều chỉnh linh hoạt 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, người dùng có thể đổi kích thước một tiện ích thời tiết theo 3 bước, cho thấy thông tin chi tiết hơn về thời tiết tại vị trí hiện tại khi tiện ích tăng kích thước.



Đối với mỗi kích thước tiện ích, hãy xác định lượng thông tin được hiển thị trong ứng dụng của bạn. Đố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 ngữ cảnh khi tiện ích tăng kích thước theo chiều ngang và chiều dọc.
Những điểm cần cân nhắc về bố cục
Bạn có thể muố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 phát triển. Đây có thể là một phép tính xấp xỉ ban đầu hữu ích, nhưng hãy lưu ý những điểm sau:
- Lập kế hoạch chiến lược đổi kích thước tiện ích trên các "nhóm kích thước" thay vì kích thước lưới biến đổi 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 giữa các ô có thể khác nhau rất nhiều giữa các thiết bị. Do đó, điều rất quan trọng là tiện ích của bạn phải linh hoạt và có thể điều chỉnh để phù hợp với không gian nhiều hơn hoặc ít 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 một dải kích thước dp mà tiện ích của bạn có thể vẽ lại.
- Kể từ Android 12, bạn có thể cung cấp các thuộc tính kích thước tinh tế hơn và bố cục linh hoạt hơn. Trong đó có:
- Chỉ định các ràng buộc về 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 của mình (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, 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 bằng các lựa chọn kích thước cho chế độ dọc và ngang, cho điện thoại hoặc bằng 4 kích thước cho thiết bị có thể gập lại.
- Sử dụng hướng dẫn mới và các API mới để xác định kích thước phù hợp cho tiện ích.
Người dùng định cấu hình tiện ích
Đôi khi, người dùng cần thiết lập tiện ích thì tiện ích mới có thể hữu ích. 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 mà người dùng phải chỉ định một bức ảnh trong thư viện để hiển thị. Tiện ích Android sẽ hiển thị các lựa chọn 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 những phần nhỏ của thông tin có thể xem nhanh trên tiện ích. 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 về cách nội dung cho tiện ích của bạn thích ứng với nhiều kích thước.
- Giúp bố cục tiện ích của bạn độc lập với hướng và thiết bị bằng cách đảm bảo bố cục có thể giãn và thu hẹp.
- Cân nhắc xem tiện ích của bạn có cần thêm cấu hình nào không.