Android RecyclerView.Adapter onCreateViewHolder() working -


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