跳转到内容

导航支持

miuix-navigation3-ui 提供了 androidx.navigation3 的 UI 实现,适配了 Miuix 的设计风格和过渡动画。

配置

build.gradle.kts 中添加依赖:

kotlin
implementation("androidx.navigation3:navigation3-runtime:<navigation3-version>")
implementation("top.yukonga.miuix.kmp:miuix-navigation3-ui:<version>")

WARNING

本库仅包含 UI 实现。您必须自行引入 androidx-navigation3-runtime 依赖。

使用

使用 NavDisplay 来渲染你的导航场景。定义实现 NavKey 接口的屏幕类。

kotlin
import androidx.navigation3.runtime.NavKey
import androidx.navigation3.runtime.entryProvider
import androidx.navigation3.runtime.rememberDecoratedNavEntries
import androidx.navigation3.ui.NavDisplay

sealed interface Screen : NavKey {
    data object Home : Screen
    data class Detail(val id: String) : Screen
}

@Composable
fun App() {
    val backStack = remember { mutableStateListOf<NavKey>(Screen.Home) }

    val entryProvider = remember(backStack) {
        entryProvider<NavKey> {
            entry(Screen.Home) {
                HomePage()
            }
            entry<Screen.Detail> { screen ->
                DetailPage(screen.id)
            }
        }
    }

    val entries = rememberDecoratedNavEntries(
        backStack = backStack,
        entryProvider = entryProvider
    )

    NavDisplay(
        entries = entries,
        onBack = { backStack.removeLast() }
    )
}

变更日志

基于 Apache-2.0 许可发布