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。
我不知道这是最好的方法,但现在有效!