Android 實現Scroll(滑動)的方法(二)——Android群英傳學習筆記
緊接上篇文章( Android實現Scroll(滑動)的方法(—) )繼續說一下實現滑動的方法。
⑥ViewDragHelper:支援著DrawerLayout和SlidingPaneLayout兩個佈局來實現側邊欄滑動效果。
案例:QQ滑動側邊欄(分析):
a.初始化ViewDragHelper:其通常定義在一個ViewGroup的內部,並通過其靜態工廠方法進行初始化。

b.攔截事件:將事件傳遞給ViewDragHelper進行處理。

c.處理computeScroll():ViewDragHelper內部也是通過Scroller實現平滑移動。

d.處理回撥Callback,在建立Callback時,IDE會重寫tryCaptureView()方法,通過該方法,可以指定引數parentView中子View被移動。

e.重寫clampViewPositionVertical()、clampViewPositionHorizontal()方法。方法引數:int top(表示在垂直方向上child移動的距離),int dy(表示比較前一次的增量)

f.實現當手機離開屏幕後實現的操作:重寫ViewDragHelper.Callback中系統提供的onViewReleased()方法。

g.自定義ViewGroup,並在onFinishInflate()方法中按順序將子View分別定義成MenuView和MainView,並在onSizeChanged()方法中獲取View的寬度。
