在你的
SetUpRecyclerView
方法,使用
GridLayoutManager
而不是
LinearLayoutManager
,范围计数为2,然后调用
SetSpanSizeLookup
在布局管理器上。通过自定义范围大小查找,您可以确定哪些项将跨越整个布局。
一个简单的例子:
SimpleStringRecyclerViewAdapter myAdapter = new SimpleStringRecyclerViewAdapter(recyclerView.Context, dataUse)
GridLayoutManager layoutManager = new GridLayoutManager(recyclerView.Context, 2);
layoutManager.SetSpanSizeLookup(new SpanSizeLookup(myAdapter));
recyclerView.SetLayoutManager(layoutManager);
recyclerView.SetAdapter(myAdapter);
以及
SpanSizeLookup
班级:
internal class SpanSizeLookup : GridLayoutManager.SpanSizeLookup
{
private SimpleStringRecyclerViewAdapter _adapter;
public SpanSizeLookup(SimpleStringRecyclerViewAdapter adapter) => _adapter = adapter;
public override int GetSpanSize(int position)
{
return _adapter.GetItemViewType(position);
}
}
在你的
SimpleStringRecyclerViewAdapter
类覆盖
GetItemViewType
以这样的方式,这符合您如何决定哪些项目跨越整个宽度;我使用
IsHeader
bool在这里,但是你可以使用你想要的任何东西:
public override int GetItemViewType(int position)
{
if(mValues[position].IsHeader)
return 1;
else
return 2;
}
还可以通过返回一个枚举
获取项视图类型
并决定
spansizeLookup(尺寸确定)
.