Bạn có thể sử dụng
Snackbar
thành
sẽ hiển thị một thông báo ngắn gọn cho người dùng. Bỏ thích
Thông báo,
thông báo sẽ tự động biến mất sau một khoảng thời gian ngắn. Snackbar
là
lý tưởng cho các thông báo ngắn gọn mà người dùng không cần phải làm gì. Ví dụ: một
ứng dụng email có thể sử dụng Snackbar
để cho người dùng biết rằng ứng dụng
đã gửi thành công email.
Sử dụng CoordinatorLayout
Snackbar
được đính kèm vào một khung hiển thị. Snackbar
cung cấp chức năng cơ bản nếu nó được gắn với bất kỳ đối tượng nào bắt nguồn từ
Lớp View
, chẳng hạn như
bất kỳ đối tượng bố cục phổ biến nào. Tuy nhiên, nếu Snackbar
là
được đính kèm vào một
CoordinatorLayout
,
Snackbar
có thêm các tính năng bổ sung:
- Người dùng có thể đóng
Snackbar
bằng cách vuốt nó sang bên. - Bố cục này sẽ di chuyển các thành phần khác trên giao diện người dùng khi
Snackbar
xuất hiện. Ví dụ: nếu bố cục cóFloatingActionButton
, bố cục sẽ di chuyển nút lên khi nó hiển thịSnackbar
để vẽSnackbar
lên trên nút. Bạn có thể xem cách như trong hình 1.
Lớp CoordinatorLayout
cung cấp tập mẹ của
chức năng của
FrameLayout
Nếu ứng dụng của bạn đã sử dụng FrameLayout
, bạn có thể thay thế bố cục đó
với CoordinatorLayout
để bật Snackbar
đầy đủ
của Google. Nếu ứng dụng của bạn dùng các đối tượng bố cục khác, hãy gói bố cục hiện có
trong CoordinatorLayout
, như minh hoạ trong đoạn mã sau
ví dụ:
<android.support.design.widget.CoordinatorLayout android:id="@+id/myCoordinatorLayout" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- Here are the existing layout elements, now wrapped in a CoordinatorLayout. --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- ...Toolbar, other layouts, other elements... --> </LinearLayout> </android.support.design.widget.CoordinatorLayout>
Đặt thẻ android:id
cho CoordinatorLayout
.
Bạn cần có mã nhận dạng bố cục khi hiện thông báo.
Hiển thị thông báo
Có hai bước để hiện thông báo. Trước tiên, bạn tạo một
Đối tượng Snackbar
có nội dung tin nhắn. Sau đó, bạn gọi đối tượng đó là
show()
để hiển thị thông báo cho người dùng.
Tạo đối tượng Thanh thông báo nhanh
Tạo đối tượng Snackbar
bằng cách gọi phương thức tĩnh
Snackbar.make()
. Khi bạn tạo Snackbar
, hãy chỉ định thông điệp mà bạn muốn truyền tải
và khoảng thời gian hiện thông báo:
Kotlin
val mySnackbar = Snackbar.make(view, stringId, duration)
Java
Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
- lượt xem
-
Khung hiển thị để đính kèm
Snackbar
vào. Phương thức này sẽ tìm kiếm hệ thống phân cấp khung hiển thị từ khung hiển thị đã truyền cho đến khi đạt đếnCoordinatorLayout
hoặc khung hiển thị nội dung của trang trí cửa sổ. Thông thường, việc truyềnCoordinatorLayout
sẽ đơn giản hơn bao gồm nội dung của bạn. - mã chuỗi
- Mã nhận dạng tài nguyên của thông báo mà bạn muốn hiện. Tệp này có thể được định dạng hoặc văn bản chưa được định dạng.
- duration
-
Lượng thời gian hiện thông báo. Thông tin này có thể là
LENGTH_SHORT
hoặcLENGTH_LONG
Hiện thông báo cho người dùng
Sau khi bạn tạo Snackbar
, hãy gọi show()
của nó
để hiển thị Snackbar
cho người dùng:
Kotlin
mySnackbar.show()
Java
mySnackbar.show();
Hệ thống không hiển thị nhiều đối tượng Snackbar
cùng một lúc
thời gian, vì vậy, nếu khung hiển thị hiện đang hiển thị một Snackbar
khác, thì giá trị
hệ thống xếp Snackbar
của bạn vào hàng đợi và hiển thị nó sau dòng thời gian
Snackbar
hết hạn hoặc bị đóng.
Nếu bạn muốn hiển thị thông báo cho người dùng và không cần thực hiện lệnh gọi nào
các phương thức tiện ích của đối tượng Snackbar
, bạn không cần giữ lại
tham chiếu đến Snackbar
sau khi bạn gọi show()
. Cho
lý do này, nên sử dụng tính năng tạo chuỗi phương thức để tạo và hiển thị
Snackbar
trong một câu lệnh:
Kotlin
Snackbar.make( findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT ).show()
Java
Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT) .show();