آموزش استفاده از Snack Bar در اندروید

آموزش استفاده از Snack Bar در اندروید: در گذشته، بین برنامه نویسان مرسوم بود برای نمایش پیغامی به کاربر در اپلیکیشن از Toast استفاده شود. با معرفی کتابخانه Material Design ابزار جدیدی به نام Snack Bar معرفی شد. استفاده از Snack Bar بسیار راحت بوده و در عین حال تجربه کاربری خیلی خوبی را ارائه می‌دهد. همچنین این ابزار کاربردی، می‌تواند جایگزین خیلی خوبی برای Toast در اپلیکیشن‌های اندرویدی شما باشد.

شاید تا الان اسم Snack Bar به گوشتان خورده باشد اما هنوز از آن استفاده نکرده باشید. در این مقاله قصد داریم این ابزار را به شما معرفی کرده و طریقه استفاده از Snack Bar در اندروید را به صورت عملی شما آموزش بدهیم. اگر قصد یادگیری این ابزار ساده و در عین حال کاربردی را دارید، تا انتهای این مقاله با وب سایت آموزش برنامه نویسی سون لرن همراه باشید.

Snack Bar چیست؟

قبل از این که بخواهیم به آموزش استفاده از Snack Bar در اندروید بپردازیم، بهتر است ابتدا این ابزار کاربردی را به شما معرفی کنیم.

Snack Bar در واقع جایگزینی مناسب برای Toast در اندروید می‌باشد. همانطور که می‌دانید در گذشته برای اطلاع دادن به کاربر درباره‌ی حوادث مختلفی که در اپلیکیشن رخ می‌داد، از Toast استفاده می‌شد. با این حال امروزه ابزاری قدرتمند‌تر از Toast به وجود آمده است که می‌توانید از آن به جای Toast استفاده کنید. Snack Bar دارای امکانات بیشتری به نسبت Toast در اندروید است که همین دلیل باعث برتری Snack Bar بر Toast شده است. در ادامه این مطلب کمی درباره نحوه ساخت و شخصی سازی این ابزار فوق العاده کاربردی صحبت می‌کنیم.

اسنک بار در اندروید

نکاتی که باید قبل از آموزش استفاده از اسنک بار در اندروید بدانید

قبل از ساختن Snack Bar باید نکاتی را درباره این ابزار کاربردی بدانید. یکی از مهم‌ترین نکاتی که می‌توان خاطر نشان کرد، این است که شما می‌توانید این ابزار را در AppCompatActivity و CoordinatorLayout استفاده کنید که در ادامه، ساختن این ابزار را در هر یک از این موارد توضیح خواهیم داد. همچنین باید توجه داشته باشید قبل از این که بخواهید در تابع ()onCreate و یا هر تابع دیگری این ابزار را ساخته و استفاده کنید باید در داخل Layout خود آن را قرار دهید که این کار با drag and drop امکان پذیر می‌باشد.

نکته‌ای دیگر که باید در هنگام قرار دادن این ابزار در داخل Layout مورد نظرتان بدانید، این است که باید برای آن آیدی تعریف کنید تا بتوانید در کلاس‌های خود به آن دسترسی داشته و از آن استفاده کنید.

ساخت اسنک بار در اندروید

آموزش ساخت اسنک بار در اندروید

همانطور که در قسمت قبلی به آن اشاره کردیم، ما برای نمایش و استفاده از Snack Bar در اندروید می‌توانیم از AppCompatActivity و CoordinatorLayout استفاده کنیم. در ادامه قصد داریم طریقه پیاده سازی اسنک بار در این دو را بیان کنیم.

طریقه ساخت Snack Bar در AppCompatActivity

برای ساخت این ابزار در AppCompatActivity باید به صورت عمل کنید:

Snackbar.make(findViewById(R.id.your_id), "your Message", your duration).show()

در ادامه توضیحاتی بیشتر در مورد آرگومان‌های Snack Bar خواهیم داد.

طریقه ساخت Snack Bar در CoordinatorLayout

ساخت اسنک بار در CoordinatorLayout به صورت زیر است:

