Android - Snackbar vs Toast - cách sử dụng và sự khác biệt


103

Cho đến nay, chúng tôi chỉ sử dụng Toasts trong ứng dụng của mình và vì chúng tôi đang có kế hoạch áp dụng một số tính năng mới từ Thư viện thiết kế hỗ trợ, tôi đang tự hỏi cách sử dụng được đề xuất cho Snackbar so với Toast là gì.

Tôi đã đọc trên google tài liệu về thanh snack.

Snackbars cung cấp phản hồi nhẹ nhàng về một thao tác trong một cửa sổ bật lên nhỏ ở cuối màn hình trên thiết bị di động và ở phía dưới bên trái trên máy tính để bàn. Chúng nằm trên tất cả các phần tử trên màn hình, bao gồm cả FAB.

và chúc rượu.

Android cũng cung cấp bánh mì nướng hình viên con nhộng, chủ yếu được sử dụng để nhắn tin hệ thống. Bánh mì nướng tương tự như quầy ăn nhanh nhưng không chứa hành động và không thể vuốt ra khỏi màn hình.

Tôi hiểu những gì họ làm nhưng tôi hơi bối rối khi sử dụng cái gì. Nó có nghĩa là:

  • Nếu tôi không yêu cầu tương tác của người dùng, tôi sẽ sử dụng bánh mì nướng?
  • "Hệ thống nhắn tin" có nghĩa là gì? Điều đó có áp dụng cho việc hiển thị thông tin khi có điều gì đó quan trọng xảy ra giữa ứng dụng của tôi và hệ thống Android không?
  • Những gì tôi thích là tính năng vuốt tắt màn hình - đó có phải là lý do để bắt đầu thay thế bánh mì nướng bằng các quán ăn nhẹ không? (đây là một câu hỏi dựa trên ý kiến ​​một chút)

Liên kết này không còn hoạt động. Có lẽ cái này nên được sử dụng material.io/guidelines/components/snackbars-toasts.html ?
Vadim Kotov

Câu trả lời:


109

Nếu tôi không yêu cầu tương tác của người dùng, tôi sẽ sử dụng bánh mì nướng?

Bạn vẫn có thể sử dụng Snackbar. Không bắt buộc phải có một hành động với Snackbar.

"Hệ thống nhắn tin" có nghĩa là gì? Điều đó có áp dụng cho việc hiển thị thông tin khi có điều gì đó quan trọng xảy ra giữa ứng dụng của tôi và hệ thống Android không?

Tôi tin rằng điều này có nghĩa là Toast sẽ được sử dụng nếu có một số thông báo liên quan đến hệ thống. Android nói chung hoặc một số dịch vụ nền mà bạn có thể đang chạy. Vd: Text-To-Speech is not installed.HOẶCNo Email client found.

Điều tôi thích là tính năng vuốt tắt màn hình - đó có phải là lý do để bắt đầu thay thế bánh mì nướng bằng Snackbar không? (đây là một câu hỏi dựa trên ý kiến ​​một chút)

Đó là một lý do. Nhưng có một số điểm cộng khác. Ví dụ: Bánh mì nướng của bạn vẫn hiển thị trên màn hình ngay cả khi hoạt động kết thúc. Snackbar thì không. Sẽ ít nhầm lẫn hơn nếu bánh mì nướng không bật lên (hoặc tiếp tục bật lên trong trường hợp tạo nhiều bánh mì nướng theo thứ tự) lâu sau khi ứng dụng được thoát. Điều này sẽ không xảy ra với Snackbar.

Hơn tất cả mọi thứ: Tôi đề nghị nếu bạn đang suy nghĩ, bạn nên chuyển đổi. SnackBars trông đẹp hơn nhiều so với Toasts.


18
Chúc mừng, điểm mà Snackbar chỉ tồn tại khi bạn đang tham gia hoạt động thực sự hữu ích.
Jakub Holovsky

9
Tôi muốn nói thêm rằng Toasts được ưu tiên cho các tin nhắn đề cập đến toàn bộ ứng dụng ngoài các tin nhắn hệ thống, trong khi Snackbars được ưu tiên cho các tin nhắn đề cập đến hoạt động hiện tại. Ví dụ: nếu ứng dụng của bạn kiểm tra các bản cập nhật khi khởi chạy, tốt nhất bạn nên sử dụng bánh mì nướng cho thông báo kết quả. Nếu ứng dụng của bạn có các mục có thể bị xóa, thì ứng dụng sẽ ưu tiên hiển thị thông báo phản hồi đã xóa dưới dạng thanh nhanh có nút hoàn tác.
Subaru Tashiro

