توی این آموزش ، با استفاده از کاتلین ، یه Navigation Drawer یا همون منویی که توی بیشتر برنامه ها مشاهده میکنید رو انجام میدیم .

یه پروژه جدید توی اندروید استودیو میسازیم و موقع ساختن ، تیک Include Kotlin Support رو هم فعال میکنیم . توی پنجره ای که نوع اکتیویتی رو ازمون میخواد ، گزینه Navigation Drawer Activity رو انتخاب میکنیم 

وقتی که پروژه build شد ، واسه ما یه منویی ساخته که خاصیت کلیک نداره . ما میایم منوی خودمون رو با آیتم های خودمون تعریف میکنیم . میخوایم توی منو ، سه تا گزینه Home و About و Favorites داشته باشیم . پس میایم توی فولدر res و فولدر menu و فایل activity_main_drawer.xml رو با این کدها ذخیره میکنیم : 

 

ما سه تا گزینه داریم . و یه لایه گرافیکی اصلی واسه MainActivity که توی این مثال content_main.xml هست . میخوایم از Fragment ها استفاده کنیم . یعنی واسه این سه تا آیتم منو ، سه تا فرگمنت تعریف میکنیم و با استفاده از دستور شرطی if میگیم که اگه هر کدوم از این فرگمنت ها انخاب شد ، بیا توی لایه اصلی content_main.xml اون فرگمنت رو واسمون لود کن ( اینکارو انجام میدیم تا از شلوغ کاری و تعریف لایوت های بیشتر جلوگیری کنیم ) . سه تا لایوت جدید میسازیم و هر جور که عشقمون میکشه طراحیش میکنیم . اسم این سه تا لایوت جدید رو میذاریم  : fragment_about و fragment_fav و fragment_home . حالا سه تا کلاس فرگمنت جدید میسازیم که به این سه تا لایوت وصل بشه . یه کلاس جدید میسازیم از نوع کاتلین ( روی اسم پکیج کلیک راست میکنیم و از قسمت New گزینه New Kotlin File/Class رو انتخاب میکنیم ) اسمشو میذاریم HomeFragment با این کدها : 

توی کدهای بالا و خط ۱۸ اتصالش به لایه گرافیکی رو برقرار کردیم . 

اون دو تا کلاس رو هم به همین شکل اضافه میکنیم . یه کلاس کاتلین جدید میسازیم با اسم AboutFragment با این کدها : 

و یه کلاس کاتلین جدید دیگه با اسم FavoritesFragment با این کدها : 

گفتم که میخوایم توی لایه گرافیکی اصلی خودمون که content_main.xml هست این فرگمنت ها رو نمایش بدیم . چه جوری ؟ خیلی ساده یه RelativeLayout تعریف میکنیم داخل لایوت و میگیم بسته به اینکه کاربر رو کدوم آیتم از منو کلیک کنه ، فرگمنت مربوطه رو لود کن . اول کدهای content_main.xml که اینا باشه : 

 

و سپس ! توی اکتیویتی اصلی ، که MainActivity.kt باشه ، یه تابع تعریف میکنیم به اسم displayScreen که تشخیص بده روی کدوم آیتم کلیک شده و روی هر کدوم که کلیک شده ، فرگمنت رو فراخوانی کنه و به جای اون RelativeLayout که تعریف کردیم Replace کنه .  این تابع : 

 

تابع بالا رو توی متد onCreate فراخوانی میکنیم ، که چون یه ورودی از نوع Int هم میخواد ، بهش مقدار ۱- رو پاس میدیم . اینجوری : 

کل کدهای فایل MainActivity.kt اینا هستن : 

 

و اگه برنامه رو اجرا کنیم : 

سورس رو هم میتونید از لینک پایین دانلود کنید : 

دانلود سورس

آموزش ساخت Navigation Drawer با کاتلین

مجتبی صابری


همه عشقم برنامه نویسی هست | t.me/developer9 | t.me/kotlin9


پیمایش نوشته


پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *