آموزش استفاده از Snack Bar در اندروید: در گذشته، بین برنامه نویسان مرسوم بود برای نمایش پیغامی به کاربر در اپلیکیشن از Toast استفاده شود. با معرفی کتابخانه Material Design ابزار جدیدی به نام Snack Bar معرفی شد. استفاده از Snack Bar بسیار راحت بوده و در عین حال تجربه کاربری خیلی خوبی را ارائه میدهد. همچنین این ابزار کاربردی، میتواند جایگزین خیلی خوبی برای Toast در اپلیکیشنهای اندرویدی شما باشد.
شاید تا الان اسم 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 استفاده کنیم. در ادامه قصد داریم طریقه پیاده سازی اسنک بار در این دو را بیان کنیم.
برای ساخت این ابزار در AppCompatActivity باید به صورت عمل کنید:
Snackbar.make(findViewById(R.id.your_id), "your Message", your duration).show()
در ادامه توضیحاتی بیشتر در مورد آرگومانهای Snack Bar خواهیم داد.
ساخت اسنک بار در CoordinatorLayout به صورت زیر است:
val snackBar = Snackbar.make(coordinatorLayout, "your Message", your duration)
snackBar.show()
توجه داشته باشید که در هر دو روش باید حتما متد ()show را فراخوانی کنید. تنها در این صورت میتوانید اسنک بار را در اپلیکیشن خود نمایش دهید.
همانطور که میدانید در برنامه نویسی اندروید برای استفاده کردن از هر گونه شی و ابزاری باید کلاس آن ابزار را صدا زده و یک شی جدید از آن بسازید. برای ایجاد Snack Bar در AppCompatActivity، مشاهده میکنید که از متد استاتیک کلاس اسنک بار به نام make استفاده میکنیم. این متد 3 آرگومان را دریافت میکند:
همانطور که مشاهده میکنید استفاده از Snack Bar کار سختی نیست و میتوانید به راحتی از آن استفاده کنید. استفاده از Snack Bar در CoordinatorLayout کمی متفاوت است و در آن شما باید یک شی از کلاس Snack Bar بسازید و آن را برابر متد استاتیک make قرار دهید که این متد نیز 3 آرگومان میگیرد که 2 آرگومان آخر مشابه روش قبلی میباشد. تنها تفاوت آن در آرگومان اول است که در این روش CoordinatorLayout را باید به آن پاس بدهید. با توجه به موارد بیان شده، استفاده از Snack Bar را در اندروید به خوبی فرا گرفتید.
در قسمت قبل اشاره کردیم که در هنگام استفاده از Snack Bar، سومین آرگومان ارسال شده به متد make، مدت زمان نمایش اسنک بار را تعیین میکند. مدت زمان نمایش اسنک بار با استفاده از ثابتهای خود کلاس Snack Bar تعیین میشود که به طور کلی اسنک بار در اندروید سه ثابت زیر را دارد:
توجه داشته باشید که در ثابت LENGTH_INDEFINITE تا زمانی که View از بین نرفته باشد و یا شما اسنک بار را dismiss نکرده باشید، اسنک بار شما از بین نخواهد رفت و به کاربر نمایش داده خواهد شد.
گاهی اوقات در هنگام استفاده از Snack Bar نیاز دارید که دکمهای را قرار دهید تا کاربر با کلیک بر روی آن عملی را انجام دهد. در واقع قرار دکمه یکی از برترین مزیتهای استفاده از Snack Bar میباشد. در ادامه قصد داریم طریقهی قرار دادن دکمه در اسنک بار در اندروید را به دو روش توضیح دهیم:
برای قرار دادن دکمه در AppCompatActivity به صورت زیر عمل میکنیم:
Snackbar.make(findViewById(R.id.your_id), "your Message", your duration)
.setAction("your text") {
TODO("your action")
}
.show()
نکته: در کاتلین ما برای پیاده سازی SetOnClickListener از Lambda Expression استفاده میکنیم.
برای قرار دادن دکمه در CoordinatorLayout نیز میتوانیم به صورت زیر عمل کنیم:
val snackBar = Snackbar.make(coordinatorLayout, "your Message", your duration)
.setAction("your text") {
TODO("your action")
}
snackBar.show()
یکی از موارد برتری اسنک بار در اندروید نسبت به 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()
اسنک بار در اندروید قابلیتها و مزایای بیشتری به نسبت Toast در اندروید دارد. اما همچنان هر کدام در قسمتهای مختلف اپلیکیشنهای امروزی مورد استفاده قرار میگیرند. با استفاده از Snack Bar میتوانیم تجربه کاربری بهتری را به کاربر خود بدهیم. همچنین امکان تعامل کاربر با استفاده از دکمهها در اسنک بار، باعث بهتر بودن این ابزار در برابر Toast نیز شده است.
به نظر شما در چه موقعیتهایی باید از Snack Bar و در چه موقعیتهایی از Toast استفاده کنیم؟ آیا Snack Bar میتواند جایگزین Toast در اپلیکیشنهای اندرویدی شود؟ خوشحال میشویم نظرات و تجربیات خود را با ما و سایر کاربران سون لرن به اشتراک بگذارید.