PDA

View Full Version : تفاوت مابین LstView و RecyclerView



vobot_66
شنبه 22 خرداد 1395, 12:45 عصر
با سلام دوستان من یه داده با JSON دارم میخواستم ببینم اگه من اینو با ListView بنویسم با توجه به مقدار داده زیاد حدود 2500 تا ایا پرفورمانس من کمتر میشه باید از Recylcerview استفاده کنم؟
چون من شنیدم RecyclerView میاد بر اساس تعداد نمایش ایتم داد رو بر میداره ایا این درسته ؟

Nevercom
شنبه 22 خرداد 1395, 14:06 عصر
در حالت کلی RecyclerView پرفرمنس بهتری داره (بر اساس ادعای گوگل و نه تست شخصی)، اما معنیش این نیست که ListView ضعف زیادی در نمایش داره.

RecyclerView نسل بعدی ListView هست. تغییراتی که صورت گرفته به دو بخش عمده تقسیم میشه:

استانداردسازی الگوی Adapter: در اینجا یک الگو برای ادپتر ایجاد شده که بصورت پیشفرض الگوی ViewHolder رو در خودش داره. سابقاً در ادپتر لیست ویو هم این الگو رو پیاده سازی می کردیم، اما چون استانداردی وجود نداشت، هر توسعه دهنده به شیوه ی خودش انجامش میداد و اگر توسعه دهنده ای از این الگو اطلاعی نداشت، به دلیل اینکه این مسئله رو رعایت نکرده بود، با افت پرفرمنس مواجه میشد. پس در RecyclerView با یک API واحد و استاندارد مواجه میشیم که به خودی خود بعنوان بهبود در پرفرمنس درنظر گرفته میشه.
پشتیبانی از LayoutManager: لیست ویو عناصر درونش رو بصورت خطی عمودی نمایش میده. RecyclerView میتونه از الگوهای چینشی متفاوتی پشتیبانی کنه، درواقع RecyclerView به تنهایی میتونه جایگزین ListView و GridView بشه. پس کنترل خیلی بیشتری در نحوه ی نمایش عناصر رو دارید.


اگر سوالتون این هست که "آیا لیست ویو در نمایش تعداد زیادی آیتم خیلی ضعیف هست و آیا راه حل استفاده از RecyclerView هست"، پاسخ منفی هست. با همین لیست ویو هم میتونید پرفرمنس خوبی داشته باشید به شرطی که Adapter رو درست بنویسید.

hasan_esfahan
یک شنبه 23 خرداد 1395, 12:29 عصر
من یه نکته به جواب کامل Nevercom اضافه میکنم و ان هم این هست که


RecyclerView امکان ساپورت چند لایوتی دارد مثلا شما میتونی توش از چند تا لایوت استفاده کنی

خبر گزاری ها باهاش اپ های جالب در می اورند

http://enoent.fr/blog/2015/01/18/recyclerview-basics/