是否有任何方法可以根据商品的height设置Recyclerview的高度。像(项目的高度*可以设置为任意数量的项目数)应该是RecyclerView加载时的高度。
我可以在单击项目时设置其高度。 //这是我的界面
@Override
public void onSubCategoryClicked(View view, int position) {
reyclerview.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, view.getHeight()*2));
}
现在,我想在加载时设置recyclerview的高度。
答案 0 :(得分:1)
您可以对ViewHolder
进行充气和测量,而无需进行实际布局,这可以让您确定其大小并将其放在RecyclerView
的顶部。
请注意,要使其正常工作,您必须确保ViewHolder
的大小不受绑定数据的影响(无可调整大小的图像,只有具有固定行数的textview等),并且您只有一个项目视图类型(或至少所有高度相等。
初始化RecyclerView
后,在您的活动/片段内部:
// create viewholder using adapter - if you have custom view type use it instead of 0
RecyclerView.ViewHolder vh = recyclerView.getAdapter().createViewHolder(recyclerView, 0);
// measure item view using recycler views layout manager
recyclerView.getLayoutManager().measureChildWithMargins(vh.itemView, 0, 0);
// now carry over viewholder size onto recyclerView, for example show 5 items
recyclerView.getLayoutParams().height = vh.itemView.getMeasuredHeight() * 5;
// finally throw created viewholder into scrap pool so it can be reused
recyclerView.getRecycledViewPool().putRecycledView(vh);