You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jetpack Compose Kotlin桌面应用中使用DatePicker?

Compose Desktop无法使用Material3 DatePicker的解决方案

1. 升级Compose Multiplatform版本

Material3的DatePicker是较新的组件,旧版本的Compose可能未包含该组件。请在plugins块中指定明确的稳定版本:

plugins {
    kotlin("multiplatform") version "1.9.20"
    id("org.jetbrains.compose") version "1.5.11"
}

版本号可根据官方最新稳定版调整,确保插件版本与Material3组件版本兼容。

2. 确保导入正确的包

在代码中使用DatePicker前,必须导入对应的Material3包:

import androidx.compose.material3.DatePicker
import androidx.compose.material3.DatePickerDialog
import androidx.compose.material3.rememberDatePickerState
import androidx.compose.material3.ExperimentalMaterial3Api

3. 添加Experimental注解

DatePicker属于实验性API,使用时需在Composable函数或其上层作用域添加注解:

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun MyDatePicker() {
    val dateState = rememberDatePickerState()
    DatePicker(state = dateState)
}

4. 调整依赖配置位置

将compose.material3依赖移至commonMain的依赖块中,确保跨平台依赖解析正确:

sourceSets {
    named("commonMain") {
        resources.srcDirs("resources")
        dependencies {
            @OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class)
            implementation(compose.material3)
        }
    }
    val jvmMain by getting {
        dependencies {
            implementation(compose.desktop.currentOs)
            // 其他jvm依赖...
        }
    }
}

5. 清理Gradle缓存

若以上步骤无效,删除项目根目录下的.gradle文件夹,然后点击IDE的"Sync Project with Gradle Files"按钮重新同步。


内容的提问来源于stack exchange,提问作者Vlad Alexeev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 16:43:13