android 開源項目 SlidingMenu

最近看了下這個項目,關於滑動菜單部分的實現:

SlidingMenu類 繼承 RelativeLayout 是此項目的關鍵之所在,

SlidingMenu 中包含兩個子View:

	private CustomViewAbove mViewAbove;

	private CustomViewBehind mViewBehind;

CustomViewAbove  與CustomViewBehind  都是繼承自 ViewGroup,CustomViewAbove  用於顯示內容,CustomViewBehind  用於顯示菜單。

菜單的滑動切換就是 CustomViewAbove  和CustomViewBehind  的移動顯示。


CustomViewAbove  中需要關注的兩個函數:

public boolean onInterceptTouchEvent(MotionEvent ev) 

public boolean onTouchEvent(MotionEvent ev) 

onInterceptTouchEvent 控制觸摸事件是否需要傳遞給子view進行處理,[如左右切換打開關閉菜單 則不需要傳遞給子View,在CustomViewAbove  中的onTouchEvent 進行處理]

onTouchEvent 則主要負責對滑動菜單的滑動事件進行處理


View的滑動主要分爲  drag 和fling [手指在屏幕上的滑動和不在屏幕上的滑動] ,主要是調用 scroolTo函數實現


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章