跳转到内容

NavigationRail

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

引入

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

基本用法

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 的最小宽度NavigationRailDefaults.MinWidth
modeNavigationRailDisplayMode项目的显示模式NavigationRailDisplayMode.IconAndText
content@Composable ColumnScope.()NavigationRail 的内容-
属性名类型说明默认值是否必须
selectedBoolean是否选中-
onClick() -> Unit点击时的回调-
iconImageVector该项的图标-
labelString该项的标签文本-
modifierModifier应用于 NavigationRailItem 的修饰符Modifier
enabledBoolean是否启用该项true

NavigationRailDefaults 对象提供了 NavigationRail 和 NavigationRailItem 组件的默认值。

常量

常量名类型说明默认值
MinWidthDp导航栏最小宽度80.dp
VerticalPaddingDp内容垂直内边距24.dp
HeaderSpacingDp头部后的间距24.dp
IconSizeDp图标尺寸28.dp
IconTextSpacingDp图标与文字间距4.dp
ItemVerticalPaddingDp每个项目的垂直内边距12.dp
LabelFontSizeTextUnit标签字号12.sp
TextOnlyFontSizeTextUnitTextOnly 模式字号14.sp
TextOnlyVerticalPaddingDpTextOnly 模式垂直内边距4.dp
SelectedPressedAlphaFloat选中项按压时的透明度0.5f
UnselectedPressedAlphaFloat未选中项按压时的透明度0.6f
UnselectedAlphaFloat未选中项的透明度0.4f
描述
IconAndText同时显示图标和文本。
IconOnly仅显示图标。
TextOnly仅显示文本。
IconWithSelectedLabel始终显示图标,仅在选中时显示文本。

变更日志

基于 Apache-2.0 许可发布