美文网首页Android知识Android开发Android技术知识
《Android开发艺术探索》——View事件体系

《Android开发艺术探索》——View事件体系

作者: 小编 | 来源:发表于2017-03-13 20:26 被阅读545次

    自定义控件、滑动冲突解决

    View基础知识

    1. View的位置参数
    2. MotionEvent和TouchSlop对象
    3. VelocityTracker
    4. GestureDetector和Scroller对象

    1. View的位置参数

    原理图

    当在MotionEvent.ACTION_UP事件触发时,调用startScroll方法,并调用invalidate/postInvalidate方法,会导致View重绘,执行View.draw方法。在此方法中会调用View.computeScroll方法,此方法是空实现,需要我们自己处理逻辑。具体逻辑是:先判断computeScrollOffset,如果为true,表示滚动未结束。则执行scrollTo方法,再次调用postInvalidate,如此反复执行,直到结束。

    computeScrollOffset方法计算了一小段时间间隔内偏移的距离,即CurrX,CurrY。并返回是否滚动结束的标记。true表示未结束,false表示结束。

    View的scrollTo/scrollBy方法操作的View的内容滑动。
    getScrollX返回的是View的左边缘到其内容左边缘的距离。相对于View的左边缘
    getScrollY返回的是View的上边缘到其内容上边缘的距离。

    如果View的内容向左滑,滑出View的左边界,getScrollX为正值,反之为负值。
    如果View的内容向上滑,滑出View的上边界,getScrollY为正值,反之为负值。

    getScrollX和getScrollY的变化示意图

    参考链接:
    Android Scroller完全解析,关于Scroller你所需知道的一切 - 郭霖

    相关文章

      网友评论

        本文标题:《Android开发艺术探索》——View事件体系

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