美文网首页
ScrollView中悬停效果的实现

ScrollView中悬停效果的实现

作者: vvweilong | 来源:发表于2019-02-24 12:57 被阅读0次

    StickyScrollView git@github.com:emilsjolander/StickyScrollViewItems.git
    这个控件是通过继承ScrollView 来重写部分方法实现对 设置了 sticky Tag 的子view 悬停操作的

    布局中的用法

    效果
    我们看方法列表


    image.png

    一个开始悬停 方法 和 停止悬停方法应该就是核心了 。


    image.png

    两个方法的调用位置,基本为 doTheStickyThing()


    image.png

    首先看 for 中

    image.png
    可以看到 这是对 两个 view 的查找操作
    viewThatShouldStick 与 approachingView
    我们循环的集合为 初始化时 获取的 所有标有悬停标记的 view
    接下来我们先暂时跳过查找的细节,当我们找到了那个需要被悬停的 view 时
    也就是
    image.png
    由于本次流程中 获取了viewThatShouldStick所以 approachingView 应该是为空的
    所以获取的 stickyViewTopOffset=0;
    接下来执行startStickingView()
    根据设置的 tag 来执行相应操作
    最后执行了 invalidateRunnable
    image.png

    postDelayed(this,16)每16ms 重绘一次?
    通知 scrollview 重新绘制 悬停区域
    然后 是绘制过程
    dispatchDraw()
    中 对原有布局进行默认绘制后 在对当前 currentStickingView 进行再次绘制
    绘制区域为悬停区域内

    相关文章

      网友评论

          本文标题:ScrollView中悬停效果的实现

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