10
Một điều khác cần lưu ý là chúc rượu không được hiển thị khi tắt thông báo.
Horatio

Ngoài ra, điểm khác biệt quan trọng là chỉ có một Snackbar được hiển thị bất kỳ lúc nào, không giống như Bánh mì nướng - bạn có thể có nhiều Bánh mì nướng chồng lên nhau, điều này có thể gây khó chịu cho người dùng, đặc biệt là khi không thể xóa chúng bằng cách vuốt.
Firzen

47

Tôi muốn thêm một so sánh nhỏ giữa bánh mì nướng và thanh ăn nhẹ. Theo tôi nếu ý định của bạn là đưa ra một cảnh báo hoặc thông tin cần sự tương tác / ghi nhận của người dùng, bạn nên sử dụng một quán ăn nhanh. Nếu đó chỉ là một thông báo thông tin không cần bất kỳ xác nhận nào của người dùng, bạn có thể sử dụng bánh mì nướng.

+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
| # |                                Toast                                 |                                 Snackbar                                 |
+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
| 1 | Cant be dismissed by swiping                                        | Can dismiss by swiping                                                   |
| 2 | Activity not required (Can show in android home or above other apps) | Can show inside an activity of your app                                  |
| 3 | Cant handle user input                                              | Can handle user input                                                    |
| 4 | Good for showing info messages to user                               | Good for showing warning/info type messages to user that needs attention |
+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+

26

Bánh mì nướng:

  1. Bánh mì nướng đã được thêm vào API Cấp 1
  2. Về cơ bản Hoạt động là không bắt buộc (Có thể hiển thị trên Android home hoặc thậm chí trên các ứng dụng khác)
  3. Nó không thể thực hiện một hành động dựa trên đầu vào của Người dùng
  4. Không thể loại bỏ nó bằng cách vuốt
  5. Nó không thể xử lý đầu vào của người dùng như Vuốt, Nhấp, v.v.
  6. Tốt để hiển thị thông báo thông tin cho người dùng

SnackBar:

  1. SnackBar đã được thêm vào API Cấp 23
  2. Nó có thể được hiển thị bên trong một hoạt động của Ứng dụng
  3. Nó có thể thực hiện một hành động
  4. Nó có thể được loại bỏ bằng cách vuốt
  5. Nó có thể xử lý đầu vào của người dùng
  6. Tốt để hiển thị thông báo loại cảnh báo / thông tin cho người dùng cần chú ý

Cách sử dụng SnackBar và Bánh mì nướng:

SnackBar:

SnackBar có thể được sử dụng trong các khu vực cần hiển thị thông báo bật lên đơn giản cùng với một tùy chọn để thực hiện hành động. Ví dụ: Trong ứng dụng GMail, khi bạn xóa Thư, SnackBar nhanh sẽ hiển thị ở dưới cùng với Thông báo '1 Đã xóa' với nút hành động 'Hoàn tác'. Khi nhấn nút hành động 'Hoàn tác', thư đã xóa sẽ được khôi phục.

Bánh mì nướng:

Bánh mì nướng có thể được sử dụng trong các khu vực cần hiển thị Thông báo hệ thống.

Ví dụ:

Khi Ứng dụng của bạn cố gắng tải xuống JSON từ máy chủ từ xa nhưng không thành công do Máy chủ hết thời gian chờ hoặc Không tìm thấy tài nguyên, bạn chỉ cần hiển thị thông báo lỗi cho biết 'Đã xảy ra lỗi'. Nhưng hãy hiểu thông báo Toast không thể bị loại bỏ bằng cách vuốt. Nếu bạn vẫn muốn có khả năng loại bỏ nó trong Ứng dụng của mình, hãy sử dụng SnackBar.


13

Theo tài liệu chính thức tại Tổng quan về tin nhắn bật lên :

Lưu ý: Lớp Snackbar thay thế cho Bánh mì nướng . Mặc dù Toast hiện vẫn được hỗ trợ, Snackbar hiện là cách ưa thích để hiển thị các thông báo ngắn gọn, thoáng qua cho người dùng.

và (Material Design) Tài liệu của Snackbars :

