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

Flutter json_dynamic_widget(6.0.5+1)主题值调用方法咨询

Flutter json_dynamic_widget(6.0.5+1)正确引用主题primaryColor的方式

你之前的写法失败主要有两个核心问题:主题颜色的定义格式错误,以及变量引用的细节没到位。正确的实现方式如下:

1. 修正主题中颜色的定义格式

在theme组件的data里,不能直接用字符串"#FF0000"定义颜色,需要使用json_dynamic_widget的color组件格式来描述Color对象。

2. 使用正确的变量引用语法

子组件中引用主题变量时,必须用${theme.<变量名>}的格式,其中theme是小写前缀,变量名要和主题data中的key完全匹配。

最终可运行的测试代码

{
    "type": "theme",
    "args": {
        "data": {
            "primaryColor": {
                "type": "color",
                "args": {
                    "value": "#FF0000"
                }
            }
        }
    },
    "child": {
        "type": "text",
        "args": {
            "text": "Delete",
            "style": {
                "color": "${theme.primaryColor}" 
            }
        }
    }
}

你之前写法的问题分析

  • "theme.primaryColor"/"primaryColor":缺少插值语法${}包裹,会被当作普通字符串,不会触发主题变量解析
  • "Theme.primaryColor"/"{Theme.primaryColor}":前缀大小写错误,主题变量的上下文标识是小写的theme,且{}单独包裹的方式不生效
  • 直接用字符串"#FF0000"定义主题颜色:主题中存储的是字符串类型,而text组件的style.color需要Color对象,类型不匹配导致无法渲染

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 22:32:56