首先我们看一下主要的代码:
这个是展示listView效果的:
//创建适配器对象 参数一般有两个 上下文 和 数据加载集合
RecylerViewAdapter recylerViewAdapter=new RecylerViewAdapter(this,dates);
// 1 设置适配器
mRecyclerView.setAdapter(recylerViewAdapter);
//布局管理器所需参数,上下文
LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this);
//B 通过布局管理器,可以控制条目排列顺序 true:反向显示 false:正常显示(默认)
linearLayoutManager.setReverseLayout(isversion);
//C 设置RecyclerView显示的方向,是水平还是垂直!! LinearLayoutManager.VERTICAl(默认) false
linearLayoutManager.setOrientation(orientation ? LinearLayoutManager.VERTICAL: LinearLayoutManager.HORIZONTAL);
//设置布局管理器 , 参数 linearLayout
mRecyclerView.setLayoutManager(linearLayoutManager);
这是展示grideView效果的:
//创建适配器对象 参数一般有两个,上下文和数据加载集合
RecyclerViewGridAdapter recyclerViewGridAdapter = new RecyclerViewGridAdapter(this, dates);
// 1 设置适配器
mRecyclerView.setAdapter(recyclerViewGridAdapter);
//布局管理器所需参数,上下文
GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
//B 通过布局管理器,可以控制条目排列顺序 true:反向显示 false:正常显示(默认)
gridLayoutManager.setReverseLayout(isversion);
//C 设置RecyclerView显示的方向,是水平还是垂直!! GridLayoutManager.VERTICAL(默认) false
gridLayoutManager.setOrientation(orientation ? GridLayoutManager.VERTICAL: LinearLayoutManager.HORIZONTAL);
//设置布局管理器 , 参数 linearLayout
mRecyclerView.setLayoutManager(gridLayoutManager);
这个是展示瀑布流效果的代码:
//创建适配器对象 参数一般有两个,上下文和数据加载集合
RecyclerViewStaggeredGridAdapter recyclerViewStaggeredGridAdapter = new RecyclerViewStaggeredGridAdapter(this, dates);
// 1 设置适配器
mRecyclerView.setAdapter(recyclerViewStaggeredGridAdapter);
//E 布局管理器所需要的参数 参数1 规定显示几列 参数2 指定item排列方式
StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(2, orientation ? StaggeredGridLayoutManager.VERTICAL : StaggeredGridLayoutManager.HORIZONTAL);
//通过布局管理器可以控制条目排列顺序 true:方向 false:正常显示
staggeredGridLayoutManager.setReverseLayout(isversion);
//2 设置布局管理器,参数GridLayoutManager,可以使
mRecyclerView.setLayoutManager(staggeredGridLayoutManager);
现在我们再看一次这三个代码,楼主发现都是先创建适配器(三个适配器除了名字不同之外,其他的代码一致!!),然后都需要布局管理器!!
ListView需要的是LinearLayoutManager
GrideView需要的是GridLayoutManager
瀑布流需要的是StaggeredGridLayoutManager
细究针对布局管理器的代码:我们不难发现他们使用方法不一样:
LinearLayoutManager参数:就是上下文
GridLayoutManager参数:上下文 和 列数
StaggeredGridLayoutManager参数:列数 和 item的排列方式(这里和前两个不同,这里直接提价item的排列方式,值得注意!!)