使用RecyclerView可以制作出类似GridView的样式,但比GridView更加强大。这里我们就介绍一下RecyclerView和GridLayoutManager结和的用法。
1.GridLayoutManager常用方法
- 构造函数:可指定网格的列数。
- setSpanCount:设置网格的列数。
- setSpanSizeLookup:设置列表项的占位规则。默认一项占一列,如果想某项占多列,就可以在此设置占位规则,即由GridLayoutManager.SpanSizeLookup派生具体的实现类。
2.网格布局示例代码
//初始化控件
recycler = findViewById(R.id.recycler);
//创建一个垂直方向的网格布局管理器
GridLayoutManager manager = new GridLayoutManager(this,4);
//设置循环视图的布局管理器
recycler.setLayoutManager(manager);
//设置item增加和删除时的动画
recycler.setItemAnimator(new DefaultItemAnimator());
recycler.addItemDecoration(new SpacesItemDecoration(1));
HomeAdapter mAdapter = new HomeAdapter(this);
recycler.setAdapter(mAdapter);
3.占位应用示例代码
//初始化控件
recycler = findViewById(R.id.recycler);
//创建一个垂直方向的网格布局管理器
GridLayoutManager manager = new GridLayoutManager(this,4);
//设置网格布局管理器的占位规则
//以下占位规则的意思是,第一项和第二项占两列,其他占一列。
//如果网格的列数为4,那么第一项和第二项平分一行,第二行开始每行有四项
manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
if (position % 6 == 0 || position % 6 == 1){
return 2;
}else{
return 1;
}
}
});
//设置循环视图的布局管理器
recycler.setLayoutManager(manager);
//设置item增加和删除时的动画
recycler.setItemAnimator(new DefaultItemAnimator());
recycler.addItemDecoration(new SpacesItemDecoration(1));
HomeAdapter mAdapter = new HomeAdapter(this);
recycler.setAdapter(mAdapter);
这样就可以一行是有2项,一行有4项,交替出现。