Android ItemAnimator

01.ItemAnimator基本概念

  • 官方有一个默认Item动画类DafaultItemAnimator,其中DefaultItemAnimator继承了SimpleItemAnimator,在继承了RecyclerView.ItemAnimator
  • SimpleItemAnimator 它是一个包装类,用来判断当前的ViewHolder到底是执行移动、移除、添加或者改变等行为。
  • DefaultItemAnimator 是执行具体动画类,它负责将viewHolder初始化、保存需要执行动画的ViveHolder以及动画信息、执行具体的动画。
阅读更多

Android RecycledViewPool

01.RecycledViewPool

  • RecycledViewPool

    • RecyclerViewPool用于多个RecyclerView之间共享View。只需要创建一个RecyclerViewPool实例,然后调用RecyclerView的setRecycledViewPool(RecycledViewPool)方法即可。RecyclerView默认会创建一个RecyclerViewPool实例。
    • 下列源码,是我借助于有道词典翻译部分注释内容……
阅读更多

Android ItemDecoration

01.ItemDecoration的用途

1.1 作用

  • 通过设置recyclerView.addItemDecoration(new DividerDecoration(this));来改变Item之间的偏移量或者对Item进行装饰。
  • 当然,你也可以对RecyclerView设置多个ItemDecoration,列表展示的时候会遍历所有的ItemDecoration并调用里面的绘制方法,对Item进行装饰。
阅读更多

Android SpanSizeLookup

00.先来看一个需求

  • 该页面中,同时包含列表,2列的网格,3列的网格如何优雅实现?
    • image

01.SpanSizeLookup的作用

阅读更多

Android SnapHelper

01.SnapHelper作用

  • 在某些场景下,卡片列表滑动浏览

02.SnapHelper类分析

  • 查阅可知,SnapHelper继承自RecyclerView.OnFlingListener,并且重写了onFling方法,这个类代码并不多,下面会对重要方法一一解析。
阅读更多

Android ItemTouchHelper

  • 需要实现拖拽的功能如下所示

    • 长按item后拖动,与其他item交换位置
    • 按住item右面的图标后拖动,与其他item交换位置
    • 左滑item变透明并缩小,超出屏幕后,其他item补上
    • 右滑item变透明并缩小,超出屏幕后,其他item补上
  • 几个重要的方法说明

    • 需要自定义类实现ItemTouchHelper.Callback类,并重写其中几个方法
    1
    2
    3
    4
    5
    6
    isLongPressDragEnabled                  是否可以长按拖拽排序
    isItemViewSwipeEnabled Item是否可以被滑动
    getMovementFlags 当用户拖拽或者滑动Item的时候需要我们告诉系统滑动或者拖拽的方向
    onMove 当Item被拖拽的时候被回调
    onSwiped 当View被滑动删除的时候
    onSelectedChanged 当item被拖拽或侧滑时触发
阅读更多

Android RecyclerView ViewHolder

01.ViewHolder的作用

  • ViewHolder作用大概有这些:
    • adapter应当拥有ViewHolder的子类,并且ViewHolder内部应当存储一些子view,避免时间代价很大的findViewById操作
    • 其RecyclerView内部定义的ViewHolder类包含很多复杂的属性,内部使用场景也有很多,而我们经常使用的也就是onCreateViewHolder()方法和onBindViewHolder()方法,onCreateViewHolder()方法在RecyclerView需要一个新类型。item的ViewHolder时调用来创建一个ViewHolder,而onBindViewHolder()方法则当RecyclerView需要在特定位置的item展示数据时调用。
阅读更多

Android LayoutManager

01.LayoutManager作用

  • LayoutManager的职责是摆放Item的位置,并且负责决定何时回收和重用Item。
  • RecyclerView 允许自定义规则去放置子 view,这个规则的控制者就是 LayoutManager。一个 RecyclerView 如果想展示内容,就必须设置一个 LayoutManager

02.LayoutManager样式

阅读更多

Android RecyclerView Adapter

01.RecyclerView.Adapter扮演的角色

  • 一是,根据不同ViewType创建与之相应的的Item-Layout
  • 二是,访问数据集合并将数据绑定到正确的View上

02.重写的方法

阅读更多

Android RecycleView

01.RecycleView的结构

  • 关于RecyclerView,大家都已经很熟悉了,用途十分广泛,大概结构如下所示
    • RecyclerView.Adapter - 处理数据集合并负责绑定视图
    • ViewHolder - 持有所有的用于绑定数据或者需要操作的View
    • LayoutManager - 负责摆放视图等相关操作
    • ItemDecoration - 负责绘制Item附近的分割线
    • ItemAnimator - 为Item的一般操作添加动画效果,如,增删条目等
阅读更多