val snackBar = Snackbar.make(coordinatorLayout, "your Message", your duration)
        snackBar.show()

توجه داشته باشید که در هر دو روش باید حتما متد ()show را فراخوانی کنید. تنها در این صورت می‌توانید اسنک بار را در اپلیکیشن خود نمایش دهید.

طریقه استفاده از Snack Bar در اندروید

نکاتی در مورد کد‌های ساخت Snack Bar

همانطور که می‌دانید در برنامه نویسی اندروید برای استفاده کردن از هر گونه شی و ابزاری باید کلاس آن ابزار را صدا زده و یک شی جدید از آن بسازید. برای ایجاد Snack Bar در AppCompatActivity، مشاهده می‌کنید که از متد استاتیک کلاس اسنک بار به نام make استفاده می‌کنیم. این متد 3 آرگومان را دریافت می‌کند:

  • آرگومان اول اسنک باری ‌است که شما در layout خود ساخته‌اید و آن را به وسیله آیدی به این متد معرفی می‌کنید.
  • آرگومان دوم یک متن ساده است که شما می‌خواهید در اسنک بار نمایش داده شود.
  • آرگومان سوم نیز مدت زمانی است که می‌خواهید این اسنک بار به کاربران نمایش داده شود.

همانطور که مشاهده می‌کنید استفاده از Snack Bar کار سختی نیست و می‌توانید به راحتی از آن استفاده کنید. استفاده از Snack Bar در CoordinatorLayout کمی متفاوت است و در آن شما باید یک شی از کلاس Snack Bar بسازید و آن را برابر متد استاتیک make قرار دهید که این متد نیز 3 آرگومان می‌گیرد که 2 آرگومان آخر مشابه روش قبلی می‌باشد. تنها تفاوت آن در آرگومان اول است که در این روش CoordinatorLayout را باید به آن پاس بدهید. با توجه به موارد بیان شده، استفاده از Snack Bar را در اندروید به خوبی فرا گرفتید.

مدت زمان نمایش Snack Bar

تعیین مدت زمان نمایش اسنک بار در هنگام استفاده از Snack Bar در اندروید

در قسمت قبل اشاره کردیم که در هنگام استفاده از Snack Bar، سومین آرگومان ارسال شده به متد make، مدت زمان نمایش اسنک بار را تعیین می‌کند. مدت زمان نمایش اسنک بار با استفاده از ثابت‌های خود کلاس Snack Bar تعیین می‌شود که به طور کلی اسنک بار در اندروید سه ثابت زیر را دارد:

  • اولین حالت از مدت زمان نمایش اسنک بار برای کاربر ثابت LENGTH_SHORT می‌باشد که زمان کوتاهی اسنک بار را نمایش می‌دهد.
  • دومین حالت از مدت زمان نمایش اسنک بار برای کاربر ثابت LENGTH_LONG می‌باشد که مدت زمان بیشتری نسبت به ثابت قبل اسنک بار را به نمایش می‌گذارد.
  • سومین حالت از مدت زمان نمایش اسنک بار برای کاربر ثابت LENGTH_INDEFINITE می‌باشد که معمولا برای زمان هایی استفاده می‌شود که قصد دارید در مدت زمانی که عملیاتی انجام می‌شود، کاربر اسنک بار را مشاهده کند.

توجه داشته باشید که در ثابت LENGTH_INDEFINITE تا زمانی که View از بین نرفته باشد و یا شما اسنک بار را dismiss نکرده باشید، اسنک بار شما از بین نخواهد رفت و به کاربر نمایش داده خواهد شد.

ایجاد دکمه برای Snack Bar

قرار دادن دکمه در اسنک بار

گاهی اوقات در هنگام استفاده از Snack Bar نیاز دارید که دکمه‌ای را قرار دهید تا کاربر با کلیک بر روی آن عملی را انجام دهد. در واقع قرار دکمه یکی از برترین مزیت‌های استفاده از Snack Bar می‌باشد. در ادامه قصد داریم طریقه‌ی قرار دادن دکمه در اسنک بار در اندروید را به دو روش توضیح دهیم:

