android recyclerview与网格布局管理器孩子身高适合父母时,2个或更少的孩子



RecyclerView 在更改 spanCount 时更改子宽度:

GridLayoutManager manager = new GridLayoutManager(getActivity(), 2);

回收器查看 2 列

GridLayoutManager manager = new GridLayoutManager(getActivity(), 1);

回收器查看 1 列

我的问题是,有没有办法有同样的行为,但身高让我让孩子适应父母的身高?

如果您看到上一张图片,则 2 个项目下有一个空格,但此回收器视图上没有更多项目。我想将所有空间用于当前项目。

在 onCreateViewHolder 中,子视图是在 ViewHolder 中创建的。我所做的是将父级(回收器视图(高度发送到ViewHolder构造函数,然后更改ViewHolder大小:

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View rowView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_list_item, parent, false);
    if(getItemCount()<3){
        return new ViewHolder(rowView, this.onItemClickListener,parent.getHeight());
    }
    return new ViewHolder(rowView, this.onItemClickListener);
}

 public ViewHolder(View itemView, OnItemClickListener onClickListener,int height) {
        super(itemView);
        ButterKnife.bind(this, itemView);
        this.onClickListener = onClickListener;
        itemView.setOnClickListener(this);
        this.view.setMinimumHeight(height);
    }

this.view 是 groupView。

我不知道这是最好的方法,但现在有效!

相关内容

最新更新