Material 3 Dividers
Overview
Dividers are thin lines that group content in lists or layouts.
Material 3 Dividers, using MaterialDivider for static layouts and MaterialDividerItemDecoration for RecyclerView lists, support three types: Full-bleed, Inset, and Middle. They enhance visual hierarchy and imply parent/child relationships.
This guide covers implementation, configuration, and theming.
Getting Started
- Add Material Components for Android library dependency
- Use
MaterialDividerfor static layouts - Use
MaterialDividerItemDecorationforRecyclerView - Apply
Theme.Material3.*for styling
Accessibility
- Dividers are decorative; no accessibility precautions needed
- Ensure surrounding content is accessible (e.g., labels for screen readers)
Configuration and Behavior
- Configure thickness, color, and insets via attributes or methods
- Hide last divider in lists with
setLastItemDecorated(false) - Support horizontal and vertical orientations
val divider = MaterialDividerItemDecoration(context, LinearLayoutManager.VERTICAL)
divider.setDividerInsetStart(16)
divider.setDividerInsetEnd(16)
divider.setLastItemDecorated(false)
recyclerView.addItemDecoration(divider)
Divider Types
- Full-bleed: Spans entire width for major sections
- Inset: Indented from edges for refined separation
- Middle: Separates
RecyclerViewitems, often inset
Full-bleed Divider
- Spans entire layout width
- Ideal for separating unrelated content or interactive areas
Example
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="@string/section_1"/>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="@string/section_2"/>
</LinearLayout>
Full-bleed Divider Anatomy
| Component | Description | Behavior |
|---|---|---|
| Line | 1dp (regular) or 8dp (heavy), colorOutlineVariant | Spans full width, no insets |
Inset Divider
- Indented from start and/or end edges
- Ideal for refined separation within sections
Example
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="@string/section_1"/>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:dividerInsetStart="16dp"
app:dividerInsetEnd="16dp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="@string/section_2"/>
</LinearLayout>
val divider = findViewById<MaterialDivider>(R.id.divider)
divider.setDividerInsetStart(16)
divider.setDividerInsetEnd(16)
Inset Divider Anatomy
| Component | Description | Behavior |
|---|---|---|
| Line | 1dp (regular) or 8dp (heavy), colorOutlineVariant | Indented by start/end insets |
Middle Divider
- Separates
RecyclerViewitems, often inset - Optional last divider hiding
Example
<androidx.recyclerview.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
val divider = MaterialDividerItemDecoration(context, LinearLayoutManager.VERTICAL)
divider.setDividerInsetStart(16)
divider.setDividerInsetEnd(16)
divider.setLastItemDecorated(false)
recyclerView.addItemDecoration(divider)
Middle Divider Anatomy
| Component | Description | Behavior |
|---|---|---|
| Line | 1dp (regular), colorOutlineVariant | Separates list items, optional insets |
Attributes and Usage
| Element | Attribute | Related Method(s) | Default Value | Usage Description |
|---|---|---|---|---|
| Divider | app:dividerThickness |
setDividerThickness, getDividerThickness |
1dp (regular), 8dp (heavy) | Sets divider thickness |
| Divider | app:dividerColor |
setDividerColor, getDividerColor |
?attr/colorOutlineVariant |
Sets divider color |
| Divider | app:dividerInsetStart |
setDividerInsetStart, getDividerInsetStart |
0dp | Sets start inset |
| Divider | app:dividerInsetEnd |
setDividerInsetEnd, getDividerInsetEnd |
0dp | Sets end inset |
| Divider | app:lastItemDecorated |
setLastItemDecorated, isLastItemDecorated |
true | Shows/hides last list divider |
Theming Dividers
- Customize color and thickness
- Use
res/values/styles.xmlfor theming
Example
<style name="Theme.App" parent="Theme.Material3.*">
<item name="colorOutline">@color/shrine_pink_900</item>
</style>
<style name="Theme.App" parent="Theme.Material3.*">
<item name="materialDividerStyle">@style/Widget.App.MaterialDivider</item>
</style>
<style name="Widget.App.MaterialDivider" parent="Widget.Material3.MaterialDivider">
<item name="materialThemeOverlay">@style/ThemeOverlay.App.MaterialDivider</item>
<item name="dividerColor">@color/shrine_pink_900</item>
</style>
<style name="ThemeOverlay.App.MaterialDivider" parent="">
<item name="colorOutline">@color/shrine_pink_900</item>
</style>
<com.google.android.material.divider.MaterialDivider
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
style="@style/Widget.App.MaterialDivider"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
Material Design Documentation
- Adheres to Material Design guidelines for Dividers
- Covers design, behavior, theming specifications
- Includes configuration for static and list dividers
- Refer to Material Design documentation for full details
FAQ
What are Material 3 Dividers?
- Lines that separate content into clear groups
How many divider types are there?
- Three types: Full-bleed, Inset, Middle
When to use an Inset Divider?
- Use for refined separation within sections
Do dividers need accessibility?
- No, they are decorative; ensure surrounding content is accessible
Can I customize divider appearance?
- Yes, adjust color and thickness via
res/values/styles.xml
How to add the Material 3 library?
- Include Material Components for Android library
Are there updates for the latest standards?
- Reflects latest Material 3 standards for Dividers
Tags:
Android




