# Collapsing Toolbars

`CollapsingToolbarLayout` is a `ViewGroup` that provides many of the visual
characteristics and interactions for **collapsing toolbars** specified in the
material guidelines. To create the collapsing toolbar, `CollapsingToolbarLayout`
integrates with
[`AppBarLayout`](https://developer.android.com/reference/android/support/design/widget/AppBarLayout.html),
[`CoordinatorLayout`](https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.html),
[`Toolbar`](https://developer.android.com/reference/android/support/v7/widget/Toolbar.html),
and a scrollable content view, such as
[`RecyclerView`](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.html).
## Design & API Documentation
* [Material Design guidelines: UI
regions](https://material.io/guidelines/layout/structure.html#structure-ui-regions)
* [Material Design guidelines: Scrolling app bar
behavior](https://material.io/guidelines/patterns/scrolling-techniques.html#scrolling-techniques-behavior)
* [Class
definition](https://github.com/material-components/material-components-android/tree/master/lib/java/android/support/design/widget/CollapsingToolbarLayout.java)
* [Class
overview](https://developer.android.com/reference/android/support/design/widget/CollapsingToolbarLayout.html)
## Usage
To add a collapsing toolbar to your layout, place the `CollapsingToolbarLayout`
inside an `AppBarLayout`. Then, add a `Toolbar` and any other views as a child
to the `CollapsingToolbarLayout`. Make sure that the entire view structure is
inside a `CoordinatorLayout` to take advantage of `CollapsingToolbarLayout`'s
scrolling and features.
A layout with a collapsing toolbar might look something like this:
```xml
```
A common collapsing toolbar pattern is the parallax image scroll, in which
images or other children of the `CollapsingToolbarLayout` scroll at different
rates than their siblings. To achieve this effect, add an
[`ImageView`](https://developer.android.com/reference/android/widget/ImageView.html)
and any other views as children of the `CollapsingToolbarLayout`. Specify parallax
multipliers in the XML for as many of the siblings as you like.
A toolbar with a collapsing image might look something like this:
```xml
```
You can combine the basic collapsing toolbar with scroll flags,
`CollapsingToolbarLayout`'s attributes, `TabViewLayout`, or any other view you
would like to achieve your desired toolbar.
* Make sure to call
[`setTitle()`](https://developer.android.com/reference/android/support/design/widget/CollapsingToolbarLayout.html#setTitle\(java.lang.CharSequence\))
on the `CollapsingToolbarLayout` instead of the `Toolbar`. This allows
`CollapsingToolbarLayout` the ability to resize the title based on the
toolbar's current size.
* You can add as many views as you like to the `CollapsingToolbarLayout`, but
make sure that the `Toolbar` is the last child of the
`CollapsingToolbarLayout`. This ensures that the views are drawn in the
correct order.
* The scrolling content should be placed in a
[`RecyclerView`](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.html),
[`NestedScrollView`](https://developer.android.com/reference/android/support/v4/widget/NestedScrollView.html),
or another view that supports nested scrolling.
## Related Concepts
* [AppBarLayout](https://developer.android.com/reference/android/support/design/widget/AppBarLayout.html)
* [TabLayout](https://developer.android.com/reference/android/support/design/widget/TabLayout.html)