美文网首页Android进阶之路Android开发经验谈Android开发
Android 实现Scroll(滑动)的方法(二)——Andr

Android 实现Scroll(滑动)的方法(二)——Andr

作者: 辰_鱼 | 来源:发表于2019-03-20 10:35 被阅读13次

    紧接上篇文章(Android实现Scroll(滑动)的方法(—))继续说一下实现滑动的方法。

    ⑥ViewDragHelper:支持着DrawerLayout和SlidingPaneLayout两个布局来实现侧边栏滑动效果。

    案例:QQ滑动侧边栏(分析):

    a.初始化ViewDragHelper:其通常定义在一个ViewGroup的内部,并通过其静态工厂方法进行初始化。

    图 1

    b.拦截事件:将事件传递给ViewDragHelper进行处理。

    图 2

    c.处理computeScroll():ViewDragHelper内部也是通过Scroller实现平滑移动。

    图 3

    d.处理回调Callback,在创建Callback时,IDE会重写tryCaptureView()方法,通过该方法,可以指定参数parentView中子View被移动。

    图 4

    e.重写clampViewPositionVertical()、clampViewPositionHorizontal()方法。方法参数:int top(表示在垂直方向上child移动的距离),int dy(表示比较前一次的增量)

    图 5

    f.实现当手机离开屏幕后实现的操作:重写ViewDragHelper.Callback中系统提供的onViewReleased()方法。

    图 6

    g.自定义ViewGroup,并在onFinishInflate()方法中按顺序将子View分别定义成MenuView和MainView,并在onSizeChanged()方法中获取View的宽度。

    图7

    主要代码,到这里就结束了,有需要完整代码的可以在评论区留言!!!

    相关文章

      网友评论

        本文标题:Android 实现Scroll(滑动)的方法(二)——Andr

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