还在用ListView?

作者: 陈宇明 | 来源:发表于2016-04-09 09:54 被阅读19822次

    还在用Lisview?RecyclerView都已经出来一年多了!

    想必大家多或多或少的接触过或者了解过RecyclerView,为什么没有用起来,原因大概如下?

    • ListView我用的挺好的,为什么要换RecyclerView?
    • ListView稳定,熟悉,还知道很多开源库,特别的好用!
    • RecyclerView不能添加头部,ListView能!

    RecyclerView

    在Andorid 5.0出来不久,我就已经写过RecyclerView的简单介绍以及基本使用,不了解的可以看看ListView升级版RecyclerView,了解过的同学可以忽略,并往下看。

    • RecyclerView最大的优势就是灵活,RecyclerView只需改变一行代码就可以变化多种不同的布局显示排版,这一点对于开发者是非常方便的!
    • RecyclerView.Adapter,比BaseAdapter做了更好的封装,把BaseAdapter的getView方法拆分成onCreateViewHolder方法和onBindViewHolder方法,强制需要创建ViewHolder,这样的好处就是避免了初学者写性能不佳的代码

    在实战中我们会遇到什么问题?

    get到下面的技能就能够在使用RcyclerView的大路上畅通无阻了!

    • 添加分割线
    • 添加点按效果
    • 列表动画
    • 改变某个数据保持当前位置
    • 添加头部尾部
    • 列表分组
    • 各种效果集成Demo
    • 更灵活的RecyclerView

    添加分割线

    //通过以下方法添加分割线
    mRecyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL_LIST));
    

    DividerItemDecoration需要继承RecyclerView.ItemDecoration这个抽象类实现一些方法 。但是我感觉过于麻烦,所以我想到的是:
    直接在item_view里面底部自己添加一根线布局,这样就无需重写了,并且这样还有个好处就是,如果细心的同学会发现,添加分割线,最后一个item下面不会有分割线,显然当数据量不足一个屏幕的时候显得很突兀,但是在item_view下面添加一个线的布局则不会出现这种情况

    添加点按效果

    RecyclerView直接在item_view里面配置即可selector即可。

    动画

    一个好的用户体验就是要有操作动画的过渡,而不是生硬的刷新列表。

    推荐一个RecyclerView的动画库(recyclerview-animators

    效果展示

    布局更灵活的RecyclerView

    twoway-view 封装了RecyclerView常用方法,如click等等,以及支持了更多不同的布局,使得RecyclerView使用起来更简单!

    这里写图片描述这里写图片描述

    造起来!小伙伴们!

    相关文章

      网友评论

      • KingJA:看得出博主很用心也很深入
      • 春风本是人间客:感谢作者的文章,而我竟只能微薄的表示一下感谢,真是惭愧。
      • 小夫哥:请教楼主,recycleview的删除问题,notifyItemRemoved方法是删除当前列表位置的item,但删除后列表其他item的位置信息并没有变动,所以这时候根据数据的位置来传入删除是不行的吧。
        陈宇明:@我想要变得更强这是真心话 通过getLayoutposition获取位置
      • Smile_everyday:请问下LZ,我写了个RecyclerView然后用它的notifyDataSetChanged条目不会立即刷新,而是条目被销毁再次显示时间才能刷新数据,请问这个怎么解决呢?http://ask.csdn.net/questions/255931 谢谢LZ了。
        DreamWinter:@android_wb 没有看,我估计是你的list地址发生了变化。使用RecyclerView的时候别老是变list,用list.clear()与list.addAll()来变换数据。
      • 叶乘风:支持作者,RecyclerView几乎可以做任何界面。
      • Rays_Hu:RecyclerView滑动卡顿严重
        Rays_Hu:@叶乘风 并没有做什么耗时的操作,只是判断item类型,然后绑定数据而已。
        旧时光KK:@ryan_hu 应该是你代码逻辑的问题,RecylerView的性能还是不错的。
        叶乘风:@ryan_hu 用了快1年,没法发现你说的问题,卡顿是因为在滑动的时候,做了耗时操作?
      • _霞:挺好的!
      • _小小鱼1号:没有很好的下拉刷新 上拉加载框架。。。
        ElonYanJ:@Alex_MaHao 谢!
        6fd2a7000ef4:@_小小鱼1号 RecyclerView 下拉刷新和上拉加载http://blog.csdn.net/lisdye2/article/details/51384159 可以看看。
        陈宇明:@_小小鱼1号 你可以用下我推荐的BaseRecyclerviewAdapter他支持上拉加载,下拉刷新可以用通用的,这样组合使用更灵活。而且不需要改变你原来的recycleview
      • SeanZ9:感谢作者。
        陈宇明:@SeanZ9 如果你有小小的收获就把它分享给更多人吧,谢谢。

      本文标题:还在用ListView?

      本文链接:https://www.haomeiwen.com/subject/fzzvlttx.html