kr.co.hanwha.hifive.view.refresh

## Class CustomRefreshLayout

- java.lang.Object
- - android.view.View
  - - android.view.ViewGroup
    - - kr.co.hanwha.hifive.view.refresh.CustomRefreshLayout

- All Implemented Interfaces:
    android.graphics.drawable.Drawable.Callback, android.support.v4.view.NestedScrollingChild, android.support.v4.view.NestedScrollingParent, android.view.accessibility.AccessibilityEventSource, android.view.KeyEvent.Callback, android.view.ViewManager, android.view.ViewParent

      public class CustomRefreshLayout
      extends android.view.ViewGroup
      implements android.support.v4.view.NestedScrollingParent, android.support.v4.view.NestedScrollingChild

  Created by sanghoonkwon on 2018. 1. 12..

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static interface` | `CustomRefreshLayout.OnChildScrollUpCallback` Classes that wish to override `SwipeRefreshLayout#canChildScrollUp()` method behavior should implement this interface.

    - ### 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.OnApplyWindowInsetsListener, android.view.View.OnAttachStateChangeListener, android.view.View.OnCapturedPointerListener, android.view.View.OnClickListener, android.view.View.OnContextClickListener, 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.OnScrollChangeListener, android.view.View.OnSystemUiVisibilityChangeListener, android.view.View.OnTouchListener`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `int` | `ANIMATION_DURATION`
    `int` | `bottomScroll`
    `android.view.View` | `footer`
    `android.view.View` | `header`
    `boolean` | `isLoading`
    `boolean` | `isRefreshing`
    `FooterListener` | `mFooterListener`
    `HeaderListener` | `mHeaderListener`

    - ### Fields inherited from class android.view.ViewGroup

      `CLIP_TO_PADDING_MASK, FOCUS_AFTER_DESCENDANTS, FOCUS_BEFORE_DESCENDANTS, FOCUS_BLOCK_DESCENDANTS, LAYOUT_MODE_CLIP_BOUNDS, LAYOUT_MODE_OPTICAL_BOUNDS, PERSISTENT_ALL_CACHES, PERSISTENT_ANIMATION_CACHE, PERSISTENT_NO_CACHE, PERSISTENT_SCROLLING_CACHE`

    - ### Fields inherited from class android.view.View

      `ACCESSIBILITY_LIVE_REGION_ASSERTIVE, ACCESSIBILITY_LIVE_REGION_NONE, ACCESSIBILITY_LIVE_REGION_POLITE, ALPHA, AUTOFILL_FLAG_INCLUDE_NOT_IMPORTANT_VIEWS, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DAY, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_MONTH, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_YEAR, AUTOFILL_HINT_CREDIT_CARD_NUMBER, AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE, AUTOFILL_HINT_EMAIL_ADDRESS, AUTOFILL_HINT_NAME, AUTOFILL_HINT_PASSWORD, AUTOFILL_HINT_PHONE, AUTOFILL_HINT_POSTAL_ADDRESS, AUTOFILL_HINT_POSTAL_CODE, AUTOFILL_HINT_USERNAME, AUTOFILL_TYPE_DATE, AUTOFILL_TYPE_LIST, AUTOFILL_TYPE_NONE, AUTOFILL_TYPE_TEXT, AUTOFILL_TYPE_TOGGLE, DRAG_FLAG_GLOBAL, DRAG_FLAG_GLOBAL_PERSISTABLE_URI_PERMISSION, DRAG_FLAG_GLOBAL_PREFIX_URI_PERMISSION, DRAG_FLAG_GLOBAL_URI_READ, DRAG_FLAG_GLOBAL_URI_WRITE, DRAG_FLAG_OPAQUE, 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, FOCUSABLE, FOCUSABLE_AUTO, 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_NO_HIDE_DESCENDANTS, IMPORTANT_FOR_ACCESSIBILITY_YES, IMPORTANT_FOR_AUTOFILL_AUTO, IMPORTANT_FOR_AUTOFILL_NO, IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_AUTOFILL_YES, IMPORTANT_FOR_AUTOFILL_YES_EXCLUDE_DESCENDANTS, INVISIBLE, KEEP_SCREEN_ON, LAYER_TYPE_HARDWARE, LAYER_TYPE_NONE, LAYER_TYPE_SOFTWARE, LAYOUT_DIRECTION_INHERIT, LAYOUT_DIRECTION_LOCALE, LAYOUT_DIRECTION_LTR, LAYOUT_DIRECTION_RTL, MEASURED_HEIGHT_STATE_SHIFT, MEASURED_SIZE_MASK, MEASURED_STATE_MASK, MEASURED_STATE_TOO_SMALL, NO_ID, NOT_FOCUSABLE, 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_STATE_SET, PRESSED_WINDOW_FOCUSED_STATE_SET, ROTATION, ROTATION_X, ROTATION_Y, SCALE_X, SCALE_Y, SCREEN_STATE_OFF, SCREEN_STATE_ON, SCROLL_AXIS_HORIZONTAL, SCROLL_AXIS_NONE, SCROLL_AXIS_VERTICAL, SCROLL_INDICATOR_BOTTOM, SCROLL_INDICATOR_END, SCROLL_INDICATOR_LEFT, SCROLL_INDICATOR_RIGHT, SCROLL_INDICATOR_START, SCROLL_INDICATOR_TOP, 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_IMMERSIVE, SYSTEM_UI_FLAG_IMMERSIVE_STICKY, SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN, SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION, SYSTEM_UI_FLAG_LAYOUT_STABLE, SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, SYSTEM_UI_FLAG_LIGHT_STATUS_BAR, SYSTEM_UI_FLAG_LOW_PROFILE, SYSTEM_UI_FLAG_VISIBLE, SYSTEM_UI_LAYOUT_FLAGS, TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_GRAVITY, TEXT_ALIGNMENT_INHERIT, TEXT_ALIGNMENT_TEXT_END, TEXT_ALIGNMENT_TEXT_START, TEXT_ALIGNMENT_VIEW_END, TEXT_ALIGNMENT_VIEW_START, TEXT_DIRECTION_ANY_RTL, TEXT_DIRECTION_FIRST_STRONG, TEXT_DIRECTION_FIRST_STRONG_LTR, TEXT_DIRECTION_FIRST_STRONG_RTL, TEXT_DIRECTION_INHERIT, TEXT_DIRECTION_LOCALE, TEXT_DIRECTION_LTR, TEXT_DIRECTION_RTL, TRANSLATION_X, TRANSLATION_Y, TRANSLATION_Z, VIEW_LOG_TAG, VISIBLE, WINDOW_FOCUSED_STATE_SET, X, Y, Z`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CustomRefreshLayout(android.content.Context context)`
    `CustomRefreshLayout(android.content.Context context, android.util.AttributeSet attrs)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addFooter(android.view.View footer)` add the footer view.
    `void` | `addHeader(android.view.View header)` add the refresh view.
    `void` | `autoLoad()`
    `boolean` | `canChildScrollUp()`
    `boolean` | `dispatchNestedFling(float velocityX, float velocityY, boolean consumed)`
    `boolean` | `dispatchNestedPreFling(float velocityX, float velocityY)`
    `boolean` | `dispatchNestedPreScroll(int dx, int dy, int[] consumed, int[] offsetInWindow)`
    `boolean` | `dispatchNestedScroll(int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed, int[] offsetInWindow)`
    `int` | `getNestedScrollAxes()`
    `boolean` | `hasNestedScrollingParent()`
    `boolean` | `isNestedScrollingEnabled()`
    `void` | `measureView(android.view.View v)`
    `protected void` | `onAttachedToWindow()`
    `protected void` | `onFinishInflate()`
    `boolean` | `onInterceptTouchEvent(android.view.MotionEvent ev)`
    `protected void` | `onLayout(boolean changed, int l, int t, int r, int b)`
    `protected void` | `onMeasure(int widthMeasureSpec, int heightMeasureSpec)`
    `boolean` | `onNestedFling(android.view.View target, float velocityX, float velocityY, boolean consumed)`
    `boolean` | `onNestedPreFling(android.view.View target, float velocityX, float velocityY)`
    `void` | `onNestedPreScroll(android.view.View target, int dx, int dy, int[] consumed)`
    `void` | `onNestedScroll(android.view.View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed)`
    `void` | `onNestedScrollAccepted(android.view.View child, android.view.View target, int axes)`
    `boolean` | `onStartNestedScroll(android.view.View child, android.view.View target, int nestedScrollAxes)`
    `void` | `onStopNestedScroll(android.view.View target)`
    `boolean` | `onTouchEvent(android.view.MotionEvent ev)`
    `void` | `performScroll(int dy)`
    `void` | `setAutoLoadMore(boolean autoLoad)`
    `void` | `setAutoRefresh(boolean isAutoRefresh)` call this method to auto refresh when first init.
    `void` | `setEnabled(boolean enabled)`
    `void` | `setLoadEnable(boolean isCanLoad)`
    `void` | `setNestedScrollingEnabled(boolean enabled)`
    `void` | `setOnChildScrollUpCallback(CustomRefreshLayout.OnChildScrollUpCallback callback)` Set a callback to override `SwipeRefreshLayout#canChildScrollUp()` method.
    `void` | `setOnFooterListener(FooterListener mFooterListener)` Call this method to add `FooterListener` ,It's better to make the `footer` to impl.
    `void` | `setOnHeaderListener(HeaderListener mHeaderListener)` Call this method to add `HeaderListener` ,It's better to make the `header` to impl.
    `void` | `setOnRefreshListener(OnRefreshListener listener)` Set the listener to be notified when a refresh is triggered via the swipe gesture.
    `void` | `setRefreshEnable(boolean isCanRefresh)`
    `boolean` | `startNestedScroll(int axes)`
    `void` | `stopLoadMore(boolean isSuccess)`
    `void` | `stopLoadMore(boolean isSuccess, long delay)`
    `void` | `stopNestedScroll()`
    `void` | `stopRefresh(boolean isSuccess)` call this method to make `CustomRefreshLayout(android.content.Context, android.util.AttributeSet)` know the refresh is over.
    `void` | `stopRefresh(boolean isSuccess, long delay)` call this method to make `CustomRefreshLayout(android.content.Context, android.util.AttributeSet)` know this refresh is over.

    - ### Methods inherited from class android.view.ViewGroup

      `addChildrenForAccessibility, addFocusables, addKeyboardNavigationClusters, addStatesFromChildren, addTouchables, addView, addView, addView, addView, addView, addViewInLayout, addViewInLayout, attachLayoutAnimationParameters, attachViewToParent, bringChildToFront, canAnimate, checkLayoutParams, childDrawableStateChanged, childHasTransientStateChanged, cleanupLayoutState, clearChildFocus, clearDisappearingChildren, clearFocus, debug, detachAllViewsFromParent, detachViewFromParent, detachViewFromParent, detachViewsFromParent, dispatchApplyWindowInsets, dispatchCapturedPointerEvent, dispatchConfigurationChanged, dispatchDisplayHint, dispatchDragEvent, dispatchDraw, dispatchDrawableHotspotChanged, dispatchFreezeSelfOnly, dispatchGenericFocusedEvent, dispatchGenericPointerEvent, dispatchHoverEvent, dispatchKeyEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchPointerCaptureChanged, dispatchProvideAutofillStructure, dispatchProvideStructure, 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, getAccessibilityClassName, getChildAt, getChildCount, getChildDrawingOrder, getChildMeasureSpec, getChildStaticTransformation, getChildVisibleRect, getClipChildren, getClipToPadding, getDescendantFocusability, getFocusedChild, getLayoutAnimation, getLayoutAnimationListener, getLayoutMode, getLayoutTransition, getOverlay, getPersistentDrawingCache, getTouchscreenBlocksFocus, hasFocus, hasTransientState, indexOfChild, invalidateChild, invalidateChildInParent, isAlwaysDrawnWithCacheEnabled, isAnimationCacheEnabled, isChildrenDrawingOrderEnabled, isChildrenDrawnWithCacheEnabled, isMotionEventSplittingEnabled, isTransitionGroup, jumpDrawablesToCurrentState, layout, measureChild, measureChildren, measureChildWithMargins, notifySubtreeAccessibilityStateChanged, offsetDescendantRectToMyCoords, offsetRectIntoDescendantCoords, onCreateDrawableState, onDescendantInvalidated, onDetachedFromWindow, onInterceptHoverEvent, onNestedPrePerformAccessibilityAction, onRequestFocusInDescendants, onRequestSendAccessibilityEvent, onResolvePointerIcon, onViewAdded, onViewRemoved, recomputeViewAttributes, removeAllViews, removeAllViewsInLayout, removeDetachedView, removeView, removeViewAt, removeViewInLayout, removeViews, removeViewsInLayout, requestChildFocus, requestChildRectangleOnScreen, requestDisallowInterceptTouchEvent, requestFocus, requestSendAccessibilityEvent, requestTransparentRegion, restoreDefaultFocus, scheduleLayoutAnimation, setAddStatesFromChildren, setAlwaysDrawnWithCacheEnabled, setAnimationCacheEnabled, setChildrenDrawingCacheEnabled, setChildrenDrawingOrderEnabled, setChildrenDrawnWithCacheEnabled, setClipChildren, setClipToPadding, setDescendantFocusability, setLayoutAnimation, setLayoutAnimationListener, setLayoutMode, setLayoutTransition, setMotionEventSplittingEnabled, setOnHierarchyChangeListener, setPersistentDrawingCache, setStaticTransformationsEnabled, setTouchscreenBlocksFocus, setTransitionGroup, shouldDelayChildPressedState, showContextMenuForChild, showContextMenuForChild, startActionModeForChild, startActionModeForChild, startLayoutAnimation, startViewTransition, updateViewLayout`

    - ### Methods inherited from class android.view.View

      `addExtraDataToAccessibilityNodeInfo, addFocusables, addOnAttachStateChangeListener, addOnLayoutChangeListener, animate, announceForAccessibility, autofill, autofill, awakenScrollBars, awakenScrollBars, awakenScrollBars, bringToFront, buildDrawingCache, buildDrawingCache, buildLayer, callOnClick, cancelDragAndDrop, cancelLongPress, cancelPendingInputEvents, canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, canScrollHorizontally, canScrollVertically, checkInputConnectionProxy, clearAnimation, combineMeasuredStates, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeHorizontalScrollRange, computeScroll, computeSystemWindowInsets, computeVerticalScrollExtent, computeVerticalScrollOffset, computeVerticalScrollRange, createAccessibilityNodeInfo, createContextMenu, destroyDrawingCache, dispatchFinishTemporaryDetach, dispatchGenericMotionEvent, dispatchNestedPrePerformAccessibilityAction, dispatchPopulateAccessibilityEvent, dispatchStartTemporaryDetach, draw, drawableHotspotChanged, findViewById, findViewWithTag, fitSystemWindows, focusSearch, forceHasOverlappingRendering, forceLayout, generateViewId, getAccessibilityLiveRegion, getAccessibilityNodeProvider, getAccessibilityTraversalAfter, getAccessibilityTraversalBefore, getAlpha, getAnimation, getApplicationWindowToken, getAutofillHints, getAutofillId, getAutofillType, getAutofillValue, getBackground, getBackgroundTintList, getBackgroundTintMode, getBaseline, getBottom, getBottomFadingEdgeStrength, getBottomPaddingOffset, getCameraDistance, getClipBounds, getClipBounds, getClipToOutline, getContentDescription, getContext, getContextMenuInfo, getDefaultFocusHighlightEnabled, getDefaultSize, getDisplay, getDrawableState, getDrawingCache, getDrawingCache, getDrawingCacheBackgroundColor, getDrawingCacheQuality, getDrawingRect, getDrawingTime, getElevation, getFilterTouchesWhenObscured, getFitsSystemWindows, getFocusable, getFocusables, getFocusedRect, getForeground, getForegroundGravity, getForegroundTintList, getForegroundTintMode, getGlobalVisibleRect, getGlobalVisibleRect, getHandler, getHasOverlappingRendering, getHeight, getHitRect, getHorizontalFadingEdgeLength, getHorizontalScrollbarHeight, getId, getImportantForAccessibility, getImportantForAutofill, getKeepScreenOn, getKeyDispatcherState, getLabelFor, getLayerType, getLayoutDirection, getLayoutParams, getLeft, getLeftFadingEdgeStrength, getLeftPaddingOffset, getLocalVisibleRect, getLocationInWindow, getLocationOnScreen, getMatrix, getMeasuredHeight, getMeasuredHeightAndState, getMeasuredState, getMeasuredWidth, getMeasuredWidthAndState, getMinimumHeight, getMinimumWidth, getNextClusterForwardId, getNextFocusDownId, getNextFocusForwardId, getNextFocusLeftId, getNextFocusRightId, getNextFocusUpId, getOnFocusChangeListener, getOutlineProvider, getOverScrollMode, getPaddingBottom, getPaddingEnd, getPaddingLeft, getPaddingRight, getPaddingStart, getPaddingTop, getParent, getParentForAccessibility, getPivotX, getPivotY, getPointerIcon, getResources, getRevealOnFocusHint, getRight, getRightFadingEdgeStrength, getRightPaddingOffset, getRootView, getRootWindowInsets, getRotation, getRotationX, getRotationY, getScaleX, getScaleY, getScrollBarDefaultDelayBeforeFade, getScrollBarFadeDuration, getScrollBarSize, getScrollBarStyle, getScrollIndicators, getScrollX, getScrollY, getSolidColor, getStateListAnimator, getSuggestedMinimumHeight, getSuggestedMinimumWidth, getSystemUiVisibility, getTag, getTag, getTextAlignment, getTextDirection, getTooltipText, getTop, getTopFadingEdgeStrength, getTopPaddingOffset, getTouchables, getTouchDelegate, getTransitionName, getTranslationX, getTranslationY, getTranslationZ, getVerticalFadingEdgeLength, getVerticalScrollbarPosition, getVerticalScrollbarWidth, getViewTreeObserver, getVisibility, getWidth, getWindowAttachCount, getWindowId, getWindowSystemUiVisibility, getWindowToken, getWindowVisibility, getWindowVisibleDisplayFrame, getX, getY, getZ, hasExplicitFocusable, hasFocusable, hasOnClickListeners, hasOverlappingRendering, hasPointerCapture, hasWindowFocus, inflate, invalidate, invalidate, invalidate, invalidateDrawable, invalidateOutline, isAccessibilityFocused, isActivated, isAttachedToWindow, isClickable, isContextClickable, isDirty, isDrawingCacheEnabled, isDuplicateParentStateEnabled, isEnabled, isFocusable, isFocusableInTouchMode, isFocused, isFocusedByDefault, isHapticFeedbackEnabled, isHardwareAccelerated, isHorizontalFadingEdgeEnabled, isHorizontalScrollBarEnabled, isHovered, isImportantForAccessibility, isImportantForAutofill, isInEditMode, isInLayout, isInTouchMode, isKeyboardNavigationCluster, isLaidOut, isLayoutDirectionResolved, isLayoutRequested, isLongClickable, isOpaque, isPaddingOffsetRequired, isPaddingRelative, isPressed, isSaveEnabled, isSaveFromParentEnabled, isScrollbarFadingEnabled, isScrollContainer, isSelected, isShown, isSoundEffectsEnabled, isTemporarilyDetached, isTextAlignmentResolved, isTextDirectionResolved, isVerticalFadingEdgeEnabled, isVerticalScrollBarEnabled, keyboardNavigationClusterSearch, measure, mergeDrawableStates, offsetLeftAndRight, offsetTopAndBottom, onAnimationEnd, onAnimationStart, onApplyWindowInsets, onCancelPendingInputEvents, onCapturedPointerEvent, onCheckIsTextEditor, onConfigurationChanged, onCreateContextMenu, onCreateInputConnection, onDisplayHint, onDragEvent, onDraw, onDrawForeground, onDrawScrollBars, onFilterTouchEventForSecurity, onFinishTemporaryDetach, onFocusChanged, onGenericMotionEvent, onHoverChanged, onHoverEvent, onInitializeAccessibilityEvent, onInitializeAccessibilityNodeInfo, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyPreIme, onKeyShortcut, onKeyUp, onOverScrolled, onPointerCaptureChange, onPopulateAccessibilityEvent, onProvideAutofillStructure, onProvideAutofillVirtualStructure, onProvideStructure, onProvideVirtualStructure, onRestoreInstanceState, onRtlPropertiesChanged, onSaveInstanceState, onScreenStateChanged, onScrollChanged, onSetAlpha, onSizeChanged, onStartTemporaryDetach, onTrackballEvent, onVisibilityAggregated, onVisibilityChanged, onWindowFocusChanged, onWindowSystemUiVisibilityChanged, onWindowVisibilityChanged, overScrollBy, performAccessibilityAction, performClick, performContextClick, performContextClick, performHapticFeedback, performHapticFeedback, performLongClick, performLongClick, playSoundEffect, post, postDelayed, postInvalidate, postInvalidate, postInvalidateDelayed, postInvalidateDelayed, postInvalidateOnAnimation, postInvalidateOnAnimation, postOnAnimation, postOnAnimationDelayed, refreshDrawableState, releasePointerCapture, removeCallbacks, removeOnAttachStateChangeListener, removeOnLayoutChangeListener, requestApplyInsets, requestFitSystemWindows, requestFocus, requestFocus, requestFocusFromTouch, requestLayout, requestPointerCapture, requestRectangleOnScreen, requestRectangleOnScreen, requestUnbufferedDispatch, resolveSize, resolveSizeAndState, restoreHierarchyState, saveHierarchyState, scheduleDrawable, scrollBy, scrollTo, sendAccessibilityEvent, sendAccessibilityEventUnchecked, setAccessibilityDelegate, setAccessibilityLiveRegion, setAccessibilityTraversalAfter, setAccessibilityTraversalBefore, setActivated, setAlpha, setAnimation, setAutofillHints, setBackground, setBackgroundColor, setBackgroundDrawable, setBackgroundResource, setBackgroundTintList, setBackgroundTintMode, setBottom, setCameraDistance, setClickable, setClipBounds, setClipToOutline, setContentDescription, setContextClickable, setDefaultFocusHighlightEnabled, setDrawingCacheBackgroundColor, setDrawingCacheEnabled, setDrawingCacheQuality, setDuplicateParentStateEnabled, setElevation, setFadingEdgeLength, setFilterTouchesWhenObscured, setFitsSystemWindows, setFocusable, setFocusable, setFocusableInTouchMode, setFocusedByDefault, setForeground, setForegroundGravity, setForegroundTintList, setForegroundTintMode, setHapticFeedbackEnabled, setHasTransientState, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setHovered, setId, setImportantForAccessibility, setImportantForAutofill, setKeepScreenOn, setKeyboardNavigationCluster, setLabelFor, setLayerPaint, setLayerType, setLayoutDirection, setLayoutParams, setLeft, setLongClickable, setMeasuredDimension, setMinimumHeight, setMinimumWidth, setNextClusterForwardId, setNextFocusDownId, setNextFocusForwardId, setNextFocusLeftId, setNextFocusRightId, setNextFocusUpId, setOnApplyWindowInsetsListener, setOnCapturedPointerListener, setOnClickListener, setOnContextClickListener, setOnCreateContextMenuListener, setOnDragListener, setOnFocusChangeListener, setOnGenericMotionListener, setOnHoverListener, setOnKeyListener, setOnLongClickListener, setOnScrollChangeListener, setOnSystemUiVisibilityChangeListener, setOnTouchListener, setOutlineProvider, setOverScrollMode, setPadding, setPaddingRelative, setPivotX, setPivotY, setPointerIcon, setPressed, setRevealOnFocusHint, setRight, setRotation, setRotationX, setRotationY, setSaveEnabled, setSaveFromParentEnabled, setScaleX, setScaleY, setScrollBarDefaultDelayBeforeFade, setScrollBarFadeDuration, setScrollbarFadingEnabled, setScrollBarSize, setScrollBarStyle, setScrollContainer, setScrollIndicators, setScrollIndicators, setScrollX, setScrollY, setSelected, setSoundEffectsEnabled, setStateListAnimator, setSystemUiVisibility, setTag, setTag, setTextAlignment, setTextDirection, setTooltipText, setTop, setTouchDelegate, setTransitionName, setTranslationX, setTranslationY, setTranslationZ, setVerticalFadingEdgeEnabled, setVerticalScrollBarEnabled, setVerticalScrollbarPosition, setVisibility, setWillNotCacheDrawing, setWillNotDraw, setX, setY, setZ, showContextMenu, showContextMenu, startActionMode, startActionMode, startAnimation, startDrag, startDragAndDrop, toString, unscheduleDrawable, unscheduleDrawable, updateDragShadow, verifyDrawable, willNotCacheDrawing, willNotDraw`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface android.view.ViewParent

      `canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, createContextMenu, getLayoutDirection, getParent, getParentForAccessibility, getTextAlignment, getTextDirection, isLayoutDirectionResolved, isLayoutRequested, isTextAlignmentResolved, isTextDirectionResolved, keyboardNavigationClusterSearch, requestFitSystemWindows, requestLayout`

- - ### Field Detail

    - #### header

          public android.view.View header

    - #### footer

          public android.view.View footer

    - #### mHeaderListener

          @Nullable
          public HeaderListener mHeaderListener

    - #### mFooterListener

          @Nullable
          public FooterListener mFooterListener

    - #### bottomScroll

          public int bottomScroll

    - #### ANIMATION_DURATION

          public int ANIMATION_DURATION

    - #### isLoading

          public boolean isLoading

    - #### isRefreshing

          public boolean isRefreshing

  - ### Constructor Detail

    - #### CustomRefreshLayout

          public CustomRefreshLayout(android.content.Context context)

    - #### CustomRefreshLayout

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

  - ### Method Detail

    - #### onAttachedToWindow

          protected void onAttachedToWindow()

      Overrides:
        `onAttachedToWindow` in class `android.view.ViewGroup`

    - #### onNestedScrollAccepted

          public void onNestedScrollAccepted(android.view.View child,
                                             android.view.View target,
                                             int axes)

      Specified by:
        `onNestedScrollAccepted` in interface `android.support.v4.view.NestedScrollingParent`
      Specified by:
        `onNestedScrollAccepted` in interface `android.view.ViewParent`
      Overrides:
        `onNestedScrollAccepted` in class `android.view.ViewGroup`

    - #### setEnabled

          public void setEnabled(boolean enabled)

      Overrides:
        `setEnabled` in class `android.view.View`

    - #### setNestedScrollingEnabled

          public void setNestedScrollingEnabled(boolean enabled)

      Specified by:
        `setNestedScrollingEnabled` in interface `android.support.v4.view.NestedScrollingChild`
      Overrides:
        `setNestedScrollingEnabled` in class `android.view.View`

    - #### isNestedScrollingEnabled

          public boolean isNestedScrollingEnabled()

      Specified by:
        `isNestedScrollingEnabled` in interface `android.support.v4.view.NestedScrollingChild`
      Overrides:
        `isNestedScrollingEnabled` in class `android.view.View`

    - #### startNestedScroll

          public boolean startNestedScroll(int axes)

      Specified by:
        `startNestedScroll` in interface `android.support.v4.view.NestedScrollingChild`
      Overrides:
        `startNestedScroll` in class `android.view.View`

    - #### stopNestedScroll

          public void stopNestedScroll()

      Specified by:
        `stopNestedScroll` in interface `android.support.v4.view.NestedScrollingChild`
      Overrides:
        `stopNestedScroll` in class `android.view.View`

    - #### hasNestedScrollingParent

          public boolean hasNestedScrollingParent()

      Specified by:
        `hasNestedScrollingParent` in interface `android.support.v4.view.NestedScrollingChild`
      Overrides:
        `hasNestedScrollingParent` in class `android.view.View`

    - #### dispatchNestedScroll

          public boolean dispatchNestedScroll(int dxConsumed,
                                              int dyConsumed,
                                              int dxUnconsumed,
                                              int dyUnconsumed,
                                              int[] offsetInWindow)

      Specified by:
        `dispatchNestedScroll` in interface `android.support.v4.view.NestedScrollingChild`
      Overrides:
        `dispatchNestedScroll` in class `android.view.View`

    - #### dispatchNestedPreScroll

          public boolean dispatchNestedPreScroll(int dx,
                                                 int dy,
                                                 int[] consumed,
                                                 int[] offsetInWindow)

      Specified by:
        `dispatchNestedPreScroll` in interface `android.support.v4.view.NestedScrollingChild`
      Overrides:
        `dispatchNestedPreScroll` in class `android.view.View`

    - #### onNestedPreFling

          public boolean onNestedPreFling(android.view.View target,
                                          float velocityX,
                                          float velocityY)

      Specified by:
        `onNestedPreFling` in interface `android.support.v4.view.NestedScrollingParent`
      Specified by:
        `onNestedPreFling` in interface `android.view.ViewParent`
      Overrides:
        `onNestedPreFling` in class `android.view.ViewGroup`

    - #### dispatchNestedFling

          public boolean dispatchNestedFling(float velocityX,
                                             float velocityY,
                                             boolean consumed)

      Specified by:
        `dispatchNestedFling` in interface `android.support.v4.view.NestedScrollingChild`
      Overrides:
        `dispatchNestedFling` in class `android.view.View`

    - #### dispatchNestedPreFling

          public boolean dispatchNestedPreFling(float velocityX,
                                                float velocityY)

      Specified by:
        `dispatchNestedPreFling` in interface `android.support.v4.view.NestedScrollingChild`
      Overrides:
        `dispatchNestedPreFling` in class `android.view.View`

    - #### getNestedScrollAxes

          public int getNestedScrollAxes()

      Specified by:
        `getNestedScrollAxes` in interface `android.support.v4.view.NestedScrollingParent`
      Overrides:
        `getNestedScrollAxes` in class `android.view.ViewGroup`

    - #### onStartNestedScroll

          public boolean onStartNestedScroll(android.view.View child,
                                             android.view.View target,
                                             int nestedScrollAxes)

      Specified by:
        `onStartNestedScroll` in interface `android.support.v4.view.NestedScrollingParent`
      Specified by:
        `onStartNestedScroll` in interface `android.view.ViewParent`
      Overrides:
        `onStartNestedScroll` in class `android.view.ViewGroup`

    - #### onNestedPreScroll

          public void onNestedPreScroll(android.view.View target,
                                        int dx,
                                        int dy,
                                        int[] consumed)

      Specified by:
        `onNestedPreScroll` in interface `android.support.v4.view.NestedScrollingParent`
      Specified by:
        `onNestedPreScroll` in interface `android.view.ViewParent`
      Overrides:
        `onNestedPreScroll` in class `android.view.ViewGroup`

    - #### onNestedScroll

          public void onNestedScroll(android.view.View target,
                                     int dxConsumed,
                                     int dyConsumed,
                                     int dxUnconsumed,
                                     int dyUnconsumed)

      Specified by:
        `onNestedScroll` in interface `android.support.v4.view.NestedScrollingParent`
      Specified by:
        `onNestedScroll` in interface `android.view.ViewParent`
      Overrides:
        `onNestedScroll` in class `android.view.ViewGroup`

    - #### onNestedFling

          public boolean onNestedFling(android.view.View target,
                                       float velocityX,
                                       float velocityY,
                                       boolean consumed)

      Specified by:
        `onNestedFling` in interface `android.support.v4.view.NestedScrollingParent`
      Specified by:
        `onNestedFling` in interface `android.view.ViewParent`
      Overrides:
        `onNestedFling` in class `android.view.ViewGroup`

    - #### onStopNestedScroll

          public void onStopNestedScroll(android.view.View target)

      Specified by:
        `onStopNestedScroll` in interface `android.support.v4.view.NestedScrollingParent`
      Specified by:
        `onStopNestedScroll` in interface `android.view.ViewParent`
      Overrides:
        `onStopNestedScroll` in class `android.view.ViewGroup`

    - #### setOnHeaderListener

          public void setOnHeaderListener(HeaderListener mHeaderListener)

      Call this method to add `HeaderListener` ,It's better to make the `header` to impl.

    - #### setOnFooterListener

          public void setOnFooterListener(FooterListener mFooterListener)

      Call this method to add `FooterListener` ,It's better to make the `footer` to impl.

    - #### onFinishInflate

          protected void onFinishInflate()

      Overrides:
        `onFinishInflate` in class `android.view.View`

    - #### addHeader

          public void addHeader(@NonNull
                                android.view.View header)

      add the refresh view.

    - #### addFooter

          public void addFooter(@NonNull
                                android.view.View footer)

      add the footer view.

    - #### onMeasure

          protected void onMeasure(int widthMeasureSpec,
                                   int heightMeasureSpec)

      Overrides:
        `onMeasure` in class `android.view.View`

    - #### onLayout

          protected void onLayout(boolean changed,
                                  int l,
                                  int t,
                                  int r,
                                  int b)

      Specified by:
        `onLayout` in class `android.view.ViewGroup`

    - #### onInterceptTouchEvent

          public boolean onInterceptTouchEvent(android.view.MotionEvent ev)

      Overrides:
        `onInterceptTouchEvent` in class `android.view.ViewGroup`

    - #### onTouchEvent

          public boolean onTouchEvent(android.view.MotionEvent ev)

      Overrides:
        `onTouchEvent` in class `android.view.View`

    - #### canChildScrollUp

          public boolean canChildScrollUp()

      Returns:
        Whether it is possible for the child view of this layout to scroll up. Override this if the child view is a custom view.

    - #### setAutoLoadMore

          public void setAutoLoadMore(boolean autoLoad)

    - #### setOnChildScrollUpCallback

          public void setOnChildScrollUpCallback(@Nullable
                                                 CustomRefreshLayout.OnChildScrollUpCallback callback)

      Set a callback to override `SwipeRefreshLayout#canChildScrollUp()` method. Non-null callback will return the value provided by the callback and ignore all internal logic.
      Parameters:
        `callback` - Callback that should be called when canChildScrollUp() is called.

    - #### setRefreshEnable

          public void setRefreshEnable(boolean isCanRefresh)

    - #### setLoadEnable

          public void setLoadEnable(boolean isCanLoad)

    - #### setAutoRefresh

          public void setAutoRefresh(boolean isAutoRefresh)

      call this method to auto refresh when first init.
      Parameters:
        `isAutoRefresh` - true go to refresh ,false otherwise.

    - #### autoLoad

          public void autoLoad()

    - #### measureView

          public void measureView(android.view.View v)

    - #### setOnRefreshListener

          public void setOnRefreshListener(OnRefreshListener listener)

      Set the listener to be notified when a refresh is triggered via the swipe gesture.

    - #### stopRefresh

          public void stopRefresh(boolean isSuccess)

      call this method to make `CustomRefreshLayout(android.content.Context, android.util.AttributeSet)` know the refresh is over. you can also see `stopRefresh(boolean, long)`
      Parameters:
        `isSuccess` - true refresh successful,false otherwise.

    - #### stopRefresh

          public void stopRefresh(boolean isSuccess,
                                  long delay)

      call this method to make `CustomRefreshLayout(android.content.Context, android.util.AttributeSet)` know this refresh is over.
      Parameters:
        `delay` - The delay (in milliseconds) until head disappeared.
        `isSuccess` - True refresh successful,false otherwise.

    - #### stopLoadMore

          public void stopLoadMore(boolean isSuccess)

    - #### stopLoadMore

          public void stopLoadMore(boolean isSuccess,
                                   long delay)

    - #### performScroll

          public void performScroll(int dy)