MockRecyclerView之旅

作者: 嘉_佑 | 来源:发表于2019-07-27 19:13 被阅读8次

    最近写了一个项目试图以ViewGroup为基础,以RecyclerView源码为原型,用简化的方式
    完成RecyclerView的各项功能,源码已上传到github:https://github.com/shuhuaxie/MockRecyclerView,方便大家以此为基础研究RecyclerView更深层次知识.
    脑图网址:http://naotu.baidu.com/file/b726e52cf4aad52a0bb32b07999257fc?token=c10091e420401e16 (建议在电脑上阅读)

    1. 显示

      主要流程如下:

    • 在RecyclerView的onMeasure中根据需求从Recycler中获取View

    • 对子View进行measure和layout操作
      (子view的measure和layout不必和父View的对应)

      主要涉及类:

    • RecyclerView

      提供addView方法,使用onMeasure/onLayout驱动界面展示.

    • Recycler

      使用Adapter提供View对象

    • LinearLayoutManager

      对View进行布局

    1. 滚动

      onTouch事件分发

      offsetTopAndBottom执行实际的

    2. 点击

      onInterceptTouchEvent正确的处理点击和滑动的逻辑

    3. View复用

      初次显示界面使用onLayoutChildren

      滚动界面使用scrollBy,阻止了Layout和measure

      添加View到合适的相对位置,去掉不能看到的View,

      然后使用offsetTopAndBottom滑动内部的界面

    相关文章

      网友评论

        本文标题:MockRecyclerView之旅

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