Snackbar و Toast در اندروید
امروزه برنامه نویسان سعی میکنند برنامه های خود را به صورت Material Design پیاده سازی کنند. یکی از اجزا بسیار پرکاربرد در این طراحی SnackBar است.
هر پردازشی یک نتیجه دارد و این نتیجه باید به کاربر نمایش داده شود. این پیام میتواند نامعتبر بودن مقدار ورودی, لغو یک پردازش, موفقیت آمیز بودن یک تراکنش و پردازشی از این قبیل باشد. در نرم افزار های ویندوزی, این پیام ها به صورت Message Box هایی نمایش داده میشود.
گاهی برنامه نویسان, در پروژه های اندروید نیز از چنین ساختاری استفاده میکنند. یعنی با استفاده از یک Dialog یک پیام را نمایش میدهند. اما باید هریک از این ابزار را در جای خود استفاده کرد. استفاده نابجا از هریک از این ابزار برای نمایش پیغام, ممکن است استاندارد بودن طراحی برنامه را زیر سوال ببرد. در واقع طبق تعریفی که برای Dialog وجود دارد, وقتی نیاز باشد تا یک پاسخ را از کاربر دریافت کنیم, از Dialog استفاده میکنیم. این پاسخ میتواند یک تایید ساده و یا اجازه دسترسی به منابع اندرویدی, مانند Runtime Premission ها باشد. اما حتما یک پاسخ از سمت کاربر مورد نیاز است. در ادامه به توضیح SnackBar و Toast میپردازیم و تفاوت های آنها را بررسی میکنیم.
Toast
بنا به تعریف, Toast یک popup کوچک است است که برای نمایش یک نتیحه و یا بازخورد استفاده میشود. برای مثال اگر درون برنامه یک صفحه برای نظرسنجی ایجاد کردهایم, پس از انتخاب کاربر میتوانیم یک پیام را با استفاده از Toast به کاربر نمایش دهیم. این پیام در یک بازه مشخص نمایش داده میشود و سپس ناپدید میگردد. یکی از ویژگی های مهم Toast این است که ابعاد آن برابر با ابعاد پیامی است که نمایش میدهد:
String message = "Hello Zero to Hero"; Toast.makeText(getBaseContext(), message, Toast.LENGTH_LONG).show();
البته میتوان view خاصی را برای Toast قرار دهیم. در واقع یک layout طراحی میکنیم و آن را به عنوان view قرار میدهیم:
String message = "Hello Zero to Hero"; Toast customViewToast = new Toast(getBaseContext()); LayoutInflater layoutInflater = getLayoutInflater(); View customeView = layoutInflater.inflate(R.layout.custom_view, null); TextView customMessage = customeView.findViewById(R.id, custom_message); customMessage.setText(message); customViewToast.setView(customeView); customViewToast.setDuration(Toast.LENGTH_SHORT); customViewToast.show();
SnackBar
یکی از ابزار هایی که در طراحی Material بسیار مورد استفاده قرار میگیرد, SnackBar است. کاربرد SnackBar مانند Toast است. در واقع برای نمایش یک پاسخ و یا بازخورد استفاده میشود اما در شیوه نمایش متفاوت هستند. در SnackBar یک نوار در پایین صفحه نمایش داده میشود و شامل یک پیام است. گاهی در دستگاه هایی که صفحه بزرگتری دارند, در پایین سمت چپ نمایش داده میشود. SnackBar بر روی تمام اعضای موجود در طراحی نمایش داده میشود. همچنین میتوانیم یک Button به عنوان Action تعریف کنیم و یک وظیفه خاص را به آن اختصاص دهیم:
ConstraintLayout constraintLayout = findViewById(R.id.layout); Snackbar.make(constraintLayout, "Zero to hero SnackBar", 2000).setAction("done", new View.OnClickListener() { @Override public void onClick(View view) { System.out.println("Clicked"); } }).setActionTextColor(getResources().getColor(R.color.colorAccent)).show();
در استفاده از Snackbar باید توجه داشته باشید که حرکت آن از پایین به سمت بالا است. در واقع استاندارد حرکتی آن به این صورت است که از سمت پایین صفحه بالا میآید و نمایش داده میشود. اندازه استاندارد برای متن درون آن ۱۴sp است. ارتفاع استاندارد برای طراحی SnackBar برابر با ۴۸dp در حالت یک خطی و ۸۰dp در حالت چند خطی است. توجه داشته باشید که Action بهتر است برای رفتاری مانند لغو و یا تایید مورد استفاده قرار گیرد. استفاده از icon ها در طراحی snackBar اشتباه است و طبق استاندارد تنها میتواند شامل متن باشد. نمایش دو SnackBar بر روی یکدگیر نیز اشتباه است. در پایان باید توجه داشته باشید که Snackbar تنها یک Action میتواند داشته باشد.
در این مقاله سعی بر این شد تا با مفهوم Toast و SnackBar و تفاوت آنها آشنا شویم. بهتر است با توجه به ساختار و ویژگی های آنها, هریک از آنها را در جایگاه مناسب استفاده کنیم.
با ما همراه باشید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.