用RecyclerView展示用Volley加载的网络图片
本例展示的是RecyclerView的使用,主要是针对展示图片,实现网格视图和画廊视图和瀑布流同样的效果,RecyclerView的实现必须要设置一个LayoutManager布局管理器;针对图片的展示,这里只说明实现画廊视图,网格视图和瀑布流效果三种图片的设置方式一个基本的演示,而对于文本信息的展示,首要选择ListView。
实现画廊视图,横向滑动展示:线性布局管理器 LineLayoutManager
LineLayoutManager lineLayoutManager=new LineLayoutManager(this);
lineLayoutManager.setOrientation(LineLayoutManager.HORIZONTAL)
lineLayoutManager.setOrientation(LineLayoutManager.HORIZONTAL)
mRecyclerView,setLayoutManager( lineLayoutManager);
实现网格视图,网格布局管理器 GridLayoutManager
mRecyclerView.setLayoutManager(new GridLayoutManager(this,3)); 这里的第二个参数是列数
下面是一个简单的RecyclerView展示形成GridView的效果:
实现网格视图,网格布局管理器 GridLayoutManager
mRecyclerView.setLayoutManager(new GridLayoutManager(this,3)); 这里的第二个参数是列数
下面是一个简单的RecyclerView展示形成GridView的效果:
实现GridView的效果如果展示:
更改其中的几行代码,按注释的代码运行,可以很清楚的看到实现画廊视图的效果。
运用RecyclerView可以分为两步,第一是初始化数据initData( );我们一般选用集合或者数组来存储数据;第二步是构建适配器,继承RecyclerView.Adapter<Object>( );重写三个方法,getItemCount(),onBindViewHolder()和getOnCreateViewHolder(),
这里的泛型Object必须要继承ViewHolder,在getOnCreateViewHolder方法中完成视图的加载,然后再对视图中的控件进行初始化,初始化的任务就是在继承ViewHolder的Object完成的。也就是说必须要在加载的视图中“找到”这些视图控件,比如ImageView和TextView、Button等,然后在onBindViewHolder()方法中对这些控件进行数据赋值。很显然,这个过程就很好的将视图加载和数据绑定这两个过程分离,相对于别的适配器中的getView方法中同时完成视图加载和数据赋值,这里显得更加优越。RecyclerView还可以实现瀑布流的效果,用到另外一个布局管理器,StaggeredGridLayoutManager,而且还需要在
onBindViewHolder()方法中对每一个item设置一个随机的高度,就ok了。