卡片尺寸不同
Different card size
如何才能让 recycleView
中有不同尺寸的卡片? (1x1、1x2 和 2x1,其中 1 是卡片长度)
enter image description here
您可以创建两个视图持有者。其中一张拿着同一排的两张牌,另一张拿着整排的一张。它肯定看起来像您发布的图片。要实现具有多个视图持有者的回收器视图,请查看 this.
您可以使用具有不同跨度计数的 GridLayoutManager
。
这是一些例子。
在activity中:
//Initialize recyclerView and adapter before
GridLayoutManager layoutManager = new GridLayoutManager(this, 2);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(adapter);
layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
if (adapter.isHeader(position)) {
//Returns span count 2 if method isHeader() returns true.
//You can use your own logic here.
return mLayoutManager.getSpanCount()
} else {
return 1;
}
}
}
});
并将此方法添加到您的适配器 class:
public boolean isHeader(int position) {
return position == 0;//you can use some other logic in here
}
如何才能让 recycleView
中有不同尺寸的卡片? (1x1、1x2 和 2x1,其中 1 是卡片长度)
enter image description here
您可以创建两个视图持有者。其中一张拿着同一排的两张牌,另一张拿着整排的一张。它肯定看起来像您发布的图片。要实现具有多个视图持有者的回收器视图,请查看 this.
您可以使用具有不同跨度计数的 GridLayoutManager
。
这是一些例子。
在activity中:
//Initialize recyclerView and adapter before
GridLayoutManager layoutManager = new GridLayoutManager(this, 2);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(adapter);
layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
if (adapter.isHeader(position)) {
//Returns span count 2 if method isHeader() returns true.
//You can use your own logic here.
return mLayoutManager.getSpanCount()
} else {
return 1;
}
}
}
});
并将此方法添加到您的适配器 class:
public boolean isHeader(int position) {
return position == 0;//you can use some other logic in here
}