当更改spanCount时,RecyclerView会更改子宽度:
GridLayoutManager manager = new GridLayoutManager(getActivity(), 2);
GridLayoutManager manager = new GridLayoutManager(getActivity(), 1);
我的问题是,有没有办法有相同的行为,但身高可让我适合父母身高的孩子?
如果您看到普通图片,则2个项目下方有一个空格,但此RecyclerView上没有更多项目。我想用当前项目的所有空间。
答案 0 :(得分:0)
在onCreateViewHolder中,使用ViewHolder创建子视图。我所做的是向ViewHolder构造函数发送父级(recyclerView)高度,然后更改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。
我不知道这是最好的方法,但现在有效!