قرار دادن دکمه در اسنک بار در AppCompatActivity

برای قرار دادن دکمه در AppCompatActivity به صورت زیر عمل می‌کنیم:

Snackbar.make(findViewById(R.id.your_id), "your Message", your duration)
            .setAction("your text") {
                TODO("your action")
            }
            .show()

نکته: در کاتلین ما برای پیاده سازی SetOnClickListener از Lambda Expression استفاده می‌کنیم.

قرار دادن دکمه در اسنک بار در CoordinatorLayout

برای قرار دادن دکمه در CoordinatorLayout نیز می‌توانیم به صورت زیر عمل کنیم:

val snackBar = Snackbar.make(coordinatorLayout, "your Message", your duration)
            .setAction("your text") {
                TODO("your action")
            }
        snackBar.show()

شخصی سازی Snack Bar در اندروید

تغییر رنگ اسنک بار

یکی از موارد برتری اسنک بار در اندروید نسبت به Toast، شخصی سازی زیادی است که در اختیار برنامه نویس قرار می‌دهد. شما می‌توانید رنگ متن‌ها، دکمه‌ها و پس زمینه اسنک بار خود را تغییر دهید. در ادامه به بررسی این موارد می‌پردازیم.

تغییر پس زمینه اسنک بار در اندروید

برای تغییر پس زمینه در اسنک بار باید به صورت زیر کد نویسی کنیم:

val snackBar = Snackbar.make(coordinatorLayout, "your Message", your time)
            .setAction("your text") {
                TODO("your action")
            }
        snackBar.view.setBackgroundColor(Color.parseColor("your color"))
        snackBar.show()

تغییر رنگ متن در اسنک بار در اندروید

برای تغییر رنگ متن در اسنک بار باید به صورت زیر کد نویسی کنیم:

val snackBar = Snackbar.make(coordinatorLayout, "your Message", your time)
            .setAction("your text") {
                TODO("your action")
            }
        snackBar.view.setBackgroundColor(Color.parseColor("your color"))
        snackBar.setTextColor(Color.parseColor("your color"))
        snackBar.show()

تغییر رنگ متن دکمه‌ها در اسنک بار در اندروید

برای تغییر رنگ متن دکمه در اسنک بار نیز باید به صورت زیر کد نویسی کنیم:

val snackBar = Snackbar.make(coordinatorLayout, "your Message", your time)
            .setAction("your text") {
                TODO("your action")
            }
        snackBar.view.setBackgroundColor(Color.parseColor("your color"))
        snackBar.setTextColor(Color.parseColor("your color"))
        snackBar.setActionTextColor(Color.parseColor("your color"))
        snackBar.show()

استفاده از Snack Bar یا Toast؟

اسنک بار در اندروید قابلیت‌ها و مزایای بیشتری به نسبت Toast در اندروید دارد. اما همچنان هر کدام در قسمت‌های مختلف اپلیکیشن‌های امروزی مورد استفاده قرار می‌گیرند. با استفاده از Snack Bar می‌توانیم تجربه کاربری بهتری را به کاربر خود بدهیم. همچنین امکان تعامل کاربر با استفاده از دکمه‌ها در اسنک بار، باعث بهتر بودن این ابزار در برابر Toast نیز شده است.

به نظر شما در چه موقعیت‌هایی باید از Snack Bar و در چه موقعیت‌هایی از Toast استفاده کنیم؟ آیا Snack Bar می‌تواند جایگزین Toast در اپلیکیشن‌های اندرویدی شود؟ خوشحال می‌شویم نظرات و تجربیات خود را با ما و سایر کاربران سون لرن به اشتراک بگذارید.

 
ارسال دیدگاه
ما همه سوالات و دیدگاه ها رو می خونیم و پاسخ میدیم
۱ دیدگاه
حمیدرضا کریمی ۰۹ فروردین ۱۴۰۰، ۱۱:۲۰
عالی بود تشکر که دانشتون رو به اشتراک گذاشتین