# FloatingActionButton.Behavior

added in[version 22.2.0](https://developer.android.com/topic/libraries/support-library/revisions)  
belongs to Maven artifact com.android.support:design:27.1.0  
Summary:[XML Attrs](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.Behavior#lattrs)\|[Ctors](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.Behavior#pubctors)\|[Methods](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.Behavior#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.Behavior#inhmethods)\|[\[Expand All\]](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.Behavior#)  

# FloatingActionButton.Behavior

| This package is part of the Android[support library](https://developer.android.com/topic/libraries/support-library)which is no longer maintained. The support library has been superseded by[AndroidX](https://developer.android.com/jetpack/androidx)which is part of[Jetpack](https://developer.android.com/jetpack). We recommend using the AndroidX libraries in all new projects. You should also consider[migrating](https://developer.android.com/jetpack/androidx/migrate)existing projects to AndroidX. To find the AndroidX class that maps to this deprecated class, see the AndroidX support library[class mappings](https://developer.android.com/jetpack/androidx/migrate/class-mappings).

`
public
static


class
FloatingActionButton.Behavior
`  
`


``

extends `[Behavior](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior)`<`[FloatingActionButton](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton)`>


``


`

|---|---|-------------------------------------------------------------|
| java.lang.Object                                                  |||
| ↳ | [android.support.design.widget.CoordinatorLayout.Behavior](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior)\<[android.support.design.widget.FloatingActionButton](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton)\> ||
|   | ↳ | android.support.design.widget.FloatingActionButton.Behavior |

<br />

*** ** * ** ***

Behavior designed for use with[FloatingActionButton](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton)instances. Its main function is to move[FloatingActionButton](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton)views so that any displayed[Snackbar](https://developer.android.com/reference/android/support/design/widget/Snackbar)s do not cover them.

## Summary

|                                                                                                       ### XML attributes                                                                                                       ||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| [`FloatingActionButton_Behavior_Layout_behavior_autoHide`](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.Behavior#attr_FloatingActionButton_Behavior_Layout_behavior_autoHide) |   |

|                                                                                                                                                                                                  ### Public constructors                                                                                                                                                                                                   ||
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| ` `[FloatingActionButton.Behavior](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.Behavior#FloatingActionButton.Behavior())`() `                                                                                                                                                                                                                                            |
| ` `[FloatingActionButton.Behavior](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.Behavior#FloatingActionButton.Behavior(android.content.Context, android.util.AttributeSet))`(`[Context](https://developer.android.com/reference/android/content/Context.html)` context, `[AttributeSet](https://developer.android.com/reference/android/util/AttributeSet.html)` attrs) ` |

|                                                                                                                                                                                                                                                                                                                                                                                           ### Public methods                                                                                                                                                                                                                                                                                                                                                                                            ||
|------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` boolean` | ` `[getInsetDodgeRect](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.Behavior#getInsetDodgeRect(android.support.design.widget.CoordinatorLayout, android.support.design.widget.FloatingActionButton, android.graphics.Rect))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` parent, `[FloatingActionButton](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton)` child, `[Rect](https://developer.android.com/reference/android/graphics/Rect.html)` rect) ` Called when a view is set to dodge view insets.                                                                                                                          |
| ` boolean` | ` `[isAutoHideEnabled](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.Behavior#isAutoHideEnabled())`() ` Returns whether the associated FloatingActionButton automatically hides when there is not enough space to be displayed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| ` void`    | ` `[onAttachedToLayoutParams](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.Behavior#onAttachedToLayoutParams(android.support.design.widget.CoordinatorLayout.LayoutParams))`(`[CoordinatorLayout.LayoutParams](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.LayoutParams)` lp) ` Called when the Behavior has been attached to a LayoutParams instance.                                                                                                                                                                                                                                                                                                                                            |
| ` boolean` | ` `[onDependentViewChanged](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.Behavior#onDependentViewChanged(android.support.design.widget.CoordinatorLayout, android.support.design.widget.FloatingActionButton, android.view.View))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` parent, `[FloatingActionButton](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton)` child, `[View](https://developer.android.com/reference/android/view/View.html)` dependency) ` Respond to a change in a child's dependent view This method is called whenever a dependent view changes in size or position outside of the standard layout flow. |
| ` boolean` | ` `[onLayoutChild](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.Behavior#onLayoutChild(android.support.design.widget.CoordinatorLayout, android.support.design.widget.FloatingActionButton, int))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` parent, `[FloatingActionButton](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton)` child, int layoutDirection) ` Called when the parent CoordinatorLayout is about the lay out the given child view.                                                                                                                                                                              |
| ` void`    | ` `[setAutoHideEnabled](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.Behavior#setAutoHideEnabled(boolean))`(boolean autoHide) ` Sets whether the associated FloatingActionButton automatically hides when there is not enough space to be displayed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |

| ### Inherited methods |
|-----------------------|---|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.Behavior#)From class` `[android.support.design.widget.CoordinatorLayout.Behavior](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior)` ` |-------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ` boolean`                                                                                                  | ` `[blocksInteractionBelow](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#blocksInteractionBelow(android.support.design.widget.CoordinatorLayout, V))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` parent, V child) ` Determine whether interaction with views behind the given child in the child order should be blocked.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | | ` boolean`                                                                                                  | ` `[getInsetDodgeRect](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#getInsetDodgeRect(android.support.design.widget.CoordinatorLayout, V, android.graphics.Rect))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` parent, V child, `[Rect](https://developer.android.com/reference/android/graphics/Rect.html)` rect) ` Called when a view is set to dodge view insets.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | | ` int`                                                                                                      | ` `[getScrimColor](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#getScrimColor(android.support.design.widget.CoordinatorLayout, V))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` parent, V child) ` Supply a scrim color that will be painted behind the associated child view.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | | ` float`                                                                                                    | ` `[getScrimOpacity](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#getScrimOpacity(android.support.design.widget.CoordinatorLayout, V))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` parent, V child) ` Determine the current opacity of the scrim behind a given child view A scrim may be used to indicate that the other elements beneath it are not currently interactive or actionable, drawing user focus and attention to the views above the scrim.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | | ` static Object`                                                                                            | ` `[getTag](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#getTag(android.view.View))`(`[View](https://developer.android.com/reference/android/view/View.html)` child) ` Get the behavior-specific tag object with the given child view.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | | ` boolean`                                                                                                  | ` `[layoutDependsOn](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#layoutDependsOn(android.support.design.widget.CoordinatorLayout, V, android.view.View))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` parent, V child, `[View](https://developer.android.com/reference/android/view/View.html)` dependency) ` Determine whether the supplied child view has another specific sibling view as a layout dependency.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | | ` `[WindowInsetsCompat](https://developer.android.com/reference/android/support/v4/view/WindowInsetsCompat) | ` `[onApplyWindowInsets](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onApplyWindowInsets(android.support.design.widget.CoordinatorLayout, V, android.support.v4.view.WindowInsetsCompat))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` coordinatorLayout, V child, `[WindowInsetsCompat](https://developer.android.com/reference/android/support/v4/view/WindowInsetsCompat)` insets) ` Called when the window insets have changed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | | ` void`                                                                                                     | ` `[onAttachedToLayoutParams](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onAttachedToLayoutParams(android.support.design.widget.CoordinatorLayout.LayoutParams))`(`[CoordinatorLayout.LayoutParams](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.LayoutParams)` params) ` Called when the Behavior has been attached to a LayoutParams instance.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | | ` boolean`                                                                                                  | ` `[onDependentViewChanged](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onDependentViewChanged(android.support.design.widget.CoordinatorLayout, V, android.view.View))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` parent, V child, `[View](https://developer.android.com/reference/android/view/View.html)` dependency) ` Respond to a change in a child's dependent view This method is called whenever a dependent view changes in size or position outside of the standard layout flow.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | | ` void`                                                                                                     | ` `[onDependentViewRemoved](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onDependentViewRemoved(android.support.design.widget.CoordinatorLayout, V, android.view.View))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` parent, V child, `[View](https://developer.android.com/reference/android/view/View.html)` dependency) ` Respond to a child's dependent view being removed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | | ` void`                                                                                                     | ` `[onDetachedFromLayoutParams](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onDetachedFromLayoutParams())`() ` Called when the Behavior has been detached from its holding LayoutParams instance.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | | ` boolean`                                                                                                  | ` `[onInterceptTouchEvent](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onInterceptTouchEvent(android.support.design.widget.CoordinatorLayout, V, android.view.MotionEvent))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` parent, V child, `[MotionEvent](https://developer.android.com/reference/android/view/MotionEvent.html)` ev) ` Respond to CoordinatorLayout touch events before they are dispatched to child views.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | | ` boolean`                                                                                                  | ` `[onLayoutChild](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onLayoutChild(android.support.design.widget.CoordinatorLayout, V, int))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` parent, V child, int layoutDirection) ` Called when the parent CoordinatorLayout is about the lay out the given child view.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | | ` boolean`                                                                                                  | ` `[onMeasureChild](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onMeasureChild(android.support.design.widget.CoordinatorLayout, V, int, int, int, int))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` parent, V child, int parentWidthMeasureSpec, int widthUsed, int parentHeightMeasureSpec, int heightUsed) ` Called when the parent CoordinatorLayout is about to measure the given child view.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | | ` boolean`                                                                                                  | ` `[onNestedFling](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onNestedFling(android.support.design.widget.CoordinatorLayout, V, android.view.View, float, float, boolean))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` coordinatorLayout, V child, `[View](https://developer.android.com/reference/android/view/View.html)` target, float velocityX, float velocityY, boolean consumed) ` Called when a nested scrolling child is starting a fling or an action that would be a fling.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | | ` boolean`                                                                                                  | ` `[onNestedPreFling](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onNestedPreFling(android.support.design.widget.CoordinatorLayout, V, android.view.View, float, float))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` coordinatorLayout, V child, `[View](https://developer.android.com/reference/android/view/View.html)` target, float velocityX, float velocityY) ` Called when a nested scrolling child is about to start a fling.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | | ` void`                                                                                                     | ` `[onNestedPreScroll](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onNestedPreScroll(android.support.design.widget.CoordinatorLayout, V, android.view.View, int, int, int[]))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` coordinatorLayout, V child, `[View](https://developer.android.com/reference/android/view/View.html)` target, int dx, int dy, int[] consumed) ` *This method was deprecated in API level 26.1.0. You should now override[onNestedPreScroll(CoordinatorLayout, View, View, int, int, int[], int)](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onNestedPreScroll(android.support.design.widget.CoordinatorLayout, V, android.view.View, int, int, int[], int)). This method will still continue to be called if the type is[TYPE_TOUCH](https://developer.android.com/reference/android/support/v4/view/ViewCompat#TYPE_TOUCH).*                                                                                                   | | ` void`                                                                                                     | ` `[onNestedPreScroll](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onNestedPreScroll(android.support.design.widget.CoordinatorLayout, V, android.view.View, int, int, int[], int))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` coordinatorLayout, V child, `[View](https://developer.android.com/reference/android/view/View.html)` target, int dx, int dy, int[] consumed, int type) ` Called when a nested scroll in progress is about to update, before the target has consumed any of the scrolled distance.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | | ` void`                                                                                                     | ` `[onNestedScroll](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onNestedScroll(android.support.design.widget.CoordinatorLayout, V, android.view.View, int, int, int, int))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` coordinatorLayout, V child, `[View](https://developer.android.com/reference/android/view/View.html)` target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) ` *This method was deprecated in API level 26.1.0. You should now override[onNestedScroll(CoordinatorLayout, View, View, int, int, int, int, int)](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onNestedScroll(android.support.design.widget.CoordinatorLayout, V, android.view.View, int, int, int, int, int)). This method will still continue to be called if the type is[TYPE_TOUCH](https://developer.android.com/reference/android/support/v4/view/ViewCompat#TYPE_TOUCH).*                                                                  | | ` void`                                                                                                     | ` `[onNestedScroll](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onNestedScroll(android.support.design.widget.CoordinatorLayout, V, android.view.View, int, int, int, int, int))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` coordinatorLayout, V child, `[View](https://developer.android.com/reference/android/view/View.html)` target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed, int type) ` Called when a nested scroll in progress has updated and the target has scrolled or attempted to scroll.                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | | ` void`                                                                                                     | ` `[onNestedScrollAccepted](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onNestedScrollAccepted(android.support.design.widget.CoordinatorLayout, V, android.view.View, android.view.View, int, int))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` coordinatorLayout, V child, `[View](https://developer.android.com/reference/android/view/View.html)` directTargetChild, `[View](https://developer.android.com/reference/android/view/View.html)` target, int axes, int type) ` Called when a nested scroll has been accepted by the CoordinatorLayout.                                                                                                                                                                                                                                                                                                                                                                                                                                                         | | ` void`                                                                                                     | ` `[onNestedScrollAccepted](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onNestedScrollAccepted(android.support.design.widget.CoordinatorLayout, V, android.view.View, android.view.View, int))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` coordinatorLayout, V child, `[View](https://developer.android.com/reference/android/view/View.html)` directTargetChild, `[View](https://developer.android.com/reference/android/view/View.html)` target, int axes) ` *This method was deprecated in API level 26.1.0. You should now override[onNestedScrollAccepted(CoordinatorLayout, View, View, View, int, int)](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onNestedScrollAccepted(android.support.design.widget.CoordinatorLayout, V, android.view.View, android.view.View, int, int)). This method will still continue to be called if the type is[TYPE_TOUCH](https://developer.android.com/reference/android/support/v4/view/ViewCompat#TYPE_TOUCH).* | | ` boolean`                                                                                                  | ` `[onRequestChildRectangleOnScreen](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onRequestChildRectangleOnScreen(android.support.design.widget.CoordinatorLayout, V, android.graphics.Rect, boolean))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` coordinatorLayout, V child, `[Rect](https://developer.android.com/reference/android/graphics/Rect.html)` rectangle, boolean immediate) ` Called when a child of the view associated with this behavior wants a particular rectangle to be positioned onto the screen.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | | ` void`                                                                                                     | ` `[onRestoreInstanceState](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onRestoreInstanceState(android.support.design.widget.CoordinatorLayout, V, android.os.Parcelable))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` parent, V child, `[Parcelable](https://developer.android.com/reference/android/os/Parcelable.html)` state) ` Hook allowing a behavior to re-apply a representation of its internal state that had previously been generated by[onSaveInstanceState(CoordinatorLayout, V)](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onSaveInstanceState(android.support.design.widget.CoordinatorLayout, V)).                                                                                                                                                                                                                                                                                                                                    | | ` `[Parcelable](https://developer.android.com/reference/android/os/Parcelable.html)                         | ` `[onSaveInstanceState](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onSaveInstanceState(android.support.design.widget.CoordinatorLayout, V))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` parent, V child) ` Hook allowing a behavior to generate a representation of its internal state that can later be used to create a new instance with that same state.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | | ` boolean`                                                                                                  | ` `[onStartNestedScroll](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onStartNestedScroll(android.support.design.widget.CoordinatorLayout, V, android.view.View, android.view.View, int))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` coordinatorLayout, V child, `[View](https://developer.android.com/reference/android/view/View.html)` directTargetChild, `[View](https://developer.android.com/reference/android/view/View.html)` target, int axes) ` *This method was deprecated in API level 26.1.0. You should now override[onStartNestedScroll(CoordinatorLayout, View, View, View, int, int)](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onStartNestedScroll(android.support.design.widget.CoordinatorLayout, V, android.view.View, android.view.View, int, int)). This method will still continue to be called if the type is[TYPE_TOUCH](https://developer.android.com/reference/android/support/v4/view/ViewCompat#TYPE_TOUCH).*             | | ` boolean`                                                                                                  | ` `[onStartNestedScroll](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onStartNestedScroll(android.support.design.widget.CoordinatorLayout, V, android.view.View, android.view.View, int, int))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` coordinatorLayout, V child, `[View](https://developer.android.com/reference/android/view/View.html)` directTargetChild, `[View](https://developer.android.com/reference/android/view/View.html)` target, int axes, int type) ` Called when a descendant of the CoordinatorLayout attempts to initiate a nested scroll.                                                                                                                                                                                                                                                                                                                                                                                                                                               | | ` void`                                                                                                     | ` `[onStopNestedScroll](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onStopNestedScroll(android.support.design.widget.CoordinatorLayout, V, android.view.View))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` coordinatorLayout, V child, `[View](https://developer.android.com/reference/android/view/View.html)` target) ` *This method was deprecated in API level 26.1.0. You should now override[onStopNestedScroll(CoordinatorLayout, View, View, int)](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onStopNestedScroll(android.support.design.widget.CoordinatorLayout, V, android.view.View, int)). This method will still continue to be called if the type is[TYPE_TOUCH](https://developer.android.com/reference/android/support/v4/view/ViewCompat#TYPE_TOUCH).*                                                                                                                                                                                  | | ` void`                                                                                                     | ` `[onStopNestedScroll](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onStopNestedScroll(android.support.design.widget.CoordinatorLayout, V, android.view.View, int))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` coordinatorLayout, V child, `[View](https://developer.android.com/reference/android/view/View.html)` target, int type) ` Called when a nested scroll has ended.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | | ` boolean`                                                                                                  | ` `[onTouchEvent](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onTouchEvent(android.support.design.widget.CoordinatorLayout, V, android.view.MotionEvent))`(`[CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)` parent, V child, `[MotionEvent](https://developer.android.com/reference/android/view/MotionEvent.html)` ev) ` Respond to CoordinatorLayout touch events after this Behavior has started[intercepting](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onInterceptTouchEvent(android.support.design.widget.CoordinatorLayout, V, android.view.MotionEvent))them.                                                                                                                                                                                                                                                                                                                                                                                         | | ` static void`                                                                                              | ` `[setTag](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#setTag(android.view.View, java.lang.Object))`(`[View](https://developer.android.com/reference/android/view/View.html)` child, Object tag) ` Associate a Behavior-specific tag object with the given child view.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | ||
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.Behavior#)From class` java.lang.Object ` |-------------------|-------------------------------| | ` Object`         | ` clone() `                   | | ` boolean`        | ` equals(Object arg0) `       | | ` void`           | ` finalize() `                | | ` final Class<?>` | ` getClass() `                | | ` int`            | ` hashCode() `                | | ` final void`     | ` notify() `                  | | ` final void`     | ` notifyAll() `               | | ` String`         | ` toString() `                | | ` final void`     | ` wait(long arg0, int arg1) ` | | ` final void`     | ` wait(long arg0) `           | | ` final void`     | ` wait() `                    | ||

## XML attributes

### FloatingActionButton_Behavior_Layout_behavior_autoHide

<br />

<br />

**Related methods:**

- [setAutoHideEnabled(boolean)](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.Behavior#setAutoHideEnabled(boolean))

## Public constructors

### FloatingActionButton.Behavior

added in[version 22.2.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
FloatingActionButton.Behavior ()
```

<br />

<br />

### FloatingActionButton.Behavior

added in[version 26.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
FloatingActionButton.Behavior (Context context, 
                AttributeSet attrs)
```

<br />

<br />

|            Parameters            ||
|-----------|-----------------------|
| `context` | `Context` <br />      |
| `attrs`   | `AttributeSet` <br /> |

## Public methods

### getInsetDodgeRect

added in[version 26.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
boolean getInsetDodgeRect (CoordinatorLayout parent, 
                FloatingActionButton child, 
                Rect rect)
```

Called when a view is set to dodge view insets.

This method allows a behavior to update the rectangle that should be dodged. The rectangle should be in the parent's coordinate system and within the child's bounds. If not, a[IllegalArgumentException](https://developer.android.com/reference/java/lang/IllegalArgumentException)is thrown.

<br />

<br />

|                                                    Parameters                                                     ||
|----------|---------------------------------------------------------------------------------------------------------|
| `parent` | `CoordinatorLayout`: the CoordinatorLayout parent of the view this Behavior is associated with <br />   |
| `child`  | `FloatingActionButton`: the child view of the CoordinatorLayout this Behavior is associated with <br /> |
| `rect`   | `Rect`: the rect to update with the dodge rectangle <br />                                              |

|                                        Returns                                         ||
|-----------|-----------------------------------------------------------------------------|
| `boolean` | true the rect was updated, false if we should use the child's bounds <br /> |

### isAutoHideEnabled

added in[version 26.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
boolean isAutoHideEnabled ()
```

Returns whether the associated FloatingActionButton automatically hides when there is not enough space to be displayed.

<br />

**Related XML Attributes:**

- [FloatingActionButton_Behavior_Layout_behavior_autoHide](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.Behavior#attr_FloatingActionButton_Behavior_Layout_behavior_autoHide)

|              Returns              ||
|-----------|------------------------|
| `boolean` | true if enabled <br /> |

### onAttachedToLayoutParams

added in[version 26.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void onAttachedToLayoutParams (CoordinatorLayout.LayoutParams lp)
```

Called when the Behavior has been attached to a LayoutParams instance.

This will be called after the LayoutParams has been instantiated and can be modified.

<br />

<br />

|                                                    Parameters                                                    ||
|------|------------------------------------------------------------------------------------------------------------|
| `lp` | `CoordinatorLayout.LayoutParams`: the LayoutParams instance that this Behavior has been attached to <br /> |

### onDependentViewChanged

added in[version 22.2.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
boolean onDependentViewChanged (CoordinatorLayout parent, 
                FloatingActionButton child, 
                View dependency)
```

Respond to a change in a child's dependent view

This method is called whenever a dependent view changes in size or position outside of the standard layout flow. A Behavior may use this method to appropriately update the child view in response.

A view's dependency is determined by[layoutDependsOn(CoordinatorLayout, View, View)](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#layoutDependsOn(android.support.design.widget.CoordinatorLayout, V, android.view.View))or if`child`has set another view as it's anchor.

Note that if a Behavior changes the layout of a child via this method, it should also be able to reconstruct the correct position in[onLayoutChild](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onLayoutChild(android.support.design.widget.CoordinatorLayout, V, int)).`onDependentViewChanged`will not be called during normal layout since the layout of each child view will always happen in dependency order.

If the Behavior changes the child view's size or position, it should return true. The default implementation returns false.

<br />

<br />

|                                  Parameters                                  ||
|--------------|----------------------------------------------------------------|
| `parent`     | `CoordinatorLayout`: the parent view of the given child <br /> |
| `child`      | `FloatingActionButton`: the child view to manipulate <br />    |
| `dependency` | `View`: the dependent view that changed <br />                 |

|                                              Returns                                              ||
|-----------|----------------------------------------------------------------------------------------|
| `boolean` | true if the Behavior changed the child view's size or position, false otherwise <br /> |

### onLayoutChild

added in[version 23.4.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
boolean onLayoutChild (CoordinatorLayout parent, 
                FloatingActionButton child, 
                int layoutDirection)
```

Called when the parent CoordinatorLayout is about the lay out the given child view.

This method can be used to perform custom or modified layout of a child view in place of the default child layout behavior. The Behavior's implementation can delegate to the standard CoordinatorLayout measurement behavior by calling[parent.onLayoutChild](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout#onLayoutChild(android.view.View, int)).

If a Behavior implements[onDependentViewChanged(CoordinatorLayout, View, View)](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior#onDependentViewChanged(android.support.design.widget.CoordinatorLayout, V, android.view.View))to change the position of a view in response to a dependent view changing, it should also implement`onLayoutChild`in such a way that respects those dependent views.`onLayoutChild`will always be called for a dependent view*after*its dependency has been laid out.

<br />

<br />

|                                                                                                                                                                     Parameters                                                                                                                                                                     ||
|-------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `parent`          | `CoordinatorLayout`: the parent CoordinatorLayout <br />                                                                                                                                                                                                                                                                        |
| `child`           | `FloatingActionButton`: child view to lay out <br />                                                                                                                                                                                                                                                                            |
| `layoutDirection` | `int`: the resolved layout direction for the CoordinatorLayout, such as[LAYOUT_DIRECTION_LTR](https://developer.android.com/reference/android/support/v4/view/ViewCompat#LAYOUT_DIRECTION_LTR)or[LAYOUT_DIRECTION_RTL](https://developer.android.com/reference/android/support/v4/view/ViewCompat#LAYOUT_DIRECTION_RTL). <br /> |

|                                                       Returns                                                       ||
|-----------|----------------------------------------------------------------------------------------------------------|
| `boolean` | true if the Behavior performed layout of the child view, false to request default layout behavior <br /> |

### setAutoHideEnabled

added in[version 26.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void setAutoHideEnabled (boolean autoHide)
```

Sets whether the associated FloatingActionButton automatically hides when there is not enough space to be displayed. This works with[AppBarLayout](https://developer.android.com/reference/android/support/design/widget/AppBarLayout)and[BottomSheetBehavior](https://developer.android.com/reference/android/support/design/widget/BottomSheetBehavior).

<br />

**Related XML Attributes:**

- [FloatingActionButton_Behavior_Layout_behavior_autoHide](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.Behavior#attr_FloatingActionButton_Behavior_Layout_behavior_autoHide)

|                          Parameters                           ||
|------------|---------------------------------------------------|
| `autoHide` | `boolean`: true to enable automatic hiding <br /> |

-

  ## Annotations

  - [CoordinatorLayout.DefaultBehavior](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.DefaultBehavior)
-

  ## Interfaces

  - [AppBarLayout.OnOffsetChangedListener](https://developer.android.com/reference/android/support/design/widget/AppBarLayout.OnOffsetChangedListener)
  - [BaseTransientBottomBar.ContentViewCallback](https://developer.android.com/reference/android/support/design/widget/BaseTransientBottomBar.ContentViewCallback)
  - [BottomNavigationView.OnNavigationItemReselectedListener](https://developer.android.com/reference/android/support/design/widget/BottomNavigationView.OnNavigationItemReselectedListener)
  - [BottomNavigationView.OnNavigationItemSelectedListener](https://developer.android.com/reference/android/support/design/widget/BottomNavigationView.OnNavigationItemSelectedListener)
  - [CoordinatorLayout.AttachedBehavior](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.AttachedBehavior)
  - [NavigationView.OnNavigationItemSelectedListener](https://developer.android.com/reference/android/support/design/widget/NavigationView.OnNavigationItemSelectedListener)
  - [SwipeDismissBehavior.OnDismissListener](https://developer.android.com/reference/android/support/design/widget/SwipeDismissBehavior.OnDismissListener)
  - [TabLayout.OnTabSelectedListener](https://developer.android.com/reference/android/support/design/widget/TabLayout.OnTabSelectedListener)
-

  ## Classes

  - [AppBarLayout](https://developer.android.com/reference/android/support/design/widget/AppBarLayout)
  - [AppBarLayout.Behavior](https://developer.android.com/reference/android/support/design/widget/AppBarLayout.Behavior)
  - [AppBarLayout.Behavior.DragCallback](https://developer.android.com/reference/android/support/design/widget/AppBarLayout.Behavior.DragCallback)
  - [AppBarLayout.Behavior.SavedState](https://developer.android.com/reference/android/support/design/widget/AppBarLayout.Behavior.SavedState)
  - [AppBarLayout.LayoutParams](https://developer.android.com/reference/android/support/design/widget/AppBarLayout.LayoutParams)
  - [AppBarLayout.ScrollingViewBehavior](https://developer.android.com/reference/android/support/design/widget/AppBarLayout.ScrollingViewBehavior)
  - [BaseTransientBottomBar](https://developer.android.com/reference/android/support/design/widget/BaseTransientBottomBar)
  - [BaseTransientBottomBar.BaseCallback](https://developer.android.com/reference/android/support/design/widget/BaseTransientBottomBar.BaseCallback)
  - [BottomNavigationView](https://developer.android.com/reference/android/support/design/widget/BottomNavigationView)
  - [BottomSheetBehavior](https://developer.android.com/reference/android/support/design/widget/BottomSheetBehavior)
  - [BottomSheetBehavior.BottomSheetCallback](https://developer.android.com/reference/android/support/design/widget/BottomSheetBehavior.BottomSheetCallback)
  - [BottomSheetBehavior.SavedState](https://developer.android.com/reference/android/support/design/widget/BottomSheetBehavior.SavedState)
  - [BottomSheetDialog](https://developer.android.com/reference/android/support/design/widget/BottomSheetDialog)
  - [BottomSheetDialogFragment](https://developer.android.com/reference/android/support/design/widget/BottomSheetDialogFragment)
  - [CollapsingToolbarLayout](https://developer.android.com/reference/android/support/design/widget/CollapsingToolbarLayout)
  - [CollapsingToolbarLayout.LayoutParams](https://developer.android.com/reference/android/support/design/widget/CollapsingToolbarLayout.LayoutParams)
  - [CoordinatorLayout](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout)
  - [CoordinatorLayout.Behavior](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.Behavior)
  - [CoordinatorLayout.LayoutParams](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.LayoutParams)
  - [CoordinatorLayout.SavedState](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.SavedState)
  - [FloatingActionButton](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton)
  - [FloatingActionButton.Behavior](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.Behavior)
  - [FloatingActionButton.OnVisibilityChangedListener](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.OnVisibilityChangedListener)
  - [NavigationView](https://developer.android.com/reference/android/support/design/widget/NavigationView)
  - [NavigationView.SavedState](https://developer.android.com/reference/android/support/design/widget/NavigationView.SavedState)
  - [Snackbar](https://developer.android.com/reference/android/support/design/widget/Snackbar)
  - [Snackbar.Callback](https://developer.android.com/reference/android/support/design/widget/Snackbar.Callback)
  - [SwipeDismissBehavior](https://developer.android.com/reference/android/support/design/widget/SwipeDismissBehavior)
  - [TabItem](https://developer.android.com/reference/android/support/design/widget/TabItem)
  - [TabLayout](https://developer.android.com/reference/android/support/design/widget/TabLayout)
  - [TabLayout.Tab](https://developer.android.com/reference/android/support/design/widget/TabLayout.Tab)
  - [TabLayout.TabLayoutOnPageChangeListener](https://developer.android.com/reference/android/support/design/widget/TabLayout.TabLayoutOnPageChangeListener)
  - [TabLayout.ViewPagerOnTabSelectedListener](https://developer.android.com/reference/android/support/design/widget/TabLayout.ViewPagerOnTabSelectedListener)
  - [TextInputEditText](https://developer.android.com/reference/android/support/design/widget/TextInputEditText)
  - [TextInputLayout](https://developer.android.com/reference/android/support/design/widget/TextInputLayout)