net.simonvt.menudrawer
Class MenuDrawer

java.lang.Object
  extended by android.view.View
      extended by android.view.ViewGroup
          extended by net.simonvt.menudrawer.MenuDrawer
All Implemented Interfaces:
android.graphics.drawable.Drawable.Callback, android.view.accessibility.AccessibilityEventSource, android.view.KeyEvent.Callback, android.view.ViewManager, android.view.ViewParent
Direct Known Subclasses:
DraggableDrawer, StaticDrawer

public abstract class MenuDrawer
extends android.view.ViewGroup


Nested Class Summary
static interface MenuDrawer.OnDrawerStateChangeListener
          Callback interface for changing state of the drawer.
 
Nested classes/interfaces inherited from class android.view.ViewGroup
android.view.ViewGroup.LayoutParams, android.view.ViewGroup.MarginLayoutParams, android.view.ViewGroup.OnHierarchyChangeListener
 
Nested classes/interfaces inherited from class android.view.View
android.view.View.AccessibilityDelegate, android.view.View.BaseSavedState, android.view.View.DragShadowBuilder, android.view.View.MeasureSpec, android.view.View.OnAttachStateChangeListener, android.view.View.OnClickListener, android.view.View.OnCreateContextMenuListener, android.view.View.OnDragListener, android.view.View.OnFocusChangeListener, android.view.View.OnGenericMotionListener, android.view.View.OnHoverListener, android.view.View.OnKeyListener, android.view.View.OnLayoutChangeListener, android.view.View.OnLongClickListener, android.view.View.OnSystemUiVisibilityChangeListener, android.view.View.OnTouchListener
 
Field Summary
protected  android.graphics.Bitmap mActiveIndicator
          Bitmap used to indicate the active view.
protected  int mActivePosition
          Position of the active view.
protected  android.graphics.Rect mActiveRect
          Used when reading the position of the active view.
protected  android.view.View mActiveView
          The currently active view.
protected  BuildLayerFrameLayout mContentContainer
          The parent of the content view.
protected  int mDrawerState
          The current drawer state.
protected  android.graphics.drawable.Drawable mDropShadowDrawable
          Drawable used as content drop shadow onto the menu.
protected  boolean mDropShadowEnabled
          Defines whether the drop shadow is enabled.
protected  int mDropShadowSize
          The size of the content drop shadow.
static int MENU_DRAG_CONTENT
          Drag mode for sliding only the content view.
static int MENU_DRAG_WINDOW
          Drag mode for sliding the entire window.
protected  boolean mHardwareLayersEnabled
          Indicates whether to use View.LAYER_TYPE_HARDWARE when animating the drawer.
protected  BuildLayerFrameLayout mMenuContainer
          The parent of the menu view.
protected  android.graphics.drawable.Drawable mMenuOverlay
          Drawable used as menu overlay.
protected  int mMenuSize
          The size of the menu (width or height depending on the gravity).
protected  boolean mMenuSizeSet
          Indicates whether the menu size has been set explicity either via the theme or by calling setMenuSize(int).
protected  boolean mMenuVisible
          Indicates whether the menu is currently visible.
protected  int mTouchBezelSize
          The touch bezel size of the drawer in px.
protected  int mTouchMode
          Touch mode for the Drawer.
protected  int mTouchSize
          The touch area size of the drawer in px.
static int STATE_CLOSED
          Indicates that the drawer is currently closed.
static int STATE_CLOSING
          Indicates that the drawer is currently closing.
static int STATE_DRAGGING
          Indicates that the drawer is currently being dragged by the user.
static int STATE_OPEN
          Indicates that the drawer is currently open.
static int STATE_OPENING
          Indicates that the drawer is currently opening.
static int TOUCH_MODE_BEZEL
          Allow opening drawer only by dragging on the edge of the screen.
static int TOUCH_MODE_FULLSCREEN
          Allow opening drawer by dragging anywhere on the screen.
static int TOUCH_MODE_NONE
          Disallow opening the drawer by dragging the screen.
 
Fields inherited from class android.view.ViewGroup
CLIP_TO_PADDING_MASK, FOCUS_AFTER_DESCENDANTS, FOCUS_BEFORE_DESCENDANTS, FOCUS_BLOCK_DESCENDANTS, PERSISTENT_ALL_CACHES, PERSISTENT_ANIMATION_CACHE, PERSISTENT_NO_CACHE, PERSISTENT_SCROLLING_CACHE
 
