آموزش استفاده از اسنک بار در اندروید: در گذشته، بین برنامه نویسان مرسوم بود برای نمایش پیغامی به کاربر در اپلیکیشن از Toast استفاده شود. با معرفی کتابخانه Material Design ابزار جدیدی به نام Snack Bar معرفی شد. استفاده از Snack Bar بسیار راحت بوده و در عین حال تجربه کاربری خیلی خوبی را ارائه میدهد. همچنین این ابزار کاربردی، میتواند جایگزین خیلی خوبی برای Toast در اپلیکیشنهای اندرویدی شما باشد.
شاید تا الان اسم Snack Bar به گوشتان خورده باشد اما هنوز از آن استفاده نکرده باشید. در این مقاله قصد داریم این ابزار را به شما معرفی کرده و طریقه استفاده از Snack Bar در اندروید را به صورت عملی شما آموزش بدهیم. اگر قصد یادگیری این ابزار ساده و در عین حال کاربردی را دارید، تا انتهای این مقاله با ما همراه باشید.
سیستم عامل چیست؟
سیستم عامل، یک نرم افزار کامپیوتری است که برای یکپارچه سازی منابع سخت افزاری و نرم افزاری کار میکند. بنابراین، سیستم عامل به انواع سخت افزار کمک میکند تا در کنار یکدیگر کار کرده و در عین حال بستری برای انتقال اطلاعات و بخشهای نرم افزاری فراهم میکند. بنابراین، سیستم عامل Android در گوشیهای هوشمند، بهعنوان مدیر، عملکرد سختافزار گوشی و برنامههایی که روی آن نصب کردهاید را کنترل میکند.
اندروید چیست؟
اندروید یک سیستم عامل موبایل است که در حدود ۱۳ سال پیش، توسط شرکت گوگل توسعه یافته و از آن زمان تاکنون در انواع گوشیهای هوشمند و تبلتهای مختلف، به کار رفته است. با این که شرکت گوگل مالک این سیستم عامل است، آن را به عنوان یک فناوری Open Source (منبع باز) در اختیار عموم قرار داده و حتی استفاده تجاری از آن نیز رایگان است. همین امر، سیستم عامل اندروید را از سیستمعاملهایی مانند iOS، MAC OS و Windows که همگی پلتفرمهای Close Source هستند، متمایز میکند.
اندروید محبوبترین سیستم عامل جهان است. برآوردها نشان می دهد که این سیستم عامل روی ۲٫۵ میلیارد دستگاه در سراسر جهان فعال بوده و این پلتفرم با داشتن بیش از سه میلیارد کاربر، حدود ۳۹ درصد از کل جمعیت جهان، را به جامعه کاربران خویش افزوده است. محبوبیت این سیستم عامل، حتی از سیستم عامل iOS اپل و Windows مایکروسافت نیز بیشتر است.
بیش از سه میلیون برنامه کاربردی برای سیستم عامل Android وجود دارد که اغلب آنها را میتوان در فروشگاه رسمی Google Play یافت. اما برخی از آنها نیز در وبسایتهای مختلف عرضه میشوند و میتوان به سادگی آنها را دانلود و نصب کرد. این تنوع، تلفنهای اندرویدی را بسیار قدرتمند کرده، اما به همان میزان نیز آنها را نسبت به ویروسها و دیگر بدافزارها حساس میکند.
آیا سیستم عامل Android تنها برای دستگاههای موبایل طراحی شده است؟
بسیاری از افراد تصور میکنند که اندروید، سیستم عاملی برای دستگاههای موبایل است. اما این تمام ماجرا نیست! با این که شمار زیادی از اکثر دستگاههای اندرویدی را گوشیهای هوشمند تشکیل میدهند، تبلتها، ساعتهای هوشمند و حتی تلویزیونها نیز از این سیستم عامل بهره میبرند. اما اندروید در ساعتهای هوشمند چگونه ظاهر میشود؟ اگر ساعت هوشمند شما از سیستم عامل Wear OS بهره میبرد، یعنی سیستم عامل آن مبتنی بر اندروید است. به عبارت بهتر، زمانی که یک شرکت، اندروید را با کمی تغییر (تغییرات ناچیز روی کد اصلی اندروید) روی دستگاههای خود ارائه میکند یعنی یک سیستم عامل مبتنی بر اندروید طراحی کرده است.
علاوه بر اینها، یک پلتفرم تلویزیونی با نام Android TV وجود دارد که با استفاده از سیستم عامل اندروید کار میکند. در این میان، Android Automotive به عنوان یک نرمافزار مبتنی بر اندروید، در وسایل نقلیه به کار میرود. توجه کنید که Android Automotive را با Android Auto اشتباه نگیرید. Android Auto، پلتفرمی است که تلفنهای هوشمند را با سیستم داشبورد خودروهای مختلف ادغام کرده است.
علاوه بر سیستم عاملهای مبتنی بر اندروید، سیستم عاملهای دیگری نیز وجود دارند که مبتنی بر اندروید نیستند، اما از اجرای برنامههای اندرویدی پشتیبانی میکنند. نسخههای جدید سیستم عامل کروم، این امکان را در اختیار کاربران قرار میدهد. بنابراین تقریباً تمام کرومبوکهای موجود در بازار از برنامههای اندرویدی نیز پشتیبانی میکنند. از اواخر سال ۲۰۲۱ میلادی نیز نسخه ۱۱ سیستم عامل ویندوز از برنامههای اندرویدی پشتیبانی خواهد کرد.
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 در AppCompatActivity، مشاهده میکنید که از متد استاتیک کلاس اسنک بار به نام make استفاده میکنیم. این متد ۳ آرگومان را دریافت میکند:
- آرگومان اول اسنک باری است که شما در layout خود ساختهاید و آن را به وسیله آیدی به این متد معرفی میکنید.
- آرگومان دوم یک متن ساده است که شما میخواهید در اسنک بار نمایش داده شود.
- آرگومان سوم نیز مدت زمانی است که میخواهید این اسنک بار به کاربران نمایش داده شود.
همانطور که مشاهده میکنید استفاده از Snack Bar کار سختی نیست و میتوانید به راحتی از آن استفاده کنید. استفاده از Snack Bar در CoordinatorLayout کمی متفاوت است و در آن شما باید یک شی از کلاس Snack Bar بسازید و آن را برابر متد استاتیک make قرار دهید که این متد نیز ۳ آرگومان میگیرد که ۲ آرگومان آخر مشابه روش قبلی میباشد. تنها تفاوت آن در آرگومان اول است که در این روش CoordinatorLayout را باید به آن پاس بدهید. با توجه به موارد بیان شده، استفاده از Snack Bar را در اندروید به خوبی فرا گرفتید.
تعیین مدت زمان نمایش اسنک بار در هنگام استفاده از Snack Bar در اندروید
در قسمت قبل اشاره کردیم که در هنگام استفاده از Snack Bar، سومین آرگومان ارسال شده به متد make، مدت زمان نمایش اسنک بار را تعیین میکند. مدت زمان نمایش اسنک بار با استفاده از ثابتهای خود کلاس Snack Bar تعیین میشود که به طور کلی اسنک بار در اندروید سه ثابت زیر را دارد:
- اولین حالت از مدت زمان نمایش اسنک بار برای کاربر ثابت LENGTH_SHORT میباشد که زمان کوتاهی اسنک بار را نمایش میدهد.
- دومین حالت از مدت زمان نمایش اسنک بار برای کاربر ثابت LENGTH_LONG میباشد که مدت زمان بیشتری نسبت به ثابت قبل اسنک بار را به نمایش میگذارد.
- سومین حالت از مدت زمان نمایش اسنک بار برای کاربر ثابت LENGTH_INDEFINITE میباشد که معمولا برای زمان هایی استفاده میشود که قصد دارید در مدت زمانی که عملیاتی انجام میشود، کاربر اسنک بار را مشاهده کند.
توجه داشته باشید که در ثابت LENGTH_INDEFINITE تا زمانی که View از بین نرفته باشد و یا شما اسنک بار را dismiss نکرده باشید، اسنک بار شما از بین نخواهد رفت و به کاربر نمایش داده خواهد شد.
قرار دادن دکمه در اسنک بار
گاهی اوقات در هنگام استفاده از 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()
تغییر رنگ اسنک بار
یکی از موارد برتری اسنک بار در اندروید نسبت به 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 نیز شده است.