灵活的组件-RecyclerView
2016-04-26 21:56
246 查看
RecyclerView
是一个比ListView,GridView更加灵活的组件。在Android5.0正式推出,后来推出了兼容包兼容到V7。
RecyclerView基本使用
① 添加RecyclerView依赖,com.android.support.v7.widget.RecyclerView ② RecyclerView也是一个适配器类型的组件,意味着它需要一个Adapter,并且布局的加载还需要一个LayoutManager。 ③ RecyclerView中默认提供了三种布局管理器(LayoutManager) 1.LinearLayoutManager (线性) 2.GridLayoutManager (表格) 3.StaggeredGridLayoutManager (瀑布流) ④ RecyclerView的Adapter需要继承自RecyclerView.Adapter<VH>,创建的时候还需要一个泛型,这个泛型继承自RecyclerView.ViewHolder。ViewHolder需要一个ItemView进行初始化,一般我们在构造中进行View的实例化。 ⑤ 最后为RecyclerView设置LayoutManager,Adapter。
Change
RecyclerView在底层实现了布局的复用,但是有得必有失,RecyclerView失去了点击的监听,那么我们就需要自己来实现一下。 ① 在我们使用LayoutInflater将View导入的时候,同时对View添加一个点击监听setOnClickListener(),实现onClick()方法,但是我们在onClick()方法中并不知道是哪一个View点击的。好在RecyclerView为我们提供了一个根据ChildView来获取我们ChildView在Adapter中位置的方法,RecyclerView.getChildAdapterPosition()。 ② 接下来我们将点击事件通过接口回调传回我们的页面Activity or Fragment。 ③ 我们根据点击事件对数据进行删除,增加...操作,我们发现RecyclerView的增加与删除并不像ListView,GridView那样暴力,它可以做差量更新,并且它还为我们实现了一套默认的变更动画。 ④ 我们可以站在巨人的肩膀上完成以下我们对动画的定制,将默认实现中动画开启,动画实现的地方修改成我们想要的样子。 ⑤ 在多布局加载方面,没有了getViewTypeCount(),意味着我们的RecyclerView不再限制我们ViewType的个数,我们只需要重写getItemViewType(),并在onCreateViewHolder中根据不同的type加载不同的布局。在onBindViewHolder中,根据不同的type,绑定不同的数据。 ⑥ RecyclerView的GridLayoutManager可以合并单元格。manager.setSpanSizeLookUp(我们可以实现一个SpanSizeLookUp,在实现中根据不同的type去设置我们的每个item占用多少单元格)
相关文章推荐
- 第 9 章 音频和视频
- HDOJ 5672 String
- 硬币表示
- 比赛模板(持续更新中)
- Git extensions安装
- new与malloc 的区别
- c++之常量(一)
- JavaScript Boolean(布尔)对象
- C++头文件的学习
- 资料收集贴
- Shell 括号辨识(转http://blog.csdn.net/taiyang1987912/article/details/39551385)
- 团队项目冲刺第九天
- javax.servlet.ServletRequest 的getAttribute(String name)与getParmeter(String name)的区别
- hdu 5670 Machine(BC规律题)
- 记录自己的工作点滴
- 一些CSS实现的特效
- leetcode——144——Binary Tree Preorder Traversal
- 问卷信息反馈的反编译
- 镂空点击
- 关于【cocos2d-X】 3.X 安卓如何打包 (我用的3.7.1) 针对第一次打包新手