آموزش کار با RecyclerView در اندروید – قسمت 1

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

ویجت RecyclerView چی هست؟

RecyclerView یک ویجت بسیار پیشرفته و قابل انعطاف تر ، به نسبت ListView هست که میتونه داده های بسیار زیاد رو با چند View محدود ، به صورت کارا و موثر به کاربر نشون بده . شما می تونید از RecyclerView برای داده هایی که در زمان اجرای اپلیکیشن (RunTime) بنا به رفتار کاربر تغییر می کنند و یا درخواست های سمت سرور و گرفتن داده ها استفاده کنید .

RecyclerView با فراهم کردن دو چیز ، به سادگی می تونه داده های زیاد رو اداره کنه و اون ها رو نمایش بده

1 – استفاده از Layout managers برای تثبیت موقعیت Itemها

2 – انیمیشن های پیشفرض ، برای عملیات های معمول ، مثل درج کردن به RecyclerView و یا حذف کردن از اون

 

RecyclerView

 

مقایسه ویجت RecyclerView با ListView

اغلب برنامه نویس هایی رو دیدم که سر استفاده کردن از ویجت RecyclerView یک ترس پنهانی رو دارند . و در جوابم ، وقتی که ازشون پرسیدم : “چرا از RecyclerView استفاده نمی کنی ؟

گفتند : “آقا حوصله داری هاااا؟؟!! 😒 کار ما رو که همین ListView هم راه می ندازه ، کی حالا حوصله داره بره RecyclerView یاد بگیره 😐”

قبل از این که بخوایم به آموزش کار با RecyclerView بپردازیم ، قصد دارم که یک مقایسه ای بین این دو ویجت داشته باشم ، تا بهتر بتونید راجع به استفاده از بین این دو ویجت تصمیم گیری کنید . و اون دسته از دوستانی که همچنان اصرار به استفاده از ListView دارند ، تغییر نظر بدن و بیان سمت این ویجت قدرتمند .

1 – نیاز به استفاده از ViewHolder برای هر Viewایی که قراره recycle بشه : در بعضی از کاربردهای ListView دیده میشد که برای پیاده سازی آداپتر ، نیازی به تعریف الگو ViewHolder توسط برنامه نویسی نبود . که این کار ، با کاهش بازدهی ListView همراه بود . اما در recyclerView با این که شرایط برای تعریف الگوی ViewHolder کمی پیچیده میشه ؛ ولی این پیچیدگی به عمکرد و بازدهی بهتر میارزه 😉

2 – استفاده همزمان از چندین ViewHolder : در ListView شما فقط قادر به تعریف یک ViewHolder بودید . و اگر چنانچه قصد داشتید چندین آیتم (یا همون ViewHolder) رو داخل ListView نمایش بدید ؛ دیگه قدرت این کار رو نداشتید . اما بر خلاف ListView ، ویجت RecyclerView این قدرت مانور رو به شما میده ، که همزمان چندین ViewHolder رو تعریف کنید و اون ها رو به راحتی به RecyclerView تون اضافه کنید .

3 – اسکرول کردن عمودی و افقی : شما در RecyclerView ، بر خلاف ListView می تونید آیتم هاتون رو به صورت طراحی کنید ، که هم قابلیت اسکرول کردن به صورت افقی و هم به صورت عمودی رو داشته باشند . در صورتی که در ListView شما فقط اجازه داشتید که به صورت عمودی ، آیتم هاتون رو اسکرول کنید .

خب فلن همین سه دلیل کافیه ، حالا باز بریم جلوتر ، از RecyclerView بیشتر براتون میگم 🙂

امیدوارم که آموزش کار با RecyclerView براتون مفید واقع بشه

مدت زمان آموزش : 00:16:32

دانلود رایگان

نظرات

  • قابلیت چند کلیک

    سلام
    بنده یه recyler view ساختم که شامل چند قسمت هست
    مثل عکس و متن و و و
    الان میخوام مثلا روی عکس کلید کنم یه سری کارا انجام بده
    روی متن کلید میکنم یه سری کارا دیگه
    سوال کلیم اینه که ایا میشه recycler view چندتا onclcik داشته باشه؟؟؟

    • سلام بر شما javadas
      بابت این مشکل تون باید بگم که توی تابع onBindViewHolder ریسایکلرویوتون برای اون ویجت هایی که مدنظرتون هست باید رویداد کلیک رو تعریف کنید

  • تشکر

    مررسی خیلی خیلی عالی بود.

    • سلام بر شما sonia123
      ممنون بابت نظر لطفتون ، از اینکه این آموزش مورد پسندتون واقع شده ، بسیار بسیار خوشحالیم 🙂

  • کلیلک روی کارد ویو

    سلام وقت بخیر
    من توی آداپتر ریسایکلر ویو میخوام وقتی روی کارد ویو کلیک میکنم برم به فرگمنت بعدی، منتها از متد beginTransaction
    ایراد میگیره میگه مقدار دهی نشده، در صورتی که دقیقا شبیه همون کدی که توی فرگمنت برای فراخوانی فرگمنت بعدی هست رو نوشتم
    ممنون میشم کمک کنید.

  • علی110

    سلام و خداقوت
    من تا حالا چند بار نظر دادم و این مطلب رو گفتم، اما باز هم میگم…
    وااااقعااااا سایت عالیییییی دارید و آموزش ها ، هم محتوا و هم طراحی و نوع توضیحات، بسیار بسیار عالیییه!!!
    بهتون تبریک میگم…
    یه خداقوت اساسی به همه دست اندرکاران سایت، علی الخصوص آقای باقری نیا؛ چون تا حالا خیلی از آموزش هاشون رو دیدم و واقعا راضی ام.
    خدا خیرتون بده!!!
    یا علی

  • تشکر از تمامی آموزش های شما!

    سلام، جدا خسته نباشید میگم بهتون.
    همه ی آموزش های وبسایت و تمامی محتوای وبسایت واقعا مفید و کاربردی هستند.

    • سلام
      از این که تیم ویا تونسته رضایت شما دوست خوبم رو جلب کنه ، بسیار خوشحالم . و این باعث افتخار ما هست که تونستیم شما رو از خودمون راضی نگه داریم

  • سلام و تشکر

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

    • سلام و خسته نباشید خدمت شما
      انشالله طاعات و عبادات شما هم مورد قبول درگاه حق قرار گرفته باشه
      از این که از کیفیت ویدئوها راضی هستید ، بسیار خوشحالیم . انشالله ویدئوهایی که مد نظر شما هست رو در آینده ای نه چندان دور ضبط خواهیم کرد
      پیروز و موفق باشید

  • برای ثبت نظر باید ابتدا وارد اکانت خود شوید