Fields inherited from class android.view.View
ALPHA, DRAWING_CACHE_QUALITY_AUTO, DRAWING_CACHE_QUALITY_HIGH, DRAWING_CACHE_QUALITY_LOW, EMPTY_STATE_SET, ENABLED_FOCUSED_SELECTED_STATE_SET, ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_FOCUSED_STATE_SET, ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, ENABLED_SELECTED_STATE_SET, ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_STATE_SET, ENABLED_WINDOW_FOCUSED_STATE_SET, FIND_VIEWS_WITH_CONTENT_DESCRIPTION, FIND_VIEWS_WITH_TEXT, FOCUS_BACKWARD, FOCUS_DOWN, FOCUS_FORWARD, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_UP, FOCUSABLES_ALL, FOCUSABLES_TOUCH_MODE, FOCUSED_SELECTED_STATE_SET, FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, FOCUSED_STATE_SET, FOCUSED_WINDOW_FOCUSED_STATE_SET, GONE, HAPTIC_FEEDBACK_ENABLED, IMPORTANT_FOR_ACCESSIBILITY_AUTO, IMPORTANT_FOR_ACCESSIBILITY_NO, IMPORTANT_FOR_ACCESSIBILITY_YES, INVISIBLE, KEEP_SCREEN_ON, LAYER_TYPE_HARDWARE, LAYER_TYPE_NONE, LAYER_TYPE_SOFTWARE, MEASURED_HEIGHT_STATE_SHIFT, MEASURED_SIZE_MASK, MEASURED_STATE_MASK, MEASURED_STATE_TOO_SMALL, NO_ID, OVER_SCROLL_ALWAYS, OVER_SCROLL_IF_CONTENT_SCROLLS, OVER_SCROLL_NEVER, PRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET, PRESSED_ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_SELECTED_STATE_SET, PRESSED_ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_STATE_SET, PRESSED_ENABLED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_SELECTED_STATE_SET, PRESSED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_STATE_SET, PRESSED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_SELECTED_STATE_SET, PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_WINDOW_FOCUSED_STATE_SET, ROTATION, ROTATION_X, ROTATION_Y, SCALE_X, SCALE_Y, SCREEN_STATE_OFF, SCREEN_STATE_ON, SCROLLBAR_POSITION_DEFAULT, SCROLLBAR_POSITION_LEFT, SCROLLBAR_POSITION_RIGHT, SCROLLBARS_INSIDE_INSET, SCROLLBARS_INSIDE_OVERLAY, SCROLLBARS_OUTSIDE_INSET, SCROLLBARS_OUTSIDE_OVERLAY, SELECTED_STATE_SET, SELECTED_WINDOW_FOCUSED_STATE_SET, SOUND_EFFECTS_ENABLED, STATUS_BAR_HIDDEN, STATUS_BAR_VISIBLE, SYSTEM_UI_FLAG_FULLSCREEN, SYSTEM_UI_FLAG_HIDE_NAVIGATION, SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN, SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION, SYSTEM_UI_FLAG_LAYOUT_STABLE, SYSTEM_UI_FLAG_LOW_PROFILE, SYSTEM_UI_FLAG_VISIBLE, SYSTEM_UI_LAYOUT_FLAGS, TEXT_ALIGNMENT_INHERIT, TEXT_ALIGNMENT_RESOLVED_DEFAULT, TRANSLATION_X, TRANSLATION_Y, VIEW_LOG_TAG, VISIBLE, WINDOW_FOCUSED_STATE_SET, X, Y
 
Constructor Summary
MenuDrawer(android.content.Context context)
           
MenuDrawer(android.content.Context context, android.util.AttributeSet attrs)
           
MenuDrawer(android.content.Context context, android.util.AttributeSet attrs, int defStyle)
           
 
Method Summary
static MenuDrawer attach(android.app.Activity activity)
          Attaches the MenuDrawer to the Activity.
static MenuDrawer attach(android.app.Activity activity, int dragMode)
          Attaches the MenuDrawer to the Activity.
static MenuDrawer attach(android.app.Activity activity, int dragMode, Position position)
          Attaches the MenuDrawer to the Activity.
static MenuDrawer attach(android.app.Activity activity, int dragMode, Position position, boolean attachStatic)
          Attaches the MenuDrawer to the Activity.
static MenuDrawer attach(android.app.Activity activity, Position position)
          Attaches the MenuDrawer to the Activity.
 void closeMenu()
          Animates the menu closed.
abstract  void closeMenu(boolean animate)
          Closes the menu.
protected  int dpToPx(int dp)
           
protected  boolean fitSystemWindows(android.graphics.Rect insets)
           
 android.view.ViewGroup getContentContainer()
          Returns the ViewGroup used as a parent for the content view.
 int getDrawerState()
           
 android.graphics.drawable.Drawable getDropShadow()
          Returns the drawable of the drop shadow.
 android.view.ViewGroup getMenuContainer()
          Returns the ViewGroup used as a parent for the menu view.
 android.view.View getMenuView()
          Returns the menu view.