Các khái niệm liên quan: Android cũng cung cấp lớp Toast với một API tương tự có thể được sử dụng để hiển thị thông báo cấp hệ thống. Nói chung, thanh nhanh là cơ chế ưa thích để hiển thị thông báo phản hồi cho người dùng, vì chúng có thể được hiển thị trong ngữ cảnh của giao diện người dùng nơi hành động xảy ra. Đặt bánh mì nướng cho những trường hợp không thể thực hiện được.


2

Đặc tả thiết kế vật liệu của Google nói rằng bạn có thể sử dụng Snackbar mà không cần thực hiện hành động nào. Họ đã cung cấp các ví dụ về Snackbar sẽ trông như thế nào nếu nó chỉ hiển thị một Chuỗi duy nhất. Tôi giả định rằng "Nhắn tin hệ thống" có nghĩa là các sự kiện thiết bị như mất kết nối mạng - ví dụ: trong khi lưu trữ email là một hành động cụ thể của Gmail.

Vì lợi ích của tính nhất quán, bạn nên chọn Bánh mì nướng hoặc Thanh ăn nhẹ và áp dụng điều đó trong toàn bộ ứng dụng của mình.


1
Liên kết đó đã được di chuyển: material.io/design/components/snackbars.html
Antonio Vinicius Menezes Medei

1

Câu trả lời ngắn gọn là đó là 2 cách để truyền đạt những thứ xảy ra trong nền cho người dùng và bạn có thể đạt một trong số chúng, cả hai đều ổn. Chỉ cần đảm bảo rằng bạn đang sử dụng cùng một cái và không chuyển đổi qua lại giữa chúng.

Câu trả lời dài:

  • Không, điều đó có nghĩa là nếu bạn cần một số hành động, bạn phải sử dụng Snackbar. Bạn vẫn có thể chỉ sử dụng Snackbar cho các tin nhắn (như "Đã tải lên xong").
  • Bởi "hệ thống" nó không có nghĩa là chỉ hệ thống Android. Ví dụ: nếu có sự cố phân tích cú pháp json trong khi lấy thông tin từ máy chủ của bạn, bạn vẫn có thể sử dụng bánh mì nướng để thông báo cho người dùng có sự cố khi giao tiếp với máy chủ.
  • Nếu bạn thực sự cần phải tắt tính năng này, đó hoàn toàn là lý do để chọn Snackbar

1

Nhóm thiết kế của chúng tôi cũng đang xem xét việc sử dụng bánh mì nướng hoặc đồ ăn nhẹ. Chúng tôi đi đến kết luận rằng ứng dụng nên sử dụng các thanh ăn nhẹ do tính linh hoạt của nó.

Lời chúc mừng chỉ nên được sử dụng khi chúng ta cần một chuỗi thông tin ngắn, liên tục mà vẫn có ý nghĩa trên các màn hình khác nhau.


1

Sự khác biệt giữa Toast và Snackbar Android

  • Tin nhắn bánh mì nướng có thể được tùy chỉnh và in ở bất kỳ đâu trên màn hình, nhưng Snackbar chỉ có thể được hiển thị ở cuối màn hình.
  • Thông báo Toast không có nút hành động, nhưng Snackbar có thể có nút hành động tùy chọn.
  • Tin nhắn bánh mì nướng không thể tắt cho đến khi kết thúc giới hạn thời gian, nhưng bạn có thể vuốt thanh Snackbar trước thời hạn đó.
  • Bạn có thể đặt khoảng thời gian thông báo sẽ được hiển thị bằng cách sử dụng ba giá trị khác nhau này.
    Snackbar.LENGTH_LONG
    Snackbar.LENGTH_SHORT
    Snackbar.LENGTH_INDEFINITE

Sử dụng

Bánh mì nướng

Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();

Snackbar

Snackbar snackbar = Snackbar.make(view,"This is Simple Snackbar",Snackbar.LENGTH_SHORT);
snackbar.show();

0

Android cũng cung cấp bánh mì nướng hình viên con nhộng, chủ yếu được sử dụng để nhắn tin hệ thống.

Tôi nghĩ rằng với "tin nhắn hệ thống", họ cũng đề cập đến thực tế là bánh mì nướng sẽ được hiển thị trong một thời gian cụ thể và không thể bị loại bỏ ngay cả khi người dùng điều hướng qua các hoạt động và ngay cả khi ứng dụng được chuyển sang chế độ nền.

Tôi coi đó là một lợi thế của thanh ăn nhẹ để giới hạn phạm vi của nó trong một hoạt động và có thể loại bỏ nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.