我使用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)
所以基本上你有adapter
1,2(或更多)viewHolder
,这就是全部.如果你adapter
应该有2种layout
你使用2 viewHolder
和布局,否则你使用更多,如果你还需要一个页脚layout
.
归档时间: |
|
查看次数: |
3391 次 |
最近记录: |