رونمایی از پخته‌ترین و کاربردی‌ترین محصولات آموزشی سون‌لرن با کلی آفرهای ویژه🔥
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ احمدرضا عبداللهی
سوال هنگام log گرفتن
جامعه جاوا (اندروید) ایجاد شده در ۲۲ آبان ۱۴۰۲

سلام وقت بخیر

در تصویر زیر وقتی برای بار اول scroll می‌کنم تا item آخر، مثلا 20 تا item داریم تا item 12 متد oncreate کال میشه و دیگه کال نمیشه وفقط متد onbindviewholder کال میشه؟

در حالی که طبق گفته‌های استاد نباید اینطور باشه!

Capture-bnmX.png

سلام وقت بخیر 

onCreateViewHolder زمانی فراخوانی می‌شود که یک view جدید باید ایجاد بشه که این هم براساس سایز صفحه متفاوت است هر تعداد  viewکه قابلیت نمایش داده باشد را می‌سازد که مسئول ایجاد یک نمونه ViewHolder است. درحالیکه onBindViewHolder زمانی فراخوانی میشه که item جدید را داخل view موجود نمایش دهد یعنی وظیفه آپدیت دیتای جدید در view را دارد.
دقت کنید که گفتم view ای که موجود است .
کلا وظیفه recyclerView بازیافت view هست یعنی نیاز نباشد به ازای 100 تا item 100 تا ویو بسازیم که باعث مصرف زیاد مموری و کند شدن برنامه میشه در این حالت مثلا 12 تا ویو میسازه و دیتای این 12 تا رو هر بار با item جدید در onBind آپدیت میکنه.


 

سعیده جمالی ۲۳ آبان ۱۴۰۲، ۰۷:۴۸