flutter - 如何在 Flutter / GetX 中动态设置 BoxDecoration 主题
问题描述
我将 GetX 与 Flutter 一起使用,并通过标准 ThemeData 动态更改应用程序主题。一切都适用于 ThemeData 中的属性。
但是,我刚刚实现了 Drawer 小部件,并且还想在 DrawerHeader(BoxDecoration 类型)中设置“装饰”属性的主题。我想根据所选主题为 BoxDecoration 中的颜色设置主题,但它似乎只接受常量。我还没有找到任何方法来根据主题动态更改它。
return Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: const <Widget>[
DrawerHeader(
decoration:
BoxDecoration(color: Get.isDarkMode ? Colors.red : Colors.blue),
我收到以下错误:
const 列表文字中的值必须是常量。尝试从列表文字中删除关键字“const”。
它涉及以下部分:
color: Get.isDarkMode ? Colors.red : Colors.blue
任何建议如何做到这一点?
谢谢你。
解决方案
费利佩 - 你是对的。我花了几个小时阅读和测试,但由于某种原因,我完全错过了显而易见的事情——总是只看装饰/盒子装饰本身,而不是树上。非常感谢您的快速答复。现在可以了。
问题出在以下行:
children: const <Widget>[
删除后const
它可以工作 - 解决方案:
children: <Widget>[
推荐阅读
- pyspark - 如何通过pyspark将特定行和列从excel表加载到HIVE表?
- c++ - ContiguousIterator 有什么实际用途吗?
- java - Jooq 的 fetchMaps 使用 MySQL 返回时区数据
- ios - 从单个图像创建帧图像
- java - @FormDataParam("file") InputStream uploadInputStream ...getting org.glassfish.jersey.server.model.ModelValidationException
- angular - 在 Angular 中上传图像和配置标头
- asp.net - 为另一个 Web 应用程序提供服务
- parallel-processing - 运行多个测试程序集时,“-workers:1”是否会阻止 nunit3-console 中的并行化?
- android - 在android中添加truetime库时出现错误
- reactjs - 使用 react-share 包时,“语法错误:导入声明只能出现在模块的顶层”