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