Android 实现Scroll(滑动)的方法(二)——Android群英传学习笔记

紧接上篇文章(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(滑动)的方法(二)——Android群英传学习笔记)