java - How to make one view bigger than the other views in RecyclerView? -


i have few images in json api, , managed fetch images using volley library. used recyclerview image adapter display image views vertically in 2 columns, want make 1 image big , display first image user can click on. image changed each interval of time. basically, api backend task setting time , telling image displayed on top of recyclerview if not images must have same size , shown in 2 columns vertically.

i have square layout class recyclerview. want know how can this. concept fine.

example

you have create 2 view 1 small item other header item , in onbindviewholder have bind accordingly following code example of news article app , should help.

public class adapternewsarticleslistwithheader extends recyclerview.adapter<recyclerview.viewholder> {      private list<newsarticles> items = new arraylist<>();      private context ctx;     private newsarticles header;     private static final int type_header = 0;     private static final int type_item = 1;     private onitemclicklistener monitemclicklistener;      public interface onitemclicklistener {     void onitemclick(view view, newsarticles obj, int position);     }      public void setonitemclicklistener(final onitemclicklistener mitemclicklistener) {     this.monitemclicklistener = mitemclicklistener;     }      // provide suitable constructor (depends on kind of dataset)     public adapternewsarticleslistwithheader(context context, newsarticles header, list<newsarticles> items) {     this.items = items;     this.header = header;     ctx = context;     }      public class viewholder extends recyclerview.viewholder {     // each data item string in case     public textview title;     public textview short_content;     public textview date;     public imageview image;     public linearlayout lyt_parent;      public viewholder(view v) {         super(v);         title = (textview) v.findviewbyid(r.id.title);         short_content = (textview) v.findviewbyid(r.id.short_content);         date = (textview) v.findviewbyid(r.id.date);         image = (imageview) v.findviewbyid(r.id.image);         lyt_parent = (linearlayout) v.findviewbyid(r.id.lyt_parent);     }     }      class viewholderheader extends recyclerview.viewholder {     public textview title;     public textview date;     public imageview image;     public linearlayout lyt_parent;      public viewholderheader(view v) {         super(v);         title = (textview) v.findviewbyid(r.id.title);         date = (textview) v.findviewbyid(r.id.date);         image = (imageview) v.findviewbyid(r.id.image);         lyt_parent = (linearlayout) v.findviewbyid(r.id.lyt_parent);     }     }      @override     public recyclerview.viewholder oncreateviewholder(viewgroup parent, int viewtype) {     if (viewtype == type_header) {         view v = layoutinflater.from(parent.getcontext()).inflate(r.layout.row_header, parent, false);         return new viewholderheader(v);     } else if (viewtype == type_item) {         view v = layoutinflater.from(parent.getcontext()).inflate(r.layout.row_news, parent, false);         return new viewholder(v);     }     return null;     }      // replace contents of view (invoked layout manager)     @override     public void onbindviewholder(recyclerview.viewholder holder, final int position) {     if (holder instanceof viewholderheader) {         viewholderheader vheader = (viewholderheader) holder;         vheader.title.settext(header.gettitle());         vheader.date.settext(header.getdate());         picasso.with(ctx).load(header.getimage()).into(vheader.image);         vheader.lyt_parent.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view view) {                 //todo: thing             }         });      } else if (holder instanceof viewholder) {         final newsarticles c = items.get(position);         viewholder vitem = (viewholder) holder;         vitem.title.settext(c.gettitle());         vitem.short_content.settext(c.getshort_content());         vitem.date.settext(c.getdate());         picasso.with(ctx).load(c.getimage()).into(vitem.image);         vitem.lyt_parent.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view view) {                 //todo: thing             }         });     }      }      //    need override method     @override     public int getitemviewtype(int position) {     if (ispositionheader(position)) {         return type_header;     }     return type_item;     }      private boolean ispositionheader(int position) {     return position == 0;     }      public newsarticles getitem(int position) {     return items.get(position);     }      // return size of dataset (invoked layout manager)     @override     public int getitemcount() {     return items.size();     }  } 

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? -