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

如何在Jetpack Compose预览中传入注入的timeZoneId参数

解决方案

在预览函数中,你需要传入ZoneId的实例而非ZoneId类本身,因为Composable要求的是具体的ZoneId对象。由于预览环境没有依赖注入的上下文,手动传入一个合法的ZoneId即可,有两种常见方式:

  1. 使用系统默认时区(模拟真实设备场景):
@Preview
@Composable
fun EditDepartureTimePreview() {
    OhmeM3Theme() {
        EditDepTime(
            timeZoneId = ZoneId.systemDefault(),
            onCancelEditDepTime = {}
        )
    }
}
  1. 指定固定时区(保证预览效果一致性):
@Preview
@Composable
fun EditDepartureTimePreview() {
    OhmeM3Theme() {
        EditDepTime(
            timeZoneId = ZoneId.of("Asia/Shanghai"),
            onCancelEditDepTime = {}
        )
    }
}

补充说明

  • ZoneId.systemDefault()会自动获取当前设备的默认时区,适合还原真实使用场景的预览效果。
  • 如果需要固定预览的时区展示,直接通过ZoneId.of("标准时区ID")指定,比如"UTC"、"Europe/London"这类符合规范的时区ID都可以使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 01:38:19