跳转到内容

NavigationRail

NavigationRail 是 Miuix 中的侧边导航组件,适用于宽屏设备。提供不同的显示模式(仅图标、仅文本、图标和文本、仅选中项显示文本)。

引入

kotlin
import top.yukonga.miuix.kmp.basic.NavigationRail
import top.yukonga.miuix.kmp.basic.NavigationRailItem
import top.yukonga.miuix.kmp.basic.NavigationDisplayMode

基本用法

NavigationRail 组件可用于创建侧边导航菜单:

kotlin
var selectedIndex by remember { mutableStateOf(0) }
val items = listOf("主页", "个人", "设置")
val icons = listOf(MiuixIcons.VerticalSplit, MiuixIcons.Contacts, MiuixIcons.Settings)

Row {
    NavigationRail {
        items.forEachIndexed { index, label ->
            NavigationRailItem(
                selected = selectedIndex == index,
                onClick = { selectedIndex = index },
                icon = icons[index],
                label = label
            )
        }
    }
    // 内容区域
}

组件状态

选中状态

NavigationRailItem 都会自动处理选中项的视觉样式,选中项将显示粗体文本并高亮图标/文本。

属性

属性名类型说明默认值是否必须
modifierModifier应用于 NavigationRail 的修饰符Modifier
header@Composable (ColumnScope.() -> Unit)?头部内容(通常是 FAB 或 Logo)null
colorColorNavigationRail 的背景颜色MiuixTheme.colorScheme.surface
showDividerBoolean是否在 NavigationRail 和内容之间显示分割线true
defaultWindowInsetsPaddingBoolean是否对 NavigationRail 应用默认的窗口边距true
minWidthDpNavigationRail 的最小宽度80.dp
modeNavigationDisplayMode项目的显示模式NavigationDisplayMode.IconAndText
content@Composable ColumnScope.()NavigationRail 的内容-
属性名类型说明默认值是否必须
selectedBoolean是否选中-
onClick() -> Unit点击时的回调-
iconImageVector该项的图标-
labelString该项的标签文本-
modifierModifier应用于 NavigationRailItem 的修饰符Modifier
enabledBoolean是否启用该项true
描述
IconAndText同时显示图标和文本。
IconOnly仅显示图标。
TextOnly仅显示文本。
IconWithSelectedLabel始终显示图标,仅在选中时显示文本。

变更日志

基于 Apache-2.0 许可发布