首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用StaggeredGridLayoutManager订购itens

如何用StaggeredGridLayoutManager订购itens
EN

Stack Overflow用户
提问于 2020-03-17 12:36:22
回答 1查看 68关注 0票数 0

我正在创建一个网格,你可以在下面的图片中看到。

输入列表:{“位置0”、“位置1”、“位置2”、“位置3”、“位置4”、.}

问题是,我想要一个有两种组件的菜单。

小->在图像中的位置0

巨型->在图像中的位置2

因此,当我的适配器从第4位置创建项目时,它是不正常的。

预期输出:

位置1,位置2,位置3

位置4,位置5,位置6

代码语言:javascript
复制
public class SampleRecyclerViewAdapter extends RecyclerView.Adapter<SampleViewHolders> {
private List<ItemObject> itemList;
private Context context;

public SampleRecyclerViewAdapter(Context context,
                                 List<ItemObject> itemList) {
    this.itemList = itemList;
    this.context = context;
}

@Override
public SampleViewHolders onCreateViewHolder(ViewGroup parent, int viewType) {
    View layoutView = LayoutInflater.from(parent.getContext()).inflate(
            R.layout.book_list_item, null);
    SampleViewHolders rcv = new SampleViewHolders(layoutView);
    return rcv;
}

@Override
public void onBindViewHolder(SampleViewHolders holder, int position) {
    holder.bookName.setText(itemList.get(position).getName()  + position);

    if (position % 2 == 0) {
        holder.itemView.setMinimumHeight(250);
    } else {
        holder.itemView.setMinimumHeight(300);
    }
}

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

}

EN

回答 1

Stack Overflow用户

发布于 2020-03-17 12:42:30

您应该为查找大小添加侦听器。

代码语言:javascript
复制
mGridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
  @Override
   public int getSpanSize(int position) {
    return //do your logic here
  }
});

如果要添加跨距计数

代码语言:javascript
复制
GridLayoutManager gridLayoutManager = new GridLayoutManager(this, //count);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60722578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档