美文网首页
RecyclerView+ListView

RecyclerView+ListView

作者: shuixingge | 来源:发表于2016-05-11 15:19 被阅读151次

    参考资料1
    参考资料2

    ListView和RecyclerView的异同:

    (1)ViewHolder:在ListView中,ViewHolder需要自己来定义,RecyclerView中使用RecyclerView.ViewHolder则变成了必须
    (2)LayoutManager:ListView只能在垂直方向上滚动,没有提供ListView在水平方向上面滚动的支持。RecyclerView相较于ListView,在滚动上面的功能扩展了许多。它可以支持多种类型列表的展示要求,如

    GridLayoutManager,LinearLayoutManager
    

    (3)ItemDecoration:控制Item间的间隔(可绘制)
    (4)ItemAnimator:控制Item增删的动画
    (5)必须自己实现Item点击,长按事件:没有AdapterView.OnItemClickListener接口来探测点击事件,自己实现控制点击、长按事件。
    (6)RecyclerView支持嵌套滑动机制,可以实现与
    (7)空数据的处理
    (8)HeaderView 和 FooterView
    (9)局部刷新
    (10) CollapsingToolbarLayout

    实现自定义间隔的思路:

    继承RecyclerView.ItemDecoration实现它的onDraw和getItemOffset方法,获得一个代表分割线的drawable对象,遍历各个子Item, 结合子View的布局参数(padding,margin),确定分割线drawable的四个顶点的坐标,再在onDraw方法中把drawable画在canvas上;

    实现onItemClickListener()和onItemLongClickListener()的思路:

    (1)在adapter中自己去提供回调:在Adapter里面提供一个接口,然后在onBindViewHolder中去为holder.itemView去设置相应的监听,最后回调我们设置的监听函数
    (2)在RecyclerView.OnItemTouchListener去监听然后去判断手势:
    实现RecyclerView.OnItemTouchListener这个接口,在这个接口的构造函数里面,提供一个GestureDetector去监听手势,去判断是长按还是点击。

    CardView

    CardView继承自FrameLayout,可以让我们使用类似卡片布局来显示一致性效果的内容。同时卡片还可以包含圆角和阴影效果。

    相关文章

      网友评论

          本文标题:RecyclerView+ListView

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