abstract  boolean getOffsetMenuEnabled()
          Indicates whether the menu is being offset when dragging the drawer.
abstract  int getTouchBezelSize()
          Returns the size of the touch bezel in px.
abstract  int getTouchMode()
          Returns the touch mode.
protected  void initDrawer(android.content.Context context, android.util.AttributeSet attrs, int defStyle)
           
abstract  boolean isMenuVisible()
          Indicates whether the menu is currently visible.
protected  void logDrawerState(int state)
           
protected  void onFinishInflate()
           
 void openMenu()
          Animates the menu open.
abstract  void openMenu(boolean animate)
          Opens the menu.
abstract  void peekDrawer()
          Animates the drawer slightly open until the user opens the drawer.
abstract  void peekDrawer(long delay)
          Animates the drawer slightly open.
abstract  void peekDrawer(long startDelay, long delay)
          Animates the drawer slightly open.
abstract  void restoreState(android.os.Parcelable in)
          Restores the state of the drawer.
abstract  android.os.Parcelable saveState()
          Saves the state of the drawer.
 void setActiveView(android.view.View v)
          Set the active view.
 void setActiveView(android.view.View v, int position)
          Set the active view.
 void setContentView(int layoutResId)
          Set the content from a layout resource.
 void setContentView(android.view.View view)
          Set the content to an explicit view.
 void setContentView(android.view.View view, android.view.ViewGroup.LayoutParams params)
          Set the content to an explicit view.
protected  void setDrawerState(int state)
           
 void setDropShadow(android.graphics.drawable.Drawable drawable)
          Sets the drawable of the drop shadow.
 void setDropShadow(int resId)
          Sets the drawable of the drop shadow.
abstract  void setDropShadowColor(int color)
          Sets the color of the drop shadow.
 void setDropShadowEnabled(boolean enabled)
          Defines whether the drop shadow is enabled.
 void setDropShadowSize(int size)
          Sets the size of the drop shadow.
abstract  void setHardwareLayerEnabled(boolean enabled)
          Enables or disables the user of View.LAYER_TYPE_HARDWARE when animations views.
abstract  void setMenuSize(int size)
          Set the size of the menu drawer when open.
 void setMenuView(int layoutResId)
          Set the menu view from a layout resource.
 void setMenuView(android.view.View view)
          Set the menu view to an explicit view.
 void setMenuView(android.view.View view, android.view.ViewGroup.LayoutParams params)
          Set the menu view to an explicit view.
abstract  void setOffsetMenuEnabled(boolean offsetMenu)
          Enables or disables offsetting the menu when dragging the drawer.
 void setOnDrawerStateChangeListener(MenuDrawer.OnDrawerStateChangeListener listener)
          Register a callback to be invoked when the drawer state changes.
abstract  void setTouchBezelSize(int size)
          Sets the size of the touch bezel.
abstract  void setTouchMode(int mode)
          Sets the drawer touch mode.
 void toggleMenu()
          Toggles the menu open and close with animation.
abstract  void toggleMenu(boolean animate)
          Toggles the menu open and close.
 
