می توانید از Snackbar
برای نمایش یک پیام کوتاه به کاربر استفاده کنید. برخلاف اعلانها ، پیام بهطور خودکار پس از مدت کوتاهی ناپدید میشود. Snackbar
برای پیام های کوتاهی که کاربر نیازی به انجام آن ندارد ایده آل است. به عنوان مثال، یک برنامه ایمیل می تواند از Snackbar
استفاده کند تا به کاربر بگوید که برنامه با موفقیت یک ایمیل ارسال کرده است.
از CoordinatorLayout استفاده کنید
یک Snackbar
به یک نما متصل است. Snackbar
در صورتی که به هر شیء مشتق شده از کلاس View
، مانند هر یک از اشیاء طرح بندی رایج، متصل باشد، عملکرد اساسی را ارائه می دهد. با این حال، اگر Snackbar
به یک CoordinatorLayout
متصل باشد، Snackbar
ویژگیهای اضافی را به دست میآورد:
- کاربر می تواند
Snackbar
با کشیدن آن کنار بگذارد. - هنگامی که
Snackbar
ظاهر می شود، طرح بندی سایر عناصر رابط کاربری را جابجا می کند. به عنوان مثال، اگر چیدمان دارای یکFloatingActionButton
باشد، طرح بندی به جای ترسیمSnackbar
در بالای دکمه، دکمه را هنگامی کهSnackbar
اسنک را نشان می دهد به سمت بالا حرکت می دهد. در شکل 1 می توانید ببینید که چگونه به نظر می رسد.
کلاس CoordinatorLayout
ابر مجموعه ای از عملکرد FrameLayout
را ارائه می دهد. اگر برنامه شما قبلاً از FrameLayout
استفاده میکند، میتوانید آن طرحبندی را با CoordinatorLayout
جایگزین کنید تا عملکرد کامل Snackbar
را فعال کنید. اگر برنامه شما از اشیاء طرحبندی دیگر استفاده میکند، عناصر طرحبندی موجود خود را در یک CoordinatorLayout
بپیچید، همانطور که در مثال زیر نشان داده شده است:
<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>
یک تگ android:id
برای CoordinatorLayout
خود تنظیم کنید. هنگام نمایش پیام به شناسه طرح نیاز دارید.
نمایش یک پیام
برای نمایش یک پیام دو مرحله وجود دارد. ابتدا یک شی Snackbar
با متن پیام ایجاد می کنید. سپس، متد show()
آن شی را فراخوانی می کنید تا پیام را به کاربر نمایش دهید.
یک شی Snackbar ایجاد کنید
با فراخوانی متد Snackbar.make()
استاتیک یک شی Snackbar
ایجاد کنید. هنگامی که Snackbar
ایجاد می کنید، پیامی را که نمایش می دهد و مدت زمان نمایش پیام را مشخص کنید:
کاتلین
val mySnackbar = Snackbar.make(view, stringId, duration)
جاوا
Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
- مشاهده کنید
- نمای برای اتصال
Snackbar
به. این روش سلسله مراتب view را از نمای عبوری جستجو می کند تا زمانی که بهCoordinatorLayout
یا نمای محتوای دکور پنجره برسد. به طور معمول، عبور ازCoordinatorLayout
که محتوای شما را در بر می گیرد، ساده تر است. - stringId
- شناسه منبع پیامی که می خواهید نمایش دهید. این می تواند متن فرمت شده یا بدون قالب باشد.
- مدت
- مدت زمان نمایش پیام این می تواند
LENGTH_SHORT
یاLENGTH_LONG
باشد.
نمایش پیام به کاربر
پس از ایجاد Snackbar
، متد show()
آن را فراخوانی کنید تا Snackbar
به کاربر نمایش داده شود:
کاتلین
mySnackbar.show()
جاوا
mySnackbar.show();
سیستم چندین شیء Snackbar
به طور همزمان نشان نمیدهد، بنابراین اگر نمای در حال حاضر Snackbar
دیگر را نشان میدهد، سیستم Snackbar
شما را در صف قرار میدهد و پس از انقضای Snackbar
فعلی یا حذف آن، آن را نمایش میدهد.
اگر میخواهید پیامی را به کاربر نشان دهید و نیازی به فراخوانی هیچ یک از متدهای کاربردی شی Snackbar
ندارید، پس از فراخوانی show()
نیازی به حفظ ارجاع به Snackbar
ندارید. به همین دلیل، استفاده از روش زنجیرهای برای ایجاد و نمایش یک Snackbar
در یک عبارت معمول است:
کاتلین
Snackbar.make( findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT ).show()
جاوا
Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT) .show();