← Back to Compose Multiplatform
NavigationRailItem
Overview
Examples
Community Notes
Video
Material Design navigation rail item.
A NavigationRailItem represents a destination within a NavigationRail.
Navigation rails provide access to primary destinations in apps when using tablet and desktop screens.
The text label is always shown (if it exists) when selected. Showing text labels if not selected is controlled by alwaysShowLabel.
@param selected whether this item is selected @param onClick called when this item is clicked @param icon icon for this item, typically an Icon @param modifier the Modifier to be applied to this item @param enabled controls the enabled state of this item. When false
, this component will not respond to user input, and it will appear visually disabled and disabled to accessibility services. @param label optional text label for this item @param alwaysShowLabel whether to always show the label for this item. If false, the label will only be shown when this item is selected. @param colors NavigationRailItemColors that will be used to resolve the colors used for this item in different states. See NavigationRailItemDefaults.colors. @param interactionSource the MutableInteractionSource representing the stream of Interactions for this item. You can create and pass in your own remember
ed instance to observe Interactions and customize the appearance / behavior of this item in different states.
Overloads
NavigationRailItem
@Composable
fun NavigationRailItem(
selected: Boolean,
onClick: () -> Unit,
icon: @Composable () -> Unit,
modifier: Modifier = Modifier,
enabled: Boolean = true,
label: @Composable (() -> Unit)? = null,
alwaysShowLabel: Boolean = true,
colors: NavigationRailItemColors = NavigationRailItemDefaults.colors(),
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
)
Parameters
Name | Description |
---|---|
selected | whether this item is selected |
onClick | called when this item is clicked |
icon | icon for this item, typically an Icon |
modifier | the Modifier to be applied to this item |
enabled | controls the enabled state of this item. When false , this component will not respond to user input, and it will appear visually disabled and disabled to accessibility services. |
label | optional text label for this item |
alwaysShowLabel | whether to always show the label for this item. If false, the label will only be shown when this item is selected. |
colors | NavigationRailItemColors that will be used to resolve the colors used for this item in different states. See NavigationRailItemDefaults.colors. |
interactionSource | the MutableInteractionSource representing the stream of Interactions for this item. You can create and pass in your own remember ed instance to observe Interactions and customize the appearance / behavior of this item in different states |
NavigationRailItem
@Composable
fun NavigationRailItem(
selected: Boolean,
onClick: () -> Unit,
icon: @Composable () -> Unit,
modifier: Modifier = Modifier,
enabled: Boolean = true,
label: @Composable (() -> Unit)? = null,
alwaysShowLabel: Boolean = true,
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
selectedContentColor: Color = MaterialTheme.colors.primary,
unselectedContentColor: Color = LocalContentColor.current.copy(alpha = ContentAlpha.medium)
)
Parameters
Name | Description |
---|---|
selected | whether this item is selected (active) |
onClick | the callback to be invoked when this item is selected |
icon | icon for this item, typically this will be an Icon |
modifier | optional Modifier for this item |
enabled | controls the enabled state of this item. When false , this item will not be clickable and will appear disabled to accessibility services. |
label | optional text label for this item |
alwaysShowLabel | whether to always show the label for this item. If false, the label will only be shown when this item is selected. |
interactionSource | the MutableInteractionSource representing the stream of Interactions for this NavigationRailItem. You can create and pass in your own remembered MutableInteractionSource if you want to observe Interactions and customize the appearance / behavior of this NavigationRailItem in different Interactions. |
selectedContentColor | the color of the text label and icon when this item is selected, and the color of the ripple. |
unselectedContentColor | the color of the text label and icon when this item is not selecte |

