DropdownMenuItem

Composable Component
Common
@Composable
expect fun DropdownMenuItem(
    onClick: () -> Unit,
    modifier: Modifier = Modifier,
    enabled: Boolean = true,
    contentPadding: PaddingValues = MenuDefaults.DropdownMenuItemContentPadding,
    interactionSource: MutableInteractionSource? = null,
    content: @Composable RowScope.() -> Unit,
)

Parameters

onClick Called when the menu item was clicked
modifier The modifier to be applied to the menu item
enabled Controls the enabled state of the menu item - when false, the menu item will not be clickable and onClick will not be invoked
contentPadding the padding applied to the content of this menu item
interactionSource an optional hoisted MutableInteractionSource for observing and emitting Interactions for this menu item. You can use this to change the menu item's appearance or preview the menu item in different states. Note that if null is provided, interactions will still happen internally.
content the content of this menu item
Android
@Composable
actual fun DropdownMenuItem(
    onClick: () -> Unit,
    modifier: Modifier,
    enabled: Boolean,
    contentPadding: PaddingValues,
    interactionSource: MutableInteractionSource?,
    content: @Composable RowScope.() -> Unit,
): Unit

Code Examples

@Composable
fun MenuSample() {
    var expanded by remember { mutableStateOf(false) }
    Box(modifier = Modifier.fillMaxSize().wrapContentSize(Alignment.TopStart)) {
        IconButton(onClick = { expanded = true }) {
            Icon(Icons.Default.MoreVert, contentDescription = "Localized description")
        }
        DropdownMenu(expanded = expanded, onDismissRequest = { expanded = false }) {
            DropdownMenuItem(onClick = { /* Handle refresh! */ }) { Text("Refresh") }
            DropdownMenuItem(onClick = { /* Handle settings! */ }) { Text("Settings") }
            Divider()
            DropdownMenuItem(onClick = { /* Handle send feedback! */ }) { Text("Send Feedback") }
        }
    }
}