我使用StaggeredGridLayoutManager制作了RecyclerView,如下所示:
我需要在它上面添加一些TextView(如LinearLayoutManager中的一个colum).它就像上面的LinearLayoutManager和底部的StaggeredGridLayoutManager.像这样的东西:
我怎样才能实现这一目标?在这里真的很困惑,请帮忙.
2015年10月29日更新:
我在这里结合denis_lor和mato的答案解决它: 使用RecyclerView跨越多个列
滚动时您希望发生什么?
如果顶视图应该保持可见,您可以RecyclerView用LinearLayout带有 2 个子项的TextView和包裹RecyclerView。
如果你想让它滚出,你可以使用LayoutManager.setSpanSizeLookup,像这样:
layoutManager.setSpanSizeLookup(new SpanSizeLookup() {
@Override
public int getSpanIndex(int position, int spanCount) {
return position % spanCount;
}
@Override
public int getSpanSize(int position) {
if (position != 0) {
return layoutManager.getSpanCount();
}
return 1;
}
});
Run Code Online (Sandbox Code Playgroud)
关键是你的adapter,你基本上靠viewType,然后再决定什么样的viewholder和layout来inflate.这是一个例子:
private static final int TYPE_FIRST_ITEM = 0;
private static final int TYPE_ITEM = 1;
...
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == TYPE_FIRST_ITEM) {
// inflate your view holder for the first item
} else {
// here inflate your view holder for all the other items
}
...
@Override
public int getItemViewType(int position) {
if (position == 0) {
return TYPE_FIRST_ITEM;
} else {
return TYPE_ITEM;
}
}
Run Code Online (Sandbox Code Playgroud)
所以基本上你有adapter1,2(或更多)viewHolder,这就是全部.如果你adapter应该有2种layout你使用2 viewHolder和布局,否则你使用更多,如果你还需要一个页脚layout.
| 归档时间: |
|
| 查看次数: |
3391 次 |
| 最近记录: |