how to display data in different view holder in android -


public class galleryadapter extends recyclerview.adapter<recyclerview.viewholder> {      private final list<string> mlist;     private final context mcontext;     private final ongalleryitemclicklistener mongalleryitemclicklistener;     int [] heaightsize = new int[]{1390,1390,1200,1390,1456,1456,1390,1390,1377,1390};       public galleryadapter(list<string> verticallist, context context, ongalleryitemclicklistener galleryitemclicklistener) {         this.mlist = verticallist;         this.mcontext = context;         mongalleryitemclicklistener = galleryitemclicklistener;     }      private int dptopx(int px){         return (int) (px/ resources.getsystem().getdisplaymetrics().density);     }      @override     public recyclerview.viewholder oncreateviewholder(viewgroup parent, int viewtype) {         view itemview;          switch (viewtype) {             case 1:                 itemview = layoutinflater.from(parent.getcontext())                         .inflate(r.layout.main_video_gallery_layout, parent, false);                 return new mainvideoviewholder(itemview);             case 2:                 itemview = layoutinflater.from(parent.getcontext())                         .inflate(r.layout.grid_item_layout, parent, false);                 return new myviewholder(itemview);         }           return null;     }      @override     public void onbindviewholder(final recyclerview.viewholder holder, final int position) {         int height = dptopx(heaightsize[position % 9]);         if (holder instanceof mainvideoviewholder) {              try {                  glide.with(mcontext).load((new file(mcontext.getexternalfilesdir(null) + "/" + mlist.get(position))))                         .thumbnail(0.1f)                         .crossfade().override(500,500)                         .placeholder(r.drawable.placeholder)                          .diskcachestrategy(diskcachestrategy.result)                         .listener(new requestlistener<file, glidedrawable>() {                             @override                             public boolean onexception(exception e, file model, target<glidedrawable> target, boolean isfirstresource) {                                 ((mainvideoviewholder) holder).progressbar.setvisibility(view.gone);                                 return false;                             }                              @override                             public boolean onresourceready(glidedrawable resource, file model, target<glidedrawable> target, boolean isfrommemorycache, boolean isfirstresource) {                                 ((mainvideoviewholder) holder).progressbar.setvisibility(view.gone);                                  return false;                             }                          })                         .into(((mainvideoviewholder) holder).image_main_video);               } catch (runtimeexception ex) {                 // assume corrupt video file.             }              ((mainvideoviewholder) holder).text_main_video_name.settext(mlist.get(position).replace(constant.file_extension, ""));             ((mainvideoviewholder) holder).text_datetime.settext(getfilecreationdate(mlist.get(position)));              ((mainvideoviewholder) holder).image_main_video.setonclicklistener(new view.onclicklistener() {                 @override                 public void onclick(view v) {                      string value = mlist.get(position);                     if (mongalleryitemclicklistener != null) {                         mongalleryitemclicklistener.ongalleryitemclicked(value);                     }                 }             });         } else {               try {  //                ((myviewholder) holder).rl_mainlayout.getlayoutparams().height=height;                 glide.with(mcontext).load((new file(mcontext.getexternalfilesdir(null) + "/" + mlist.get(position))))                         .thumbnail(0.1f)                         .crossfade()                         .override(600, 200)                         .diskcachestrategy(diskcachestrategy.result)                         .listener(new requestlistener<file, glidedrawable>() {                             @override                             public boolean onexception(exception e, file model, target<glidedrawable> target, boolean isfirstresource) {                                 ((myviewholder) holder).progressbar.setvisibility(view.gone);                                 return false;                             }                              @override                             public boolean onresourceready(glidedrawable resource, file model, target<glidedrawable> target, boolean isfrommemorycache, boolean isfirstresource) {                                 ((myviewholder) holder).progressbar.setvisibility(view.gone);                                  return false;                             }                          })                         .into(((myviewholder) holder).image_tumbnail);               } catch (runtimeexception ex) {                 // assume corrupt video file.             }              ((myviewholder) holder).text_video_name.settext(mlist.get(position).replace(constant.file_extension, ""));             ((myviewholder) holder).text_date_time.settext(getfilecreationdate(mlist.get(position)));              ((myviewholder) holder).image_tumbnail.setonclicklistener(new view.onclicklistener() {                 @override                 public void onclick(view v) {                      string value = mlist.get(position);                     if (mongalleryitemclicklistener != null) {                         mongalleryitemclicklistener.ongalleryitemclicked(value);                     }                 }             });         }       }      @override     public int getitemcount() {         if (mlist == null)             return 0;         return mlist.size();     }      @override     public int getitemviewtype(int position) {         if (mlist != null) {             if (position == 0) {                 return 1;             } else {                 return 2;             }          }         return 0;     }      private string getfilecreationdate(string filename) {         string filepath = mcontext.getexternalfilesdir(null) + "/" + filename;         file = new file(filepath);         if (from.exists()) {             simpledateformat sdf = new simpledateformat("mm/dd/yyyy hh:mm:ss");             return sdf.format(new date(from.lastmodified()));         }         return "";      }      public static class mainvideoviewholder extends recyclerview.viewholder {         public final textview text_main_video_name;         public final textview text_datetime;         public final imageview image_main_video;         public final progressbar progressbar;         public mainvideoviewholder(view itemview) {             super(itemview);             text_main_video_name = (textview) itemview.findviewbyid(r.id.text_main);             text_datetime = (textview) itemview.findviewbyid(r.id.text_datetime);             image_main_video = (imageview) itemview.findviewbyid(r.id.image_main_video);             progressbar=(progressbar) itemview.findviewbyid(r.id.progress);         }     }      public class myviewholder extends recyclerview.viewholder {         public final textview text_video_name;         public final cardview card_containter;         public final textview text_date_time;         public final progressbar progressbar;         private final imageview image_tumbnail;         private final linearlayout rl_mainlayout;          public myviewholder(view view) {             super(view);             text_video_name = (textview) view.findviewbyid(r.id.text_video_name);             card_containter = (cardview) view.findviewbyid(r.id.card_container);             text_date_time = (textview) view.findviewbyid(r.id.text_date_time);             image_tumbnail = (imageview) view.findviewbyid(r.id.image_main_video);             progressbar = (progressbar) itemview.findviewbyid(r.id.progress);             rl_mainlayout=(linearlayout) itemview.findviewbyid(r.id.rl_main_layout);          }     }  } 

this adapter class code calling galleryadapter galleryadapter = new galleryadapter(verticallist,

galleryactivity.this, this);             gridlayoutmanager verticallayoutmanager                         = new gridlayoutmanager(galleryactivity.this,2);             verticallayoutmanager.setspansizelookup(new gridlayoutmanager.spansizelookup() {                 @override                 public int getspansize(int position) {                       return position == 0 ? 2 : 1;                 }             });             rv_videolist.setlayoutmanager(verticallayoutmanager);             rv_videolist.setadapter(galleryadapter); 

i want set 0 position item bigger coming correct in below screen , want set position 1 medium size item , position 2,3 smaller size 4th position medium size , 5th , 6th smaller size , respectively .. current screen below

enter image description here

expected screen: expect postion 0 should below 2 item in 1 row:

enter image description here

your code long, below might key.

 public int getspansize(int position) {      return position == 0 ? 2 : 1;  } 

getspansize should return size of cell occupy. return 2 @ position 0 grid size 2 means full width, return 1 @ other grid size 2 means half width.

if want first row have full width , after each row have 3 items size 2:1:1, grid size 4

new gridlayoutmanager(galleryactivity.this, 4); 

and have spansizelookup respectively. note position not column position position in whole item.

 public int getspansize(int position) {      // first item full width       position 1, 4, 7... medium, other small      return position == 0 ? 4 : position % 3 == 1 ? 2 : 1;   } 

i'm not sure correctly understood logic, hope help


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -