android

android - 如何在水平recyclerview中添加动态单元格的数量,该动态单元格跨到整个宽度

发布于 2020-03-27 11:59:38

我想拥有一个水平的recyclerview或一个类似的视图,该视图可以动态地覆盖整个视图的整个宽度,并且该视图将无法滚动。因此,例如,水平recyclerview的宽度将为match_parent,如果我们指定其宽度为4,则recyclerview的整个宽度将在4个项目之间平均分配,即使有10个项目也是如此。

查看更多

查看更多

提问者
Julie
被浏览
21
ph7 2019-07-04 01:22

一种方法是将显示宽度除以项目计数。

在您的适配器中,您有方法,从那里您可以获得项目数

    @Override
public int getItemCount() {
    return your_items.length;
}

onCreateViewHolder可以更改项目布局的宽度

 @Override
public MyAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent,
                                               int viewType) {
    // create a new view
    View v = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.item_view, parent, false);

    //get device screen width
    int width  = Resources.getSystem().getDisplayMetrics().widthPixels;
    //set your item view width
    v.getLayoutParams().width = width / getItemCount() ;

    MyViewHolder vh = new MyViewHolder(v);
    return vh;
}

未经测试,但应该可以。