根据商品的高度设置RecyclerView的高度

时间:2019-12-11 11:10:47

标签: java android android-recyclerview

是否有任何方法可以根据商品的height设置Recyclerview的高度。像(项目的高度*可以设置为任意数量的项目数)应该是RecyclerView加载时的高度。

我可以在单击项目时设置其高度。  //这是我的界面

@Override
    public void onSubCategoryClicked(View view, int position) {

            reyclerview.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, view.getHeight()*2));


}

现在,我想在加载时设置recyclerview的高度。

1 个答案:

答案 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);