2016-09-12 29 views
-2

所以,通常情况下,一个RecyclerView是水平或垂直象下面图:做一个“多” recyclerview

enter image description here

我具有产生两个以上也没有问题。但现在,我想制作一个RecyclerView这是“多行”-ey(我不知道这是否是一个正确的方式来命名它)。基本上,就像在记事本中一样,如果选中“Wrap Text”,则屏幕外的文本将被发送到下一行。

所以行为就像HorizontalRecyclerView,但是这些项目在下面之前会先水平填充。

假设每个子项的大小都是相同的,那么它也将是一件好事,让它在屏幕上居中。

类似像:

enter image description here

但不喜欢(这不是在屏幕上居中):

enter image description here

顺便说一句,我有点喜欢我的藏品是由RecyclerView管理,而不是TableLayout,因为我从未使用过TableLayout之前,RecyclerView似乎是重用集合布局的最有效方式。

+0

你想recyclerView的项目中所示网格类型的布局?那么@Ravi的答案是正确的。 –

回答

4

设置GridLayoutManagerRecyclerView

mRecycler.setLayoutManager(new GridLayoutManager(context, numberOfColumns)); 

参考:12

+0

有什么方法可以动态设置列数?就像Vertical和Horizo​​ntal'RecyclerView'一样,可以动态地“调整”屏幕大小。 –

+0

在这种情况下,您可以找到屏幕大小并根据需要执行自己的逻辑。例如,如果您的单元格大小为200,屏幕大小为800,则可以有3列或4列 –

0

有3种,通过它可以安排你RecyclerView布局可能途径。

  • LinearLayoutManger - 传统列表Look here
  • GridLayoutManager - 用于表视图Look here
  • StaggeredGridLayoutManager - 交错网格形成Look here

[LinearLayout Image]

[Grid Layout Image]

[Staggered Grid Image]

对于你的问题,你可以使用GridLayoutManager作为@Ravi回答

mRecycler.setLayoutManager(new GridLayoutManager(context, numberOfColumns)); 

对于动态改变列数,你可以参考this link