RecyclerView的学习

来源:互联网 发布:淘宝上伊芙丽假货多吗 编辑:程序博客网 时间:2024/06/04 20:43
1.首先在app下的gradle中添加RecyclerView的依赖包:compile'com.android.support:recyclerview-v7:26.0.0-alpha1'

2.设计基本思路(具体请看代码):
    核心:数据的展示(终极目的)
    a.数据的传输方式
    b.数据的展示途径

    我们的目的就是将想要显示的数据显示到界面上,那么执行的也就是两种操作,一种是获取相关的数据,包括整理数据,传递数据。另一种就是界面的获取和设置,包括控件的获取。
    这里adpter主要是起到设置界面和传递数据的作用,具体的itemview的操作全都放置在了ViewHolder中执行。

思维导图(第一次用)展示逻辑如下:





这是我手绘的逻辑图(《android编程权威指南》第八章的代码逻辑图):








注意的几点问题:
1.RecyclerView获取的时候一定要设置LayoutManager,它决定显示的方式是竖直列表还是水平列表的形式。
2.抽象类SingleFragmentActivity的作用是提高了扩展性和减少了重复代码的书写;FragmentManager管理所有的Fragment. 而RecyclerView管理所有的itemview。
3.代码中的数据传输方式很不错(我只是抄袭^o^).
4.在抽象类的activity中,注意onCreate方法是哪一个,不对是无法获得相应的activity的。
5.RecyclerView的机制:它类似与一个容器,每一个item都有一个ViewHolder,都会显示一个view,它管理了所有的item。当item显示在界面上的时候,加载;当item不在界面的时候,item会被回收,当再次出现在界面上的时候才会被加载。
6.题外话:写代码思路是很重要的,它决定了你实现的代码结构的优美与否。而我的思路就是获得数据和显示数据这两种方式的结合来完成。





Demo git地址:https://github.com/fengjw1/AndroidProgrammingGuide.git 
    里面的RecyclerViewDemo 包含了上传的思维导图。


关于删除RecyclerView中item导致错乱问题的解决思路:
每次删除的时候删除的是内容,位置信息positon没有刷新(结构没有改变),如果使用notifyDataChanaged()会导致添加的动画效果无法体现。所以只能进行局部刷新,使用notifyItemRangeRemoved(posion, List.size() - posion),将当前删除的item以及之后的结构进行刷新,来确保位置的正确性,同时动画效果可以保持。

原创粉丝点击