【发布时间】:2015-04-14 12:03:24
【问题描述】:
我在我的项目上创建了一个RecyclerView 水平。我希望有不同大小的水平行和多个垂直列,每个包含不同数量的行,如下图:
水平行数是可变的。第一列可以有四行,第二列可以有三,四……列数也是可变的。
结果就像一个电视指南,列是频道,行是发射。只是这不是电视 xD 的指南
我已经用这种方式完成了水平行:
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
recyclerView.setLayoutManager(layoutManager);
public class SimpleAdapter extends RecyclerView.Adapter<SimpleAdapter.VerticalItemHolder>{
@Override
public void onBindViewHolder(VerticalItemHolder itemHolder, int position) {
Item item = arrayItems.get(position);
int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, item.getSizeRow(), root.getResources().getDisplayMetrics());
ViewGroup.LayoutParams params = root.getLayoutParams();
if (params == null) {
params = new ViewGroup.LayoutParams(heigth, width);
} else {
params.width = width;
params.height = heigth;
}
root.setLayoutParams(params);
}
结果如下图:
但我无法让某些项目显示在垂直列中。它是如何完成的?谢谢
【问题讨论】:
-
你不能在垂直线性布局中添加多个水平回收器视图吗?
-
水平回收站视图无法添加垂直列。我换了图片方便提问
-
当然,你需要设置
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);。 -
你只需使用 layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);对于每个回收站视图并将它们添加到垂直线性布局。我已经这样做了。最佳做法是将回收器视图放入自定义视图中,这样您就可以简化添加过程。
-
哦,我错了,你的行和列文本切换了吗?
标签: android adapter android-recyclerview