Methods inherited from class android.view.ViewGroup
addChildrenForAccessibility, addFocusables, addStatesFromChildren, addTouchables, addView, addView, addView, addView, addView, addViewInLayout, addViewInLayout, attachLayoutAnimationParameters, attachViewToParent, bringChildToFront, canAnimate, checkLayoutParams, childDrawableStateChanged, cleanupLayoutState, clearChildFocus, clearDisappearingChildren, clearFocus, debug, detachAllViewsFromParent, detachViewFromParent, detachViewFromParent, detachViewsFromParent, dispatchConfigurationChanged, dispatchDisplayHint, dispatchDragEvent, dispatchDraw, dispatchFreezeSelfOnly, dispatchGenericFocusedEvent, dispatchGenericPointerEvent, dispatchHoverEvent, dispatchKeyEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchRestoreInstanceState, dispatchSaveInstanceState, dispatchSetActivated, dispatchSetPressed, dispatchSetSelected, dispatchSystemUiVisibilityChanged, dispatchThawSelfOnly, dispatchTouchEvent, dispatchTrackballEvent, dispatchUnhandledMove, dispatchVisibilityChanged, dispatchWindowFocusChanged, dispatchWindowSystemUiVisiblityChanged, dispatchWindowVisibilityChanged, drawableStateChanged, drawChild, endViewTransition, findFocus, findViewsWithText, focusableViewAvailable, focusSearch, gatherTransparentRegion, generateDefaultLayoutParams, generateLayoutParams, generateLayoutParams, getChildAt, getChildCount, getChildDrawingOrder, getChildMeasureSpec, getChildStaticTransformation, getChildVisibleRect, getDescendantFocusability, getFocusedChild, getLayoutAnimation, getLayoutAnimationListener, getLayoutTransition, getPersistentDrawingCache, hasFocus, hasFocusable, indexOfChild, invalidateChild, invalidateChildInParent, isAlwaysDrawnWithCacheEnabled, isAnimationCacheEnabled, isChildrenDrawingOrderEnabled, isChildrenDrawnWithCacheEnabled, isMotionEventSplittingEnabled, jumpDrawablesToCurrentState, layout, measureChild, measureChildren, measureChildWithMargins, offsetDescendantRectToMyCoords, offsetRectIntoDescendantCoords, onAnimationEnd, onAnimationStart, onCreateDrawableState, onInterceptHoverEvent, onInterceptTouchEvent, onLayout, onRequestFocusInDescendants, onRequestSendAccessibilityEvent, recomputeViewAttributes, removeAllViews, removeAllViewsInLayout, removeDetachedView, removeView, removeViewAt, removeViewInLayout, removeViews, removeViewsInLayout, requestChildFocus, requestChildRectangleOnScreen, requestDisallowInterceptTouchEvent, requestFocus, requestSendAccessibilityEvent, requestTransparentRegion, scheduleLayoutAnimation, setAddStatesFromChildren, setAlwaysDrawnWithCacheEnabled, setAnimationCacheEnabled, setChildrenDrawingCacheEnabled, setChildrenDrawingOrderEnabled, setChildrenDrawnWithCacheEnabled, setClipChildren, setClipToPadding, setDescendantFocusability, setLayoutAnimation, setLayoutAnimationListener, setLayoutTransition, setMotionEventSplittingEnabled, setOnHierarchyChangeListener, setPadding, setPersistentDrawingCache, setStaticTransformationsEnabled, shouldDelayChildPressedState, showContextMenuForChild, startActionModeForChild, startLayoutAnimation, startViewTransition, updateViewLayout
 
Methods inherited from class android.view.View
addFocusables, addOnAttachStateChangeListener, addOnLayoutChangeListener, animate, announceForAccessibility, awakenScrollBars, awakenScrollBars, awakenScrollBars, bringToFront, buildDrawingCache, buildDrawingCache, buildLayer, callOnClick, cancelLongPress, canScrollHorizontally, canScrollVertically, checkInputConnectionProxy, clearAnimation, combineMeasuredStates, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeHorizontalScrollRange, computeScroll, computeVerticalScrollExtent, computeVerticalScrollOffset, computeVerticalScrollRange, createAccessibilityNodeInfo, createContextMenu, destroyDrawingCache, dispatchGenericMotionEvent, dispatchPopulateAccessibilityEvent, draw, findViewById, findViewWithTag, focusSearch, forceLayout, getAccessibilityNodeProvider, getAlpha, getAnimation, getApplicationWindowToken, getBackground, getBaseline, getBottom, getBottomFadingEdgeStrength, getBottomPaddingOffset, getCameraDistance, getContentDescription, getContext, getContextMenuInfo, getDefaultSize, getDrawableState, getDrawingCache, getDrawingCache, getDrawingCacheBackgroundColor, getDrawingCacheQuality, getDrawingRect, getDrawingTime, getFilterTouchesWhenObscured, getFitsSystemWindows, getFocusables, getFocusedRect, getGlobalVisibleRect, getGlobalVisibleRect, getHandler, getHeight, getHitRect, getHorizontalFadingEdgeLength, getHorizontalScrollbarHeight, getId, getImportantForAccessibility, getKeepScreenOn, getKeyDispatcherState, getLayerType, getLayoutParams, getLeft, getLeftFadingEdgeStrength, getLeftPaddingOffset, getLocalVisibleRect, getLocationInWindow, getLocationOnScreen, getMatrix, getMeasuredHeight, getMeasuredHeightAndState, getMeasuredState, getMeasuredWidth, getMeasuredWidthAndState, getMinimumHeight, getMinimumWidth, getNextFocusDownId, getNextFocusForwardId, getNextFocusLeftId, getNextFocusRightId, getNextFocusUpId, getOnFocusChangeListener, getOverScrollMode, getPaddingBottom, getPaddingLeft, getPaddingRight, getPaddingTop, getParent, getParentForAccessibility, getPivotX, getPivotY, getResources, getRight, getRightFadingEdgeStrength, getRightPaddingOffset, getRootView, getRotation, getRotationX, getRotationY, getScaleX, getScaleY, getScrollBarDefaultDelayBeforeFade, getScrollBarFadeDuration, getScrollBarSize, getScrollBarStyle, getScrollX, getScrollY, getSolidColor, getSuggestedMinimumHeight, getSuggestedMinimumWidth, getSystemUiVisibility, getTag, getTag, getTop, getTopFadingEdgeStrength, getTopPaddingOffset, getTouchables, getTouchDelegate, getTranslationX, getTranslationY, getVerticalFadingEdgeLength, getVerticalScrollbarPosition, getVerticalScrollbarWidth, getViewTreeObserver, getVisibility, getWidth, getWindowAttachCount, getWindowSystemUiVisibility, getWindowToken, getWindowVisibility, getWindowVisibleDisplayFrame, getX, getY, hasOnClickListeners, hasOverlappingRendering, hasTransientState, hasWindowFocus, inflate, initializeFadingEdge, initializeScrollbars, invalidate, invalidate, invalidate, invalidateDrawable, isActivated, isClickable, isDirty, isDrawingCacheEnabled, isDuplicateParentStateEnabled, isEnabled, isFocusable, isFocusableInTouchMode, isFocused, isHapticFeedbackEnabled, isHardwareAccelerated, isHorizontalFadingEdgeEnabled, isHorizontalScrollBarEnabled, isHovered, isInEditMode, isInTouchMode, isLayoutRequested, isLongClickable, isOpaque, isPaddingOffsetRequired, isPressed, isSaveEnabled, isSaveFromParentEnabled, isScrollbarFadingEnabled, isScrollContainer, isSelected, isShown, isSoundEffectsEnabled, isVerticalFadingEdgeEnabled, isVerticalScrollBarEnabled, measure, mergeDrawableStates, offsetLeftAndRight, offsetTopAndBottom, onAttachedToWindow, onCheckIsTextEditor, onConfigurationChanged, onCreateContextMenu, onCreateInputConnection, onDetachedFromWindow, onDisplayHint, onDragEvent, onDraw, onDrawScrollBars, onFilterTouchEventForSecurity, onFinishTemporaryDetach, onFocusChanged, onGenericMotionEvent, onHoverChanged, onHoverEvent, onInitializeAccessibilityEvent, onInitializeAccessibilityNodeInfo, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyPreIme, onKeyShortcut, onKeyUp, onMeasure, onOverScrolled, onPopulateAccessibilityEvent, onRestoreInstanceState, onSaveInstanceState, onScreenStateChanged, onScrollChanged, onSetAlpha, onSizeChanged, onStartTemporaryDetach, onTouchEvent, onTrackballEvent, onVisibilityChanged, onWindowFocusChanged, onWindowSystemUiVisibilityChanged, onWindowVisibilityChanged, overScrollBy, performAccessibilityAction, performClick, performHapticFeedback, performHapticFeedback, performLongClick, playSoundEffect, post, postDelayed, postInvalidate, postInvalidate, postInvalidateDelayed, postInvalidateDelayed, postInvalidateOnAnimation, postInvalidateOnAnimation, postOnAnimation, postOnAnimationDelayed, refreshDrawableState, removeCallbacks, removeOnAttachStateChangeListener, removeOnLayoutChangeListener, requestFitSystemWindows, requestFocus, requestFocus, requestFocusFromTouch, requestLayout, requestRectangleOnScreen, requestRectangleOnScreen, resolveSize, resolveSizeAndState, restoreHierarchyState, saveHierarchyState, scheduleDrawable, scrollBy, scrollTo, sendAccessibilityEvent, sendAccessibilityEventUnchecked, setAccessibilityDelegate, setActivated, setAlpha, setAnimation, setBackground, setBackgroundColor, setBackgroundDrawable, setBackgroundResource, setBottom, setCameraDistance, setClickable, setContentDescription, setDrawingCacheBackgroundColor, setDrawingCacheEnabled, setDrawingCacheQuality, setDuplicateParentStateEnabled, setEnabled, setFadingEdgeLength, setFilterTouchesWhenObscured, setFitsSystemWindows, setFocusable, setFocusableInTouchMode, setHapticFeedbackEnabled, setHasTransientState, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setHovered, setId, setImportantForAccessibility, setKeepScreenOn, setLayerType, setLayoutParams, setLeft, setLongClickable, setMeasuredDimension, setMinimumHeight, setMinimumWidth, setNextFocusDownId, setNextFocusForwardId, setNextFocusLeftId, setNextFocusRightId, setNextFocusUpId, setOnClickListener, setOnCreateContextMenuListener, setOnDragListener, setOnFocusChangeListener, setOnGenericMotionListener, setOnHoverListener, setOnKeyListener, setOnLongClickListener, setOnSystemUiVisibilityChangeListener, setOnTouchListener, setOverScrollMode, setPivotX, setPivotY, setPressed, setRight, setRotation, setRotationX, setRotationY, setSaveEnabled, setSaveFromParentEnabled, setScaleX, setScaleY, setScrollBarDefaultDelayBeforeFade, setScrollBarFadeDuration, setScrollbarFadingEnabled, setScrollBarSize, setScrollBarStyle, setScrollContainer, setScrollX, setScrollY, setSelected, setSoundEffectsEnabled, setSystemUiVisibility, setTag, setTag, setTop, setTouchDelegate, setTranslationX, setTranslationY, setVerticalFadingEdgeEnabled, setVerticalScrollBarEnabled, setVerticalScrollbarPosition, setVisibility, setWillNotCacheDrawing, setWillNotDraw, setX, setY, showContextMenu, startActionMode, startAnimation, startDrag, unscheduleDrawable, unscheduleDrawable, verifyDrawable, willNotCacheDrawing, willNotDraw
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface android.view.ViewParent
createContextMenu, getParent, getParentForAccessibility, isLayoutRequested, requestFitSystemWindows, requestLayout
 

Field Detail

MENU_DRAG_CONTENT

public static final int MENU_DRAG_CONTENT
Drag mode for sliding only the content view.

See Also:
Constant Field Values

MENU_DRAG_WINDOW

public static final int MENU_DRAG_WINDOW
Drag mode for sliding the entire window.

See Also:
Constant Field Values

TOUCH_MODE_NONE

public static final int TOUCH_MODE_NONE
Disallow opening the drawer by dragging the screen.

See Also:
Constant Field Values

TOUCH_MODE_BEZEL

public static final int TOUCH_MODE_BEZEL
Allow opening drawer only by dragging on the edge of the screen.

See Also:
Constant Field Values

TOUCH_MODE_FULLSCREEN

public static final int TOUCH_MODE_FULLSCREEN
Allow opening drawer by dragging anywhere on the screen.

See Also:
Constant Field Values

STATE_CLOSED

public static final int STATE_CLOSED
Indicates that the drawer is currently closed.

See Also:
Constant Field Values

STATE_CLOSING

public static final int STATE_CLOSING
Indicates that the drawer is currently closing.

See Also:
Constant Field Values

STATE_DRAGGING

public static final int STATE_DRAGGING
Indicates that the drawer is currently being dragged by the user.

See Also:
Constant Field Values

STATE_OPENING

public static final int STATE_OPENING
Indicates that the drawer is currently opening.

See Also:
Constant Field Values

STATE_OPEN

public static final int STATE_OPEN
Indicates that the drawer is currently open.

See Also:
Constant Field Values

mMenuOverlay

protected android.graphics.drawable.Drawable mMenuOverlay
Drawable used as menu overlay.


mDropShadowEnabled

protected boolean mDropShadowEnabled
Defines whether the drop shadow is enabled.


mDropShadowDrawable

protected android.graphics.drawable.Drawable mDropShadowDrawable
Drawable used as content drop shadow onto the menu.


mDropShadowSize

protected int mDropShadowSize
The size of the content drop shadow.


mActiveIndicator

protected android.graphics.Bitmap mActiveIndicator
Bitmap used to indicate the active view.


mActiveView

protected android.view.View mActiveView
The currently active view.


mActivePosition

protected int mActivePosition
Position of the active view. This is compared to View#getTag(R.id.mdActiveViewPosition) when drawing the indicator.


mActiveRect

protected final android.graphics.Rect mActiveRect
Used when reading the position of the active view.


mMenuContainer

protected BuildLayerFrameLayout mMenuContainer
The parent of the menu view.


mContentContainer

protected BuildLayerFrameLayout mContentContainer
The parent of the content view.


mMenuSize

protected int mMenuSize
The size of the menu (width or height depending on the gravity).


mMenuSizeSet

protected boolean mMenuSizeSet
Indicates whether the menu size has been set explicity either via the theme or by calling setMenuSize(int).


mMenuVisible

protected boolean mMenuVisible
Indicates whether the menu is currently visible.


mDrawerState

protected int mDrawerState
The current drawer state.

See Also:
STATE_CLOSED, STATE_CLOSING, STATE_DRAGGING, STATE_OPENING, STATE_OPEN

mTouchBezelSize

protected int mTouchBezelSize
The touch bezel size of the drawer in px.


mTouchSize

protected int mTouchSize
The touch area size of the drawer in px.


mTouchMode

protected int mTouchMode
Touch mode for the Drawer. Possible values are TOUCH_MODE_NONE, TOUCH_MODE_BEZEL or TOUCH_MODE_FULLSCREEN Default: TOUCH_MODE_BEZEL


mHardwareLayersEnabled

protected boolean mHardwareLayersEnabled
Indicates whether to use View.LAYER_TYPE_HARDWARE when animating the drawer.

Constructor Detail

MenuDrawer

public MenuDrawer(android.content.Context context)

MenuDrawer

public MenuDrawer(android.content.Context context,
                  android.util.AttributeSet attrs)

MenuDrawer

public MenuDrawer(android.content.Context context,
                  android.util.AttributeSet attrs,
                  int defStyle)
Method Detail

attach

public static MenuDrawer attach(android.app.Activity activity)
Attaches the MenuDrawer to the Activity.

Parameters:
activity - The activity that the MenuDrawer will be attached to.
Returns:
The created MenuDrawer instance.

attach

public static MenuDrawer attach(android.app.Activity activity,
                                int dragMode)
Attaches the MenuDrawer to the Activity.

Parameters:
activity - The activity the menu drawer will be attached to.
dragMode - The drag mode of the drawer. Can be either MENU_DRAG_CONTENT or MENU_DRAG_WINDOW.
Returns:
The created MenuDrawer instance.

attach

public static MenuDrawer attach(android.app.Activity activity,
                                Position position)
Attaches the MenuDrawer to the Activity.

Parameters:
activity - The activity the menu drawer will be attached to.
position - Where to position the menu.
Returns:
The created MenuDrawer instance.

attach

public static MenuDrawer attach(android.app.Activity activity,
                                int dragMode,
                                Position position)
Attaches the MenuDrawer to the Activity.

Parameters:
activity - The activity the menu drawer will be attached to.
dragMode - The drag mode of the drawer. Can be either MENU_DRAG_CONTENT or MENU_DRAG_WINDOW.
position - Where to position the menu.
Returns:
The created MenuDrawer instance.

attach

public static MenuDrawer attach(android.app.Activity activity,
                                int dragMode,
                                Position position,
                                boolean attachStatic)
Attaches the MenuDrawer to the Activity.

Parameters:
activity - The activity the menu drawer will be attached to.
dragMode - The drag mode of the drawer. Can be either MENU_DRAG_CONTENT or MENU_DRAG_WINDOW.
position - Where to position the menu.
attachStatic - Whether a static (non-draggable, always visible) drawer should be used.
Returns:
The created MenuDrawer instance.

initDrawer

protected void initDrawer(android.content.Context context,
                          android.util.AttributeSet attrs,
                          int defStyle)

onFinishInflate

protected void onFinishInflate()
Overrides:
onFinishInflate in class android.view.View

dpToPx

protected int dpToPx(int dp)

toggleMenu

public void toggleMenu()
Toggles the menu open and close with animation.


toggleMenu

public abstract void toggleMenu(boolean animate)
Toggles the menu open and close.

Parameters:
animate - Whether open/close should be animated.

openMenu

public void openMenu()
Animates the menu open.


openMenu

public abstract void openMenu(boolean animate)
Opens the menu.

Parameters:
animate - Whether open/close should be animated.

closeMenu

public void closeMenu()
Animates the menu closed.


closeMenu

public abstract void closeMenu(boolean animate)
Closes the menu.

Parameters:
animate - Whether open/close should be animated.

isMenuVisible

public abstract boolean isMenuVisible()
Indicates whether the menu is currently visible.

Returns:
True if the menu is open, false otherwise.

setMenuSize

public abstract void setMenuSize(int size)
Set the size of the menu drawer when open.

Parameters:
size -

setActiveView

public void setActiveView(android.view.View v)
Set the active view. If the mdActiveIndicator attribute is set, this View will have the indicator drawn next to it.

Parameters:
v - The active view.

setActiveView

public void setActiveView(android.view.View v,
                          int position)
Set the active view. If the mdActiveIndicator attribute is set, this View will have the indicator drawn next to it.

Parameters:
v - The active view.
position - Optional position, usually used with ListView. v.setTag(R.id.mdActiveViewPosition, position) must be called first.

setOffsetMenuEnabled

public abstract void setOffsetMenuEnabled(boolean offsetMenu)
Enables or disables offsetting the menu when dragging the drawer.

Parameters:
offsetMenu - True to offset the menu, false otherwise.

getOffsetMenuEnabled

public abstract boolean getOffsetMenuEnabled()
Indicates whether the menu is being offset when dragging the drawer.

Returns:
True if the menu is being offset, false otherwise.

getDrawerState

public int getDrawerState()

setOnDrawerStateChangeListener

public void setOnDrawerStateChangeListener(MenuDrawer.OnDrawerStateChangeListener listener)
Register a callback to be invoked when the drawer state changes.

Parameters:
listener - The callback that will run.

setDropShadowEnabled

public void setDropShadowEnabled(boolean enabled)
Defines whether the drop shadow is enabled.

Parameters:
enabled - Whether the drop shadow is enabled.

setDropShadowColor

public abstract void setDropShadowColor(int color)
Sets the color of the drop shadow.

Parameters:
color - The color of the drop shadow.

setDropShadow

public void setDropShadow(android.graphics.drawable.Drawable drawable)
Sets the drawable of the drop shadow.

Parameters:
drawable - The drawable of the drop shadow.

setDropShadow

public void setDropShadow(int resId)
Sets the drawable of the drop shadow.

Parameters:
resId - The resource identifier of the the drawable.

getDropShadow

public android.graphics.drawable.Drawable getDropShadow()
Returns the drawable of the drop shadow.


setDropShadowSize

public void setDropShadowSize(int size)
Sets the size of the drop shadow.

Parameters:
size - The size of the drop shadow in px.

peekDrawer

public abstract void peekDrawer()
Animates the drawer slightly open until the user opens the drawer.


peekDrawer

public abstract void peekDrawer(long delay)
Animates the drawer slightly open. If delay is larger than 0, this happens until the user opens the drawer.

Parameters:
delay - The delay (in milliseconds) between each run of the animation. If 0, this animation is only run once.

peekDrawer

public abstract void peekDrawer(long startDelay,
                                long delay)
Animates the drawer slightly open. If delay is larger than 0, this happens until the user opens the drawer.

Parameters:
startDelay - The delay (in milliseconds) until the animation is first run.
delay - The delay (in milliseconds) between each run of the animation. If 0, this animation is only run once.

setHardwareLayerEnabled

public abstract void setHardwareLayerEnabled(boolean enabled)
Enables or disables the user of View.LAYER_TYPE_HARDWARE when animations views.

Parameters:
enabled - Whether hardware layers are enabled.

getMenuContainer

public android.view.ViewGroup getMenuContainer()
Returns the ViewGroup used as a parent for the menu view.

Returns:
The menu view's parent.

getContentContainer

public android.view.ViewGroup getContentContainer()
Returns the ViewGroup used as a parent for the content view.

Returns:
The content view's parent.

setMenuView

public void setMenuView(int layoutResId)
Set the menu view from a layout resource.

Parameters:
layoutResId - Resource ID to be inflated.

setMenuView

public void setMenuView(android.view.View view)
Set the menu view to an explicit view.

Parameters:
view - The menu view.

setMenuView

public void setMenuView(android.view.View view,
                        android.view.ViewGroup.LayoutParams params)
Set the menu view to an explicit view.

Parameters:
view - The menu view.
params - Layout parameters for the view.

getMenuView

public android.view.View getMenuView()
Returns the menu view.

Returns:
The menu view.

setContentView

public void setContentView(int layoutResId)
Set the content from a layout resource.

Parameters:
layoutResId - Resource ID to be inflated.

setContentView

public void setContentView(android.view.View view)
Set the content to an explicit view.

Parameters:
view - The desired content to display.

setContentView

public void setContentView(android.view.View view,
                           android.view.ViewGroup.LayoutParams params)
Set the content to an explicit view.

Parameters:
view - The desired content to display.
params - Layout parameters for the view.

setDrawerState

protected void setDrawerState(int state)

logDrawerState

protected void logDrawerState(int state)

getTouchMode

public abstract int getTouchMode()
Returns the touch mode.


setTouchMode

public abstract void setTouchMode(int mode)
Sets the drawer touch mode. Possible values are TOUCH_MODE_NONE, TOUCH_MODE_BEZEL or TOUCH_MODE_FULLSCREEN.

Parameters:
mode - The touch mode.

setTouchBezelSize

public abstract void setTouchBezelSize(int size)
Sets the size of the touch bezel.

Parameters:
size - The touch bezel size in px.

getTouchBezelSize

public abstract int getTouchBezelSize()
Returns the size of the touch bezel in px.


fitSystemWindows

protected boolean fitSystemWindows(android.graphics.Rect insets)
Overrides:
fitSystemWindows in class android.view.ViewGroup

saveState

public abstract android.os.Parcelable saveState()
Saves the state of the drawer.

Returns:
Returns a Parcelable containing the drawer state.

restoreState

public abstract void restoreState(android.os.Parcelable in)
Restores the state of the drawer.

Parameters:
in - A parcelable containing the drawer state.


Copyright © 2012-2013. All Rights Reserved.