(一)RecyclerView简单使用总结
来源:互联网 发布:oracle数据库迁移文档 编辑:程序博客网 时间:2024/06/16 17:48
谷歌推出Recyclerview的时间也不短了,今天就简单记录一下他的使用总结
第一步,我们都知道必须通过导入support-v7才能对其进行使用,studio的引入方式就是:compile 'com.android.support:recyclerview-v7:24.0.0'
第二步:adapter,adapter继承的是RecyclerView.Adapter。需要实现的三个方法是:
①onCreateViewHolder()
这个方法主要生成为每个Item inflater出一个View,但是该方法返回的是一个ViewHolder。该方法把View直接封装在ViewHolder中,然后我们面向的是ViewHolder这个实例,当然这个ViewHolder需要我们自己去编写。直接省去了当初的convertView.setTag(holder)和convertView.getTag()这些繁琐的步骤。
②onBindViewHolder()
这个方法主要用于适配渲染数据到View中。方法提供给你了一个viewHolder,而不是原来的convertView。通过这个holder我们能够直接拿到item中的view进行数据渲染
③getItemCount()
这个方法就类似于BaseAdapter的getCount方法了,即总共有多少个条目。
注意:item的布局文件,如果父布局高度是matchParent的话,每个item的高度就会是整屏那么大。此处一定要注意
第三步:渲染自己想要的效果
(1)、listview的效果(线性管理器):
注意:item的布局文件,如果父布局高度是matchParent的话,每个item的高度就会是整屏那么大。此处一定要注意
第三步:渲染自己想要的效果
(1)、listview的效果(线性管理器):
//设置布局管理器rv_recycler.setLayoutManager(new LinearLayoutManager(this));//添加数据 rv_recycler.setAdapter(myadapter = new MyAdapter(this,list));
recyclerview默认是没有分割线的,也没有driver属性,可以通过下边的方式添加分割线,系统默认的灰色线条,也可以改变分割线的样式,这里不做说明
rv_recycler.addItemDecoration(new DividerItemDecoration(this,LinearLayout.VERTICAL));(2)、gridview的效果(网格布局管理器):
//设置布局管理器,第二个参数是列数rv_recycler.setLayoutManager(new GridLayoutManager(this,2));rv_recycler.setAdapter(myadapter = new MyAdapter(this,list));rv_recycler.addItemDecoration(new DividerGridItemDecoration(this));(3)、接下来是重点了,瀑布流的效果(瀑布流式布局管理器):
//第一个参数和第二个参数是对应的,第二个是方向,第一个是对应的列数或者行数rv_recycler.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL));rv_recycler.setAdapter(myadapter = new MyAdapter(this,list));rv_recycler.addItemDecoration(new DividerGridItemDecoration(this));此处需要注意:如果方向是垂直的就需要将item的父布局宽度设置为mp,否则出现的效果大家有兴趣了可以自己尝试;如果是水平,高度设置为mp。总之再用流式布局管理器的时候item的布局使用需要格外小心哈(下次有时间了可以补充上布局的问题,图文表述,方便大家理解同时也给自己加强下印象)
离我们心心念念的瀑布流只差一步了,很简单,那就是动态的设置item的宽高了,上代码:
ViewGroup.LayoutParams params = tv.getLayoutParams();//设置图片的相对于屏幕的宽高比params.width = AppUtils.getScreenDispaly(context)[0]/3;//随机计算出高度params.height = (int) (200 + Math.random() * 400) ;tv.setLayoutParams(params);仅此而已,优美的瀑布流的效果就出来了,有没有很简单啊。
1 0
- (一)RecyclerView简单使用总结
- RecyclerView简单使用总结
- Android之RecyclerView简单使用(一)
- RecyclerView的简单使用--------------(一)
- RecyclerView的简单使用(一)
- Android基础总结十二:RecyclerView简单使用
- Material Design控件使用总结之RecyclerView(一)基本使用
- SwipeRefreshLayout(下拉刷新)与RecyclerView之简单使用<一>
- android中RecyclerView的简单使用(一)
- RecyclerView(一)最简单的recyclerview
- RecyclerView的简单使用
- RecyclerView 的简单使用
- recyclerview的简单使用
- Recyclerview的简单使用
- RecyclerView的简单使用
- RecyclerView简单使用
- RecyclerView简单使用
- RecyclerView的简单使用
- java抽象类、接口的一点理解
- Android中的Selector
- Intent
- android:duplicateParentState 让子View跟随其Parent的状态
- 3.java设计模式(读书笔记)适配器模式
- (一)RecyclerView简单使用总结
- 如何给magento的产品分类创建一个自定义属性?
- Linux入门:常用命令:rpm、yum
- 帮助命令
- CUDA 学习(十一)、共享内存
- php请求url过长改用curl
- 打开文件练习
- android:includeFontPadding的使用:清除TextView字体周边空白
- oracle表的创建及管理 主键自增 外键等