i using recyclerview.adapter little confused regarding working of method oncreateviewholder.
@override public recyclerview.viewholder oncreateviewholder(viewgroup viewgroup, int viewtype) { if(viewtype==type_item) { view mview = layoutinflater.from(viewgroup.getcontext()).inflate(r.layout.inflate_common_item, viewgroup, false); viewholder vh = new viewholder(mview); return vh; } else { view mview = layoutinflater.from(viewgroup.getcontext()).inflate(r.layout.inflate_uncommon_item, viewgroup, false); viewholderfooter vh = new viewholderfooter(mview); return vh; } } so incase have 10 items in list each item method called , every time new viewholder created of course it'll 1 time each view question when using listview , baseadapter them store viewholder in tag , use that. don't create viewholder each item.
@override public view getview(int position, view convertview, viewgroup parent) { myviewholder mviewholder; if(convertview == null) { convertview = inflater.inflate(r.layout.layout_list_item, null); mviewholder = new myviewholder(); convertview.settag(mviewholder); } else { mviewholder = (myviewholder) convertview.gettag(); } mviewholder.tvtitle = detail(convertview, r.id.tvtitle, mylist.get(position).gettitle()); mviewholder.tvdesc = detail(convertview, r.id.tvdesc, mylist.get(position).getdescription()); mviewholder.ivicon = detail(convertview, r.id.ivicon, mylist.get(position).getimgresid()); return convertview; } so not creating viewholders object. please me understand pros , cons.
thanks
oncreateviewholder creates new view holder when there no existing view holders recyclerview can reuse. so, instance, if recyclerview can display 5 items @ time, create 5-6 viewholders, , automatically reuse them, each time calling onbindviewholder.
its similar code in listview (checking if convertview null, , if not, grabbing existing viewholder tag), except, recyclerview, done automatically.
i suppose 1 of pros using recyclerview - don't need worry reusing viewholders listview. con is, recyclerview customisable, has little built in functionality - unlike listview not customisable, has lot of built in functionality.
Comments
Post a Comment