آموزش RecyclerView و CardView در برنامه نویسی اندروید

سلام دوستان در این سری از آموزش های برنامه نویسی اندروید به آموزش RecyclerView و CardView در برنامه نویسی اندروید میپردازیم یکی از بهترین روش های متریال دیزاین پیاده سازی همزمان cardview و RecyclerView است و باعث میشه کاربر ارتباط بیشتری با برنامه شما برقرار کند و زمانی که کاربر در حال استفاده از برنامه شما است دیگر حوصله اش سر نمی رود و بهتر است بدانید CardView یکی از بهترین متریال دیزاین های جهان به حساب می آید در ادامه با ما همراه باشید.
قبل از شروع ابتدا یک پیش نمایشی از ماحصل نهایی کار ببینید بعد ادامه دهید.

 
ابتدا باید کتاب خانه های CardView , Recylerview و Glide را اضافه کنیم. قبلا نحوه استفاده از هر کدام از کتابخانه ها را به صورت مجزا گفته ایم کافی است در سایت سرچ کرده و آموزش ها را دنبال کنید.
پس وارد فایل Build.gradle شده نوع module خط های زیر را در قسمت dependencies قرار دهید.

پروژه را sync کرده و در ادمه با ما همراه باشید. (ما قبلا علت خطاهای گریدل را بررسی کردیم در سایت جستجو کنید)
فایل zip زیر را دانلود کرده این فایل حاوی عکس های استفاده شده در برنامه است.
دانلود
سپس عکس ها را در فولدر مربوطه قرار دهید (copy و past کنید)
وارد فایل string.xml (در مسیر res/values قرار دارد ) شده آن را به شکل زیر ویرایش کنید.

وارد فایل colors.xml شده و کد های زیر را در آن قرار دهید (اضافه کنید) .

سپس باید فاصله یا dimens را تعریف کنیم
وارد مسیر res/values شده اگر فایل dimens.xml وجود نداشت آن را ایجاد کنید سپس کد های زیر را در آن قرار دهید.

کاری که این کد های بالا انجام می دهند تنظیم فاصله است (ما براتون به بهترین شکل ایجاد کرده ایم می توانید خودتان هم آنها را تغییر دهید)
حال یک کلاس باید ایجاد کنیم که به کلاس model معروف است و این کلاس کارش denot کردن یا نشان دادن نام و تعداد آهنگ و عکس برای هر cardview است پس یک فایل به نام  Album.java ایجاد کرده و کد های زیر را در آن قرار دهید.

کلاس بالا به getter و setter نیز معروف است.
حالا باید آلبوم های هرکدام در cardview نمایش دهیم به این منظور باید یک فایل به نام album_card.xml ایجاد کرده و ویژگی های مثل نام و تعداد اهنگ و عکس را در آن پیاده سازی کنیم.
پس فایل album_card.xml همانند زیر می شود.

حالا زمان ایجاد یک منو برای سه نقطه ای که زیر هر البوم است اگر به عکس با دقت نگاه کرده باشید هر البوم یک سه نقطه نیز دارد در اینجا ما منوی آن را ایجاد می کنیم.
پس یک فایل به نام menu_album.xml ایجاد کرده کدهای زیر را در آن قرار دهید.

شامل دو گزینه ی add to favorite و next است.
برای اینکه ما RecyclerView خودمان را render کنیم باید یک آداپتور ایجاد کنیم تا album_card.xml ما رو inflate کند پس یک کلاس به نام  AlbumsAdapter.java ایجاد کرده کد های زیر را در آن قرار دهید.قبلتر علت ایجاد آداپتور را مفصل توضیح داده ایم در سایت جستجو کنید.

کد های بالا ابتدا view هر یک از object ها رو پیدا کرده سپس کارهای لازم را با آنها انجام میدهند مثل قرار دادن متن عکس و… و در بخشی کلیک مرتبط سه نقطه نیر فعال کردیم تا با کلیک بروی آن یک منو دو واحدی نمایش داده شود و زمانی که بروی آنها کلیک شود Toast نمایش داده می شود.onBindViewHolder هم مقدار text را از model ما دریافت کرده سپس برای هر کدام از card ها ست می کند.
حالا یک فایل به نام activity_main.xml ایجاد کرده کد های زیر را در آن قرار دهید.

حالا یک فایل به نام content_main.xml که به نحوی بخش دیگری از همان activity_main.xml ما می باشد و کد های زیر را در آن قرار داده.

و در آخر بخش MainActivtiy ما که چند کار مهم را انجام میدهد
initCollapsingToolbar() نمایش یا hide کردن Toolbar
prepareAlbums() یکسری داده sample را در برنامه قرار می دهد.
GridLayoutManager برای نمایش Recyclerview در حالت Grid به جای نمایش آن به صورت لیست استفاده شده است.
GridSpacingItemDecoration برای به دست آوردن فاصله دقیق در اطراف هر Cardview
AlbumsAdapter برای قرار دادن هر کارد و محتویات آنها در Recyclerview استفاده شده است.
پس کد های زیر را در MainActivity.java قرار داده.

 
این آموزش هم به پایان رسید دوستان فکر نکنید ما کم توضیح دادیم ما برای هر بخش به صورت مجزا یک مطلب ایجاد کرده ایم بهتر است ابتدا آنها را مطالعه کنید سپس از این آموزش استفاده کنید.
 
موفق و موید باشید.

مطالعه بیشتر