2015-05-20 2 views
0

Я пытаюсь использовать StaggeredGridLayoutManager в RecyclerView, и я хочу иметь возможность вручную устанавливать, какие столбцы и строки должен использовать элемент адаптера, но проблема в том, что он полностью зависит от порядка в котором элементы получены, и это немного случайно с точки зрения размещения, вот что я хочу сделать. enter image description hereВручную разместить RecyclerView StaggeredGrid items

Вот мой адаптер:

class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ContactViewHolder>{ 

    List<PromotionList> list; 

    public RecyclerViewAdapter(List<PromotionList> list){ 
     this.list = list; 
    } 

    @Override 
    public ContactViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.ad_banner, null); 

     return new ContactViewHolder(v); 
    } 

    @Override 
    public void onBindViewHolder(ContactViewHolder holder, int position) { 

     PromotionList listItem = list.get(position); 

     Picasso.with(getActivity()) 
       .load(listItem.getImageURL()) 
       .into(holder.promo); 
     } 

    @Override 
    public int getItemCount() { 
     return list.size(); 
    } 

    public class ContactViewHolder extends RecyclerView.ViewHolder { 

     @InjectView(R.id.div) 
     ImageView promo; 

     public ContactViewHolder(View v){ 
      super(v); 
      ButterKnife.inject(this, v); 
     } 
    } 
} 

Вот мой RecyclerView:

rv.setHasFixedSize(true); 
rv.setLayoutManager(new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL)); 
rv.setAdapter(new RecyclerViewAdapter(list)); 

ответ

0

SGLM поддерживает только один срок или полные детали пролетных. Мы планируем поддерживать произвольные размеры пролетов. FYI, GridLayoutManager поддерживает это (ваш пример выглядит как сетка, а не шахматная сетка).

+0

Это потрясающая новость, есть ли примеры для этого? Я в основном загружаю изображения из синтаксиса (backend) и добавляю их в адаптер списка. Как мне это сделать? Спасибо за помощь и помощь. – Rhynoboy

Смежные вопросы