می توانید از 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 خود تنظیم کنید. هنگام نمایش پیام به شناسه طرح نیاز دارید.
شکل 1. CoordinatorLayout وقتی Snackbar ظاهر شد FloatingActionButton را به سمت بالا حرکت می دهد.
نمایش یک پیام
برای نمایش یک پیام دو مرحله وجود دارد. ابتدا یک شی 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();
می توانید از 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 خود تنظیم کنید. هنگام نمایش پیام به شناسه طرح نیاز دارید.
شکل 1. CoordinatorLayout وقتی Snackbar ظاهر شد FloatingActionButton را به سمت بالا حرکت می دهد.
نمایش یک پیام
برای نمایش یک پیام دو مرحله وجود دارد. ابتدا یک شی 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();
