RecyclerView 使用 FlexboxLayoutManager 的不同高度的项目
RecyclerView items with different heights with FlexboxLayoutManager
如何在保持原始高度的同时连续显示我的 recycleview 项目?
我想将回收查看器与 FlexboxLayoutManager 一起使用。
每个项目通常都有自己的高度,具体取决于它们的内容。
但是,同一行上的每个 recycleview 项目总是以某种方式以相同的高度结束。
如何在保持原始高度的同时连续显示我的 recycleview 项目?
我需要这样显示的项目:
我试过没有成功:
(小物件总是伸长的)
我设置布局管理器的代码:
adapter = new ProductAdapter(getContext(), productsList);
layoutManager.setFlexWrap(FlexWrap.WRAP);
layoutManager.setFlexDirection(FlexDirection.ROW);
// layoutManager.setAlignContent(AlignContent.CENTER);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(adapter);
我试过了layoutManager.setAlignContent(AlignContent.CENTER);
但是,您不能在 FlexboxLayoutManager
中为回收查看器设置 alignContent
。
应用程序崩溃,因为 alignContent
是给 FlexboxLayout
(不是经理)的。
已编辑:
使用 StaggeredGridLayoutManager
时,这将解决问题。
但是,您将失去 FlexboxLayoutManager 的响应行为。
我为 StaggeredGridLayoutManager 创建了自己的响应行为:
DisplayMetrics displayMetrics = getActivity().getResources().getDisplayMetrics();
float dpWidth = displayMetrics.widthPixels / displayMetrics.density;
int spanCount = (int) (dpWidth / 222); // 222=total space for 1 item incl. margin
recyclerView.setLayoutManager(new StaggeredGridLayoutManager(spanCount, StaggeredGridLayoutManager.VERTICAL));
从你的图片来看我觉得你需要的是StaggeredGridLayoutManager
尝试像这样作为您的 RecyclerView
布局管理器:
recycler.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL));
如何在保持原始高度的同时连续显示我的 recycleview 项目?
我想将回收查看器与 FlexboxLayoutManager 一起使用。 每个项目通常都有自己的高度,具体取决于它们的内容。 但是,同一行上的每个 recycleview 项目总是以某种方式以相同的高度结束。
如何在保持原始高度的同时连续显示我的 recycleview 项目?
我需要这样显示的项目:
我试过没有成功:
我设置布局管理器的代码:
adapter = new ProductAdapter(getContext(), productsList);
layoutManager.setFlexWrap(FlexWrap.WRAP);
layoutManager.setFlexDirection(FlexDirection.ROW);
// layoutManager.setAlignContent(AlignContent.CENTER);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(adapter);
我试过了layoutManager.setAlignContent(AlignContent.CENTER);
但是,您不能在 FlexboxLayoutManager
中为回收查看器设置 alignContent
。
应用程序崩溃,因为 alignContent
是给 FlexboxLayout
(不是经理)的。
已编辑:
使用 StaggeredGridLayoutManager
时,这将解决问题。
但是,您将失去 FlexboxLayoutManager 的响应行为。
我为 StaggeredGridLayoutManager 创建了自己的响应行为:
DisplayMetrics displayMetrics = getActivity().getResources().getDisplayMetrics();
float dpWidth = displayMetrics.widthPixels / displayMetrics.density;
int spanCount = (int) (dpWidth / 222); // 222=total space for 1 item incl. margin
recyclerView.setLayoutManager(new StaggeredGridLayoutManager(spanCount, StaggeredGridLayoutManager.VERTICAL));
从你的图片来看我觉得你需要的是StaggeredGridLayoutManager
尝试像这样作为您的 RecyclerView
布局管理器:
recycler.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL));