# FabTransformationBehavior

[View Source](https://github.com/material-components/material-components-android/blob/1.14.0/lib/java/com/google/android/material/transformation/FabTransformationBehavior.java)

*** ** * ** ***


```
public abstract class FabTransformationBehavior extends ExpandableTransformationBehavior
```

<br />

|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||||
| ↳ | [com.google.android.material.transformation.ExpandableBehavior](https://developer.android.com/reference/com/google/android/material/transformation/ExpandableBehavior) |||
|   | ↳ | [com.google.android.material.transformation.ExpandableTransformationBehavior](https://developer.android.com/reference/com/google/android/material/transformation/ExpandableTransformationBehavior) ||
|   |   | ↳ | [com.google.android.material.transformation.FabTransformationBehavior](https://developer.android.com/reference/com/google/android/material/transformation/FabTransformationBehavior) |

Known direct subclasses [FabTransformationSheetBehavior](https://developer.android.com/reference/com/google/android/material/transformation/FabTransformationSheetBehavior)

|---|---|
| `https://developer.android.com/reference/com/google/android/material/transformation/FabTransformationSheetBehavior` | **This class is deprecated.** Use `https://developer.android.com/reference/com/google/android/material/transition/MaterialContainerTransform` instead. <br /> |

*** ** * ** ***

> [!CAUTION]
> **This class is deprecated.**   
>
> Use `https://developer.android.com/reference/com/google/android/material/transition/MaterialContainerTransform` instead.

Abstract base behavior for any non-scrim view that should appear when a `https://developer.android.com/reference/com/google/android/material/floatingactionbutton/FloatingActionButton` is `https://developer.android.com/reference/com/google/android/material/floatingactionbutton/FloatingActionButton#setExpanded(boolean)` expanded}.

## Summary

| ### Nested types |
|---|
| `protected class https://developer.android.com/reference/com/google/android/material/transformation/FabTransformationBehavior.FabTransformationSpec` Motion spec for a FAB transformation. |

| ### Public constructors |
|---|
| `[FabTransformationBehavior](https://developer.android.com/reference/com/google/android/material/transformation/FabTransformationBehavior#FabTransformationBehavior())()` |
| `[FabTransformationBehavior](https://developer.android.com/reference/com/google/android/material/transformation/FabTransformationBehavior#FabTransformationBehavior(Context,AttributeSet))(Context context, AttributeSet attrs)` |

| ### Public methods |
|---|---|
| `boolean` | `[layoutDependsOn](https://developer.android.com/reference/com/google/android/material/transformation/FabTransformationBehavior#layoutDependsOn(CoordinatorLayout,View,View))(CoordinatorLayout parent, View child, View dependency)` |
| `void` | `[onAttachedToLayoutParams](https://developer.android.com/reference/com/google/android/material/transformation/FabTransformationBehavior#onAttachedToLayoutParams(CoordinatorLayout.LayoutParams))(LayoutParams lp)` |

| ### Protected methods |
|---|---|
| `AnimatorSet` | `[onCreateExpandedStateChangeAnimation](https://developer.android.com/reference/com/google/android/material/transformation/FabTransformationBehavior#onCreateExpandedStateChangeAnimation(View,View,boolean,boolean))( View dependency, View child, boolean expanded, boolean isAnimating )` Creates an AnimatorSet to be played for this expanded state change. |
| `abstract https://developer.android.com/reference/com/google/android/material/transformation/FabTransformationBehavior.FabTransformationSpec` | `[onCreateMotionSpec](https://developer.android.com/reference/com/google/android/material/transformation/FabTransformationBehavior#onCreateMotionSpec(Context,boolean))(Context context, boolean expanded)` |

| ### Inherited methods |
|---|
| From [com.google.android.material.transformation.ExpandableBehavior](https://developer.android.com/reference/com/google/android/material/transformation/ExpandableBehavior) |---|---| | `https://developer.android.com/reference/com/google/android/material/expandable/ExpandableWidget` | `[findExpandableWidget](https://developer.android.com/reference/com/google/android/material/transformation/ExpandableBehavior#findExpandableWidget(CoordinatorLayout,View))(CoordinatorLayout parent, View child)` | | `static T` | `<T extends https://developer.android.com/reference/com/google/android/material/transformation/ExpandableBehavior> [from](https://developer.android.com/reference/com/google/android/material/transformation/ExpandableBehavior#from(View,java.lang.Class<T>))(View view, https://developer.android.com/reference/java/lang/Class<T> klass)` A utility function to get the `https://developer.android.com/reference/com/google/android/material/transformation/ExpandableBehavior` attached to the `view`. | | `boolean` | `[onDependentViewChanged](https://developer.android.com/reference/com/google/android/material/transformation/ExpandableBehavior#onDependentViewChanged(CoordinatorLayout,View,View))( CoordinatorLayout parent, View child, View dependency )` | | `boolean` | `[onLayoutChild](https://developer.android.com/reference/com/google/android/material/transformation/ExpandableBehavior#onLayoutChild(CoordinatorLayout,View,int))(CoordinatorLayout parent, View child, int layoutDirection)` | |
| From [com.google.android.material.transformation.ExpandableTransformationBehavior](https://developer.android.com/reference/com/google/android/material/transformation/ExpandableTransformationBehavior) |---|---| | `boolean` | `[onExpandedStateChange](https://developer.android.com/reference/com/google/android/material/transformation/ExpandableTransformationBehavior#onExpandedStateChange(View,View,boolean,boolean))( View dependency, View child, boolean expanded, boolean animated )` Reacts to a change in expanded state. | |

## Public constructors

### FabTransformationBehavior

```
public [FabTransformationBehavior](https://developer.android.com/reference/com/google/android/material/transformation/FabTransformationBehavior#FabTransformationBehavior())()
```

### FabTransformationBehavior

```
public [FabTransformationBehavior](https://developer.android.com/reference/com/google/android/material/transformation/FabTransformationBehavior#FabTransformationBehavior(Context,AttributeSet))(Context context, AttributeSet attrs)
```

## Public methods

### layoutDependsOn

```
public boolean [layoutDependsOn](https://developer.android.com/reference/com/google/android/material/transformation/FabTransformationBehavior#layoutDependsOn(CoordinatorLayout,View,View))(CoordinatorLayout parent, View child, View dependency)
```

### onAttachedToLayoutParams

```
public void [onAttachedToLayoutParams](https://developer.android.com/reference/com/google/android/material/transformation/FabTransformationBehavior#onAttachedToLayoutParams(CoordinatorLayout.LayoutParams))(LayoutParams lp)
```

## Protected methods

### onCreateExpandedStateChangeAnimation

```
protected AnimatorSet [onCreateExpandedStateChangeAnimation](https://developer.android.com/reference/com/google/android/material/transformation/FabTransformationBehavior#onCreateExpandedStateChangeAnimation(View,View,boolean,boolean))(
    View dependency,
    View child,
    boolean expanded,
    boolean isAnimating
)
```

Creates an AnimatorSet to be played for this expanded state change.

If the new `expanded` state is true, the `dependency` should be hidden and the `child` should be shown.

If the new `expanded` state is false, the `dependency` should be shown and the `child` should be hidden.

| Parameters |
|---|---|
| `View dependency` | the `https://developer.android.com/reference/com/google/android/material/expandable/ExpandableWidget` dependency containing the new expanded state. |
| `View child` | the view that should react to the change in expanded state. |
| `boolean expanded` | the new expanded state. |
| `boolean isAnimating` | whether this state change occurred while a previous state change was still |

### onCreateMotionSpec

```
protected abstract FabTransformationBehavior.FabTransformationSpec [onCreateMotionSpec](https://developer.android.com/reference/com/google/android/material/transformation/FabTransformationBehavior#onCreateMotionSpec(Context,boolean))(Context context, boolean expanded)
```