شما این محصولات را انتخاب کرده‌اید

سبد خرید

کد: 326
بازدید: 776

ریسایکلر ویو

 

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

ریسایکلر ویو  ورژن جدید و پیشرفته ی listview ست که با توجه به پیشرفته تر بودن کارایی بالاتری دارد. این ویجت می تواند به نسبت ورژن قبلی خودش listview داده ها و اطلاعات بیشتری را با چند view محدود به شکل کاربردی به ما نمایش دهد. ازجمله قابلیت ها این دو ورژن یعنی Recyclerview یا viewgroup نسبت به listview یا grideview این است که:

مدیریت و تسلط بر ورژن جدید راحتتر است
سرعت بارگیری و لود شدن آن به نسبت افزایش داشته است
از قابلیت های جذاب در Recyclerview این است که این امکان را به برنامه نویس می دهد که برای اضافه و یا حذف شدن آیتم ها از انیمیشن استفاده کند.

در Recyclerview همه ی آیتم هایی که در لیست هستند قابل مشاهده نیست و فقط ما آیتم هایی را می بینیم که در صفحه نمایش قرار گرفته اند.
Recyclerview می تواند لایه های متنوعی را از جمله LinearlayoutManager و gridlayoutManager انجام بدهد.
از مزیت این ویجت این است که مقدار رم کمتری را از گوشی کاربر اشغال می کند.

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

در ویجت Recyclerview این امکان را برای برنامه نویس فراهم می کند که آیتم ها را به صورت افقی horizontal و عمودی نمایش بدهد.
Recyclerview می تواند لیستی از view ها را به نمایش بگذارد که قابلیت scroll داشته و محدود نیست. مثل لیستی از مخاطبین و یا لیست inbox در نرم افزار email و…

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

نکته: داشتن اطلاعاتی در مورد listview می تواند مارا به فهمی بهتر از Recyclerview برساند.

در اندروید استودیو یک پروژه جدید با نام RecyclerView و یک Empty Activity ایجاد می کنیم. برای استفاده از RecyclerView باید کتابخانه آنرا به پروژه اضافه کنیم که از کتابخانه های متعلق به support است. کتابخانه را به دو صورت اضافه کردن دستی به فایل build.gradle و یا مسیر:

 

File > Project Structure > Modules (app) > Dependencies > + > Library Dependency
به پروژه اضافه می کنیم:

 

 

v7:27.0.2′ } پس از سینک شدن موفق پروژه، یک ویجت/کامپوننت از نوع RecyclerView در لایه اکتیویتی اصلی پروژه یعنی activity_main.xml تعریف می کنیم:سپس RecyclerView را به فایل جاوا اکتیویتی اضافه می کنیم:

MainActivity.java:

مانند مبحث ListView برای مدیریت ویجت / view ها و ارتباط آنها با عملگرهای جاوا، از کلاسی استفاده می کنیم که Model نامیده می شود. استفاده از چنین کلاسی لازم نیست اما باعث می شود مدیریت بهتری روی پروژه داشته باشیم. در کلاس Model از متدهایی که اصطلاحا Getter و Setter نامیده می شوند برای مقداردهی به متغیرها و یا مقدارگیری از آنها استفاده می شود.
برای ساخت Model، یک کلاس با نام دلخواه Item به پکیج اصلی پروژه اضافه می کنیم.

می خواهیم هر یک از آیتم های RecyclerView حاوی یک تصویر پروفایل، نام، متن پیغام و تاریخ ارسال باشد.
چهار متغیر در کلاس تعریف کردم که یکی برای نمایش تصویر شخص و سه مورد دیگر برای نمایش نام، متن پیغام و تاریخ استفاده خواهد شد. در ادامه متدهای سازنده (Constructor) و همچنین Getter & Setter را به کلاس مدل اضافه می کنیم:

در ابتدای مبحث گفتیم برای نمایش آیتم های لیست از یک قالب مشترک استفاده می شود که هر آیتم با همان فرمت و چینش طراحی به RecyclerView فرستاده می شود. من همان قالبی که در مبحث ListView (لیست سفارشی) طراحی کرده بودم را در این پروژه استفاده می کنم. یک فایل با نام list_item به دایرکتوری layout پروژه اضافه می کنیم.

این لایه شامل یک ImageView و سه TextView است. یک تصویر هم در دایرکتوری drawable برای نمایش مکان آواتار در قسمت Preview اندروید استودیو قرار دادیم.
در مرحله بعد برای مدیریت view ها و ارسال داده های دریافتی (شامل آدرس تصویر پروفایل، نام، متن پیغام و تاریخ) به آنها، نیاز به ساخت یک کلاس Adapter داریم. بنابراین یک کلاس دیگر با نام دلخواه ItemAdapter به پکیج اصلی پروژه اضافه می کنیم.
ما در ListView برای بهینه تر شدن برنامه، یک ViewHolder تعریف می کنیم. در RecyclerView هم این مورد درون کتابخانه تعبیه شده و برای تعریف view ها باید از ViewHolder استفاده کنیم. داخل کلاس آداپتر قبل از هرکار ابتدا یک کلاس داخلی (inner class) برای ViewHolder ایجاد و آنرا تکمیل می کنیم:

 

یک کلاس داخلی با نام دلخواه MyViewHolder به کلاس ItemAdapter اضافه کردیم. این کلاس باید از کلاس ViewHolder ارث بری شود و با توجه به اینکه ViewHolder در کتابخانه RecyclerView تعریف شده، کلاس را باید از RecyclerView.ViewHolder ارث بری کنیم.
View ها را داخل MyViewHolder تعریف می کنیم:

 

در بدنه کلاس MyViewHolder خطایی مشاهده می شود که با قراردادن نشانگر روی آن و زدن alt+Enter از ما می خواهد متد سازنده را به کلاس اضافه کنیم:

 

حالا view ها را درون متد سازنده به متغیر مربوط به خودشان متصل می کنیم:

ملاحظه می کنید در اینجا قبل از findViewById به واسطه itemView که از جنس View است تعریف شده و به تنهایی نمی توان استفاده کرد. در واقع itemView شامل هریک از آیتم های RecyclerView می باشد. فعلا با MyViewHolder کاری نداریم.
پس از ساخت ViewHolder، لازم است کلاس ItemAdapter از RecyclerView.Adapter ارث بری شود.
اگر طبق مراحل پیش رفته باشید مشاهده می کنید در لیست پیشنهادی، در مقابل Adapter عبارت VH (مخفف ViewHolder) قید شده به این معنی که در اینجا باید کلاسی که از ViewHolder اصطلاحا کاستوم کردیم را وارد کنیم:

در نهایت کلاس به اینصورت تکمیل می شود:

 

مجدد در بدنه کلاس اصلی هم خطا میگیرم که با alt+Enter متدهای ضروری Adapter را اضافه می کنیم:

آموزش کار با ریسایکلر ویو در اندروید استودیو.
0 از 0 رای

نویسنده

کد نویسان جوان
رسالت ما کمک به موفقیت هرچه تمام تر شماست ، کد نویسان جوان

1 × چهار =