【发布时间】:2018-09-20 23:06:08
【问题描述】:
如何在保持原始高度的同时连续显示我的 recycleview 项目?
我想使用带有 FlexboxLayoutManager 的 recycleviewer。 每个项目通常都有自己的高度,具体取决于它们的内容。 但是,同一行上的每个 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));
【问题讨论】:
-
参考此Link 将帮助您归档您想要的设计
-
那没有办法用 FlexboxLayoutManager 做到这一点?
标签: android android-recyclerview android-flexboxlayout