میتوانید از
Snackbar برای
نمایش پیام کوتاهی به کاربر استفاده کنید. برخلاف
اعلانها، پیام
پساز مدت کوتاهی بهطور خودکار ناپدید میشود. Snackbar برای پیامهای کوتاهی که کاربر نیازی به اقدام در آنها ندارد ایدهآل است. برای مثال، یک برنامه ایمیل میتواند از Snackbar برای اطلاع دادن به کاربر مبنی بر اینکه برنامه ایمیل را با موفقیت ارسال کرده است استفاده کند.
استفاده از CoordinatorLayout
Snackbar به نما پیوست شده است. اگر Snackbar به هر شیء مشتقشده از کلاس View، مثل هریک از اشیای چیدمان رایج، پیوست شود، عملکرد پایه را ارائه میدهد. بااینحال، اگر Snackbar به CoordinatorLayout متصل باشد، Snackbar ویژگیهای اضافی دریافت میکند:
- کاربر میتواند
Snackbarرا با تند کشیدن روی آن ببندد. - وقتی
Snackbarظاهر میشود، چیدمان عناصر دیگر میانای کاربر را جابهجا میکند. برای مثال، اگر چیدمان دارایFloatingActionButtonباشد، وقتیSnackbarرا نشان میدهد، چیدمان دکمه را بهجای اینکهSnackbarرا روی دکمه بکشد، به بالا میبرد. میتوانید نحوه نمایش آن را در «شکل ۱» ببینید.
کلاس CoordinatorLayout مجموعه بالاتری از عملکرد FrameLayout را ارائه میدهد.
اگر برنامهتان ازقبل از FrameLayout استفاده میکند، میتوانید آن چیدمان را با CoordinatorLayout جایگزین کنید تا قابلیتهای کامل Snackbar فعال شود. اگر برنامهتان از عناصر چیدمان دیگری استفاده میکند، عناصر چیدمان موجودتان را در CoordinatorLayout بپیچید، همانطور که در مثال زیر نشان داده شده است:
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myCoordinatorLayout" 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> </androidx.coordinatorlayout.widget.CoordinatorLayout>
برچسب android:id را برای CoordinatorLayout خود تنظیم کنید.
وقتی پیام را نمایش میدهید به شناسه چیدمان نیاز دارید.
شکل ۱. وقتی Snackbar ظاهر میشود، CoordinatorLayout
FloatingActionButton را بهبالا میبرد.
نمایش پیام
نمایش پیام دو مرحله دارد. ابتدا، یک
Snackbar شیء با نوشتار پیام ایجاد میکنید. سپس، روش آن شیء را
show()
فراخوانی میکنید تا پیام را به کاربر نمایش دهید.
ایجاد شیء «میانوعدهبار»
با فراخوانی روش ایستای
Snackbar.make()
شیء Snackbar ایجاد کنید. وقتی Snackbar را ایجاد میکنید، پیامی را که نمایش میدهد و مدت زمان نمایش پیام را مشخص کنید:
val mySnackbar = Snackbar.make(view, stringId, duration)
- مشاهده
-
نمایی که
Snackbarبه آن پیوست میشود. این روش سلسلهمراتب نما را از نمای ارسالشده تا زمانیکه بهCoordinatorLayoutیا نمای محتوای تزئین پنجره برسد جستجو میکند. معمولاً، سادهتر است کهCoordinatorLayoutمحتوای خود را محصور کنید. - stringId
- شناسه منبع پیامی که میخواهید نمایش دهید. این میتواند نوشتار قالببندیشده یا قالببندینشده باشد.
- مدت زمان
-
طول مدت نمایش پیام. این میتواند
LENGTH_SHORTیاLENGTH_LONGباشد.
نمایش پیام به کاربر
پساز ایجاد Snackbar، روش show()
آن را برای نمایش Snackbar به کاربر فراخوانی کنید:
mySnackbar.show()
سیستم چندین شیء Snackbar را بهطور همزمان نشان نمیدهد، بنابراین اگر نما درحال نمایش Snackbar دیگری باشد، سیستم Snackbar شما را در صف قرار میدهد و آن را پساز منقضی شدن یا بسته شدن Snackbar فعلی نمایش میدهد.
اگر میخواهید پیامی به کاربر نشان دهید و نیازی به فراخوانی هیچیک از روشهای ابزار Snackbar شیء ندارید، پساز فراخوانی show()، نیازی نیست مرجع Snackbar را نگه دارید. به همین دلیل، استفاده از زنجیره روش برای ایجاد و نمایش Snackbar در یک عبارت رایج است:
Snackbar.make( findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT ).show()