# Dividers [Dividers](https://m3.material.io/components/divider/overview) are thin lines that group content in lists or other containers. Dividers are one way to visually group components and create hierarchy. They can also be used to imply nested parent/child relationships. ![Divider with full width](assets/dividers/divider-fullwidth.png) **Note:** Images use various dynamic color schemes. ## Design & API documentation * [Material 3 (M3) spec](https://m3.material.io/components/divider/overview) * [API reference](https://developer.android.com/reference/com/google/android/material/divider/package-summary) ## Anatomy ![Anatomy of a divider](assets/dividers/divider-anatomy.png) 1. Divider More details on anatomy items in the [component guidelines](https://m3.material.io/components/divider/guidelines#b56e93b4-b56d-4e12-bd9f-68ce55132cc4). ## Key properties ### Dividers attributes Element | Attribute | Related method(s) | Default value ----------------------- | ----------------------- | ------------------------------------------------------------------------------------ | ------------- **Thickness** | `app:dividerThickness` | `setDividerThickness`
`setDividerThicknessResource`
`getDividerThickness` | `1dp` for the regular divider
`8dp` for the heavy divider **Color** | `app:dividerColor` | `setDividerColor`
`setDividerColorResource`
`getDividerColor` | `?attr/colorOutlineVariant` **Start inset** | `app:dividerInsetStart` | `setDividerInsetStart`
`setDividerInsetStartResource`
`getDividerInsetStart` | `0dp` **End inset** | `app:dividerInsetEnd` | `setDividerInsetEnd`
`setDividerInsetEndResource`
`getDividerInsetEnd` | `0dp` **Last item decorated** | `app:lastItemDecorated` | `setLastItemDecorated`
`isLastItemDecorated` | `true` ### Styles Element | Style | Theme attribute ----------------- | ---------------------------------- | --------------- **Default style** | `Widget.Material3.MaterialDivider` | `?attr/materialDividerStyle` For the full list, see [styles](https://github.com/material-components/material-components-android/tree/master/lib/java/com/google/android/material/divider/res/values/styles.xml) and [attrs](https://github.com/material-components/material-components-android/tree/master/lib/java/com/google/android/material/divider/res/values/attrs.xml). ## Types of divider There are two types of dividers: * Full width * Inset ### Full width divider Full width divider Full width dividers to indicate separation of content Full width dividers separate larger sections of unrelated content. They also separate interactive areas from non-interactive areas. They can be used directly on a surface or inside other components like cards or lists. ### Inset divider Inset divider Inset divider to indicate separation of content Inset dividers separate related content within a section. They are equally indented from both sides of the screen by default. ## Code implementation Before you can use Material dividers, you need to add a dependency to the Material components for Android library. For more information, go to the [Getting started](https://github.com/material-components/material-components-android/tree/master/docs/getting-started.md) page. ### Adding `MaterialDivider` API and source code: * `MaterialDivider` * [Class definition](https://developer.android.com/reference/com/google/android/material/divider/MaterialDivider) * [Class source](https://github.com/material-components/material-components-android/tree/master/lib/java/com/google/android/material/divider/MaterialDivider.java) The `MaterialDivider` is a view that can be used in layouts to separate content into clear groups. **Note:** Make sure to set `android:layout_height="wrap_content"` on the `MaterialDivider` to ensure that the correct size is set for the divider. The full-bleed divider is displayed below: ![Gray full-bleed divider example](assets/dividers/divider-view.png) On the layout: ```xml ``` By default, dividers will be full-bleed. You can use `app:dividerInsetStart` and `app:dividerInsetEnd` to achieve the look of an inset or middle divider: ```xml ``` Or in code: ```kt divider.setDividerInsetStart(insetStart) divider.setDividerInsetEnd(insetEnd) ``` ### Adding heavy divider ![Heavy divider example](assets/dividers/heavy-divider.png) Heavy dividers are used for indicating a visual break or stop between major sections in a long page. They are used as an additional level of visual differentiation and hierarchy within a layout. Note: Make sure to set `android:layout_height="wrap_content"` on the `MaterialDivider` to ensure that the correct size is set for the divider. ```xml ``` Note: Heavy dividers are automatically used as the default for dividers set to `?attr/materialDividerHeavyStyle`, which points to `@style/Widget.Material3.MaterialDivider.Heavy`. To get the heavy divider, you should set the divider style to `?attr/materialDividerHeavyStyle`. ### Adding `MaterialDividerItemDecoration` API and source code: * `MaterialDividerItemDecoration` * [Class definition](https://developer.android.com/reference/com/google/android/material/divider/MaterialDividerItemDecoration) * [Class source](https://github.com/material-components/material-components-android/tree/master/lib/java/com/google/android/material/divider/MaterialDividerItemDecoration.java) The `MaterialDividerItemDecoration` is a `RecyclerView.ItemDecoration`, similar to a `DividerItemDecoration`, that can be used as a divider between items of a `LinearLayoutManager`. It supports both horizontal and vertical orientations. Divider in a vertically oriented RecyclerView: ![Vertical divider example](assets/dividers/vertical-divider.png) A list with full-bleed dividers is displayed below: Vertical list of five items with five gray dividers after each item In code: ```kt val divider = MaterialDividerItemDecoration(context!!, LinearLayoutManager.VERTICAL /*or LinearLayoutManager.HORIZONTAL*/) recyclerView.addItemDecoration(divider) ``` By default, dividers will be full-bleed. To achieve the look of an inset or middle divider: Vertical list of five items with five gray dividers that have a start inset In code: ```kt divider.setDividerInsetStart(insetStart) divider.setDividerInsetEnd(insetEnd) ``` Optionally, you can hide the last divider of a list: Vertical list of five items with four gray dividers In code: ```kt divider.setLastItemDecorated(false) ``` ### Making dividers accessible The divider is a decorative element. There are no special accessibility precautions for the divider. ## Customizing dividers ### Theming dividers Dividers support the customization of color. #### Divider theming example API and source code: * `MaterialDivider` * [Class definition](https://developer.android.com/reference/com/google/android/material/divider/MaterialDivider) * [Class source](https://github.com/material-components/material-components-android/tree/master/lib/java/com/google/android/material/divider/MaterialDivider.java) * `MaterialDividerItemDecoration` * [Class definition](https://developer.android.com/reference/com/google/android/material/divider/MaterialDividerItemDecoration) * [Class source](https://github.com/material-components/material-components-android/tree/master/lib/java/com/google/android/material/divider/MaterialDividerItemDecoration.java) The following example shows a divider with Material theming. Pink full-bleed divider ##### Implementing divider theming Use theme attributes in `res/values/styles.xml`, which applies to all dividers and affects other components: ```xml ``` Use default style theme attributes, styles and theme overlays, which apply to all dividers but do not affect other components: ```xml ``` More easily, you can also change the divider color via the `?attr/dividerColor` attribute: ```xml ``` or use the style in the layout, which affects only this divider: